# API Changelog

{% updates format="full" %}
{% update date="2026-04-30" tags="policy-status-api" %}

## Issuer Member ID in Policy Status API

A new `issuer_member_id` field is now included in the [Policy Status API](/api-reference/webhooks-api/policy-status-api.md) payload for both on- and off-exchange plans. This is the carrier-assigned member identifier, sourced from the carrier.&#x20;

Use this to cross-reference members with carrier systems. The value is null when the carrier has not yet reported a member identifier.&#x20;

Example (off-exchange):

```json
"issuer_member_id": "ANT8837291004",
"policies": [
  {
    "policy_id": "HSP000000000",
    "issuer_member_id": "ANT8837291004",
    ...
  }
]
```

{% endupdate %}

{% update date="2026-04-13" tags="enrollconnect-api,quote-api" %}

## EnrollConnect is Live!

The EnrollConnect API is now live. Partners can programmatically create, update, submit, cancel, and terminate off-exchange health insurance applications without using HealthSherpa's UI.

**What's included:**

* Full application lifecycle: create, update, submit, cancel, terminate
* Inline validation via `errors` array on every response
* SEP document upload
* Carrier payment redirect
* List applications (paginated, filterable)
* Enrollment Decision Path: `api_enrollment` and `deeplink_enrollment` flags on the QuoteConnect API response and plan lookup endpoint

See the [EnrollConnect API documentation](/api-reference/endpoints/enrollconnect-api.md) and [Enrollment Decision Path](/integration-guide/enrollment-decision-path.md) for details.
{% endupdate %}

{% update date="2026-04-10" %}

## EnrollConnect EnrollConnect Update

`POST /applications/{id}/supporting_documentation`

* `document_type` is now required (both multipart and JSON). Only accepted value currently is `"sep"`.&#x20;

`ApplicationRequest`

* `desired_effective_date` description updated: optional, carrier may reject any value for certain SEP types, invalid dates return 422 with valid options or "not available" message
* `applicants.primary.signature` added to `PrimaryApplicant` schema, required for submission, separate from `signatures.signature_date`

`Signatures`

* `signature_date` description added: required for submission, separate from the applicant's typed signature&#x20;

`PrimaryApplicant / Dependent`

* `race_ethnicity` enum values corrected to snake\_case (`white`, `black_or_african_american`, `decline_to_answer`, etc.)
* `hispanic_origin` enum values corrected from `"true"/"false"/"decline"` to `"yes"/"no"/"decline_to_answer"`
* `hispanic_origin_description` enum values corrected to snake\_case (`cuban`, `mexican_mexican_american_or_chicanx`, `puerto_rican`, `other_hispanic_latino_or_spanish_origin`, `decline_to_answer`)
* `language_spoken` and `language_written` corrected to lowercase enums with full set added (`"english"`, `"spanish"`, etc.)
  {% endupdate %}

{% update date="2026-04-10" tags="quote-api" %}

## Issuer Logo & ICHRA-Only Flag

Two new fields are now available on the [QuoteConnect API](/api-reference/endpoints/quoteconnect-api.md) response:

* **`issuer.logo_url`** — URL to the carrier's logo image. Use this to display carrier branding in your plan comparison UI.
* **`ichra_only`** — Boolean flag indicating the plan is only available to individuals who have been offered an ICHRA by their employer. Filter these plans out when displaying results to non-ICHRA users.

Both fields are included in `POST /api/v1/quotes` and `GET /api/v1/plans/:hios_id` responses. No request changes are required.
{% endupdate %}

{% update date="2026-04-09" tags="enrollconnect-api" %}

## Pre-Launch EnrollConnect Update

`POST /applications`

* `_agent_id` is no longer required; marked as nullable: true with updated description clarifying it defaults to the platform's associated agent (if applicable) for API and is required only for Deeplink

`POST /applications/{id}/cancel`

* Removed requestBody (no request\_date parameter)
* Changed response from 200 to 202 (asynchronous)

`POST /applications/{id}/terminate`

* Removed requestBody (no request\_date parameter)
* Changed response from 200 to 202 (asynchronous)

`GET /applications`&#x20;

* query params: Added submission\_failed to policy\_status enum&#x20;

`ApplicationResponse`&#x20;

* schema: Added `submission_failed` to `policy_status` enum with description explaining it indicates an asynchronous carrier submission failure
  {% endupdate %}

{% update date="2026-04-02" tags="carrier-expansion" %}

## New Carrier Expansion

**CareSource**

* States: WI

{% hint style="info" %}
CareSource acquired Common Ground in WI. These plans will be branded under CareSource (Common Ground).
{% endhint %}
{% endupdate %}

{% update date="2026-04-01" tags="carrier-added" %}

## New Carrier Addition

**Security Health Plan**

* States: WI
  {% endupdate %}

{% update date="2026-04-01" tags="carrier-added" %}

## New Carrier Addition

**Sanford Health Plan**

* States: ND, SD
  {% endupdate %}

{% update date="2026-03-31" tags="carrier-added" %}

## New Carrier Addition

**MedMutual of Ohio**

* States: OH
  {% endupdate %}

{% update date="2026-03-06" tags="enrollconnect-api,deeplink-api" %}

## EnrollConnect API Coming Soon!

We added [documentation](/coming-soon/overview.md) for our upcoming EnrollConnect APIs set to be released on April 13th, 2026. These APIs will allow for off-exchange ICHRA enrollment without the need for HealthSherpa interfaces.

The documentation also covers a new upcoming version of our Deeplink API, which will have a matching schema to EnrollConnect to both support more fields and ease the integration to EnrollConnect for those using Deeplink.
{% endupdate %}

{% update date="2025-12-05" tags="policy-status-api" %}

## Payment Info in Policy Status API

A new `payment` object has been added, providing policy-level payment information from the Carrier, where supported, for both on- and off-exchange plans. \
\
Example:&#x20;

```json
"payment": {
    "payment_status": "paid",
    "payment_status_updated_date": "2025-06-15",
    "grace_period_start_date": "2025-06-15",
    "paid_through_date": "2025-06-15",
    "past_due_member_responsibility_balance_due": "100.24",
    "current_member_responsibility_balance_due": "100.24",
    "autopay_indicator": null
  }
```

{% endupdate %}

{% update date="2025-11-21" tags="carrier-added" %}

## New Carrier Addition

**Mountain Health CO-OP**

* States: ID, MT
  {% endupdate %}

{% update date="2025-11-06" tags="deeplink-api" %}

## Elevance Encrypted TIN Requirement

Added an optional `agent_of_record_tin` field. This field is required for Anthem/Wellpoint applications and the field allows for pre-populating it. Note that Elevance uses the TIN for commissions, so if you want to use that of the Agency you can.
{% endupdate %}

{% update date="2025-11-01" tags="carrier-added" %}

## New Carrier Addition

**Elevance**

* Anthem
  * States: CA, CO, CT, GA, IN, KY, ME, MO, NH, NV, OH, VA, WI
* Wellpoint
  * States: FL, TX
    {% endupdate %}

{% update date="2025-10-21" tags="carrier-added" %}

## New Carrier Addition

**Antidote**

* States: AZ, OH
  {% endupdate %}

{% update date="2025-10-01" tags="carrier-added" %}

## New Carrier Addition

**Health First**

States: FL
{% endupdate %}

{% update date="2025-09-19" %}

## New Carrier Addition

**CHRISTUS**

* States: LA, TX

**CareSource**

* States: GA, IN, KY, MI, NC, OH, WV, NV
  {% endupdate %}

{% update date="2025-09-12" tags="deeplink-api" %}

## GET Deprecation & Inherited Allowlisting

* Removed the GET endpoint from documentation. We still support it, but we do not recommend using it as it involves passing PII/PHI in URL parameters.
* Removed the `hra` and `guardian` objects from the Spouse and Domestic Partner. These are only needed on the Primary applicant.
* We now support automatic allow-listing for any valid `_agent_id` passed in the request as long as you Authenticate via an API Key. Reach out to HealthSherpa to get an API Key.
  {% endupdate %}

{% update date="2025-09-11" tags="carrier-added,policy-status-api" %}

## New Carrier Addition

**Oscar Health**

* States: AL, AZ, FL, GA, IL, IA, KS, MI, MO, MS, NE, NJ, NY, OH, OK, PA, TN, TX, VA

BCBS AZ

* Added support for Policy Status API
  {% endupdate %}

{% update date="2025-08-20" tags="deeplink-api" %}

## Deeplink Documentation Correction

Field name corrections

* `language_spoken` instead of `spoken_language`&#x20;
* `language_written` instead of `written_language`

Minor fixes to the example POST body in the documentation to include valid fake SSNs and remove extra existing\_coverage fields since `has_existing_coverage` is set to false.&#x20;
{% endupdate %}

{% update date="2025-08-15" tags="quote-api,deeplink-api" %}

## Quote and Deeplink API Features

Quote API

* `per_page` limit increased to 500
* New `filter` field, allowing you to filter the response fields. Pass a comma-separated list, e.g. `"hios_id,metal_level"`. The minimum fields that will always appear are: `hios_id`, `name`, `year`, `gross_premium`.

Deeplink API

* New Fields:\
  \- `mailing_fips_code`\
  \- `spoken_language`\
  \- `written_language`\
  \
  \- Applicant/Spouse/Dependent `race_ethnicity`\
  \- Applicant/Spouse/Dependent `hispanic_origin`\
  \- Applicant/Spouse/Dependent `hispanic_origin_description`&#x20;
* Documented possible HTTP Response Status Codes: \
  \- `302`: Success - Redirects to application/enrollment page\
  \- `401`: Error - Authentication required (staging environment)\
  \- `406`: Error - Access blocked from outside United States\
  \- `422`: Error - Plan not available for off-ex marketplace, missing required parameters, or malformed input\
  \- `429`: Error - Rate limit exceeded\
  \- `500`: Error - Internal server error
  {% endupdate %}

{% update date="2025-07-29" tags="deeplink-api" %}

## New Deeplink Fields

* New Fields:\
  \- `skip`\
  \- Applicant/Spouse/Dependent - Middle Name\
  \- Applicant/Spouse/Dependent - Suffix\
  \- Applicant/Spouse/Dependent - Existing Coverage Questions\
  \- Domestic Partner option\
  \- `applicants[primary][hra][hra_used_for_spousal_or_family_premiums]`\
  \- `applicants[primary][hra][fein]`\
  \- `applicants[primary][hra][premium_payer]`\
  \- `applicants[primary][hra][household_size]`\
  \- `applicants[primary][hra][annual_household_income]`\
  \- `applicants[primary][hra][annual_household_income_determination]`\
  \- `applicants[primary][hra][offered_hra]`\
  `applicants[primary][hra][offered_hra_unknown]`\
  \- `applicants[primary][hra][tpa_slug]`\
  \- Primary Guardian fields
* Consolidated error messages “No recipient carrier for plan selection” and “Validation failed: Insurance full plan is not available off exchange for 2025.” Now both return “This plan is not available for off-exchange enrollment.”
* Normalized `sep_reason` enums. Keeping track of carrier differences is no longer required.
  {% endupdate %}
  {% endupdates %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ichra.healthsherpa.com/integration-guide/api-changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
