Oscar Health ICHRA Connect
  • Oscar
  1. CSV
  2. Implementation Guide
  • Getting Started
    • Welcome to ICHRA Connect
    • Integrating with Oscar
    • Oscar ICHRA for Employers
  • EDI
    • Implementation Guide
    • Sample File Downloads
      • Inbound 834 EDI
      • Outbound 834 EDI
      • Inbound 820 EDI
  • CSV
    • Implementation Guide
    • File Specifications
      • File Spec
      • Inbound Enrollment Spec
      • Outbound Enrollment Ack Spec
      • Outbound Enrollment Spec
      • Outbound Reconciliation Spec
    • Test Cases and Downloads
    • Additional Sample Downloads
      • Inbound Enrollment CSV
      • Outbound Enrollment Ack CSV
      • Outbound Enrollment CSV
      • Reconcilation CSV
  • Field Specs
    • Relationship Code Mapping
    • Ethnicity Code Mapping
    • Language Mapping
    • Marital Status Mapping
    • Supported QLE Codes
    • Supported Additional Maintenance Reasons
  • File Validators
    • CSV Validator
  • Coming Soon: REST API

On this page

  • Introduction
    • Integration Summary
      • Combined Enrollment & Payment Spec.
      • Enrollment file acknowledgment Spec.
      • Enrollment confirmation file Spec.
      • Reconciliation
  • Detailed Implementation Specifications
    • Key Fields Descriptions
    • Enrollment Types
      • Enrollment Type: Initial Enrollment
      • Enrollment Type: Change Enrollment
      • Enrollment Type: Cancellation/Termination
      • Enrollment Transaction Type: Reinstatement
  • Appx
    • Refunds
    • File Details
  1. CSV
  2. Implementation Guide

CSV Implementation Guide

Introduction

ICHRA Connect also supports a CSV file-based data integrations in addition to the EDI file-based data integration. This includes bi-directional data transfers for net new enrollments as well as other enrollment types, including terminations, cancellations, reinstatements and updates.

Integration Summary

The integration between a carrier and the administrator includes four CSV data files. All file directions are in relation to carrier:

  • Inbound Enrollment File: Combined Payment & Enrollment
  • Outbound Ack File: Enrollment file acknowledgment
  • Outbound Enrollment File: Enrollment confirmation
  • Outbound Reconciliation: Billing & Eligibility reconciliation

Combined Enrollment & Payment Spec.

The ICHRA Platform administrator sends the carrier member enrollment information and payment information in a single combined enrollment & payment CSV file (Inbound Enrollment File). Carrier ingests and enrolls members from this file as they would with a standard enrollment integration.

Payment information sent in this file includes one Automated Clearing House (ACH) account number per member (payment instrument). We do not accept credit card or debit card numbers as payment instruments.

At the time of enrollment, carrier enables Autopay for each enrolled member, withdraws members’ initial binder payments, and effectuates them. Members must affirmatively confirm that the employer will be making payments on their behalf as part of the administrator enrollment flow.

After autopay is enabled, carrier will automatically draft:

  • Binder payments: before state regulatory deadlines, which may be as early as the enrollment date.
  • Full outstanding balance: members may be drafted one or more times per month to ensure balance is paid by the premium due date. Exact auto-draft dates will be selected by carrier and the administrator.

More detailed specifications could be found in inbound spec page.

Enrollment file acknowledgment Spec.

Enrollment file acknowledgements verify whether enrollments and payment information were successfully received, or if problems were encountered. As such, the issuer will provide acknowledgement file for each inbound file received.

For more information on the acknowledgements sent by issuer, see acknowledge spec page.

Enrollment confirmation file Spec.

Enrollment confirmation files will be generated when enrollments were successfully effectuated by the carrier. These files provide confirmation for each enrollment processed, including details about the IDs that administrator could utilize to match the original enrollment, coverage effective dates, basic demographic information, status, etc. The administrator uses these files to ensure that enrollments have been successfully completed and to address any discrepancies.

For more information on the enrollment confirmation files sent by the carrier, see enrollment confirmation spec page.

Reconciliation

We use a weekly reconciliation file to ensure eligibility and billing data is aligned between carrier and the administrator in order to avoid disruptions to member coverage or experiences; for example, a mid-month increase to members’ premiums that could result in declined transactions at time of auto-pay.

The reconciliation file is a full change file that contains a snapshot of all plan year YTD membership, including cancelled and termed members, plus a 3 month prior-year lookback.

Each enrolled member will have one record per month enrolled with the corresponding monthly premium amount for that month.

Detailed Implementation Specifications

The sections that follow provide the instructions on how to implement enrollment and payment CSV specification for ICHRA platforms. Administrator will find several examples of potential enrollment transactions along with specific instructions for each.

Each section includes tables that specify the requirements for inbound enrollment. This implementation guidance highlights the key fields that must be changed, but does not imply these are the only fields required to send an enrollment. For the full table of columns, please refer to the csv specification.

Administrators can update the status of an ICHRA policy by submitting an initial enrollment, cancellation/termination, reinstatement and several policy maintenance updates.

Key Fields Descriptions

Below are descriptions of key fields that are commonly used across the CSV files for ICHRA integrations:

enrollee.issuer_member_id: The member ID assigned by issuer. issuer will generate a member ID when enrolling a new member. This ID will be sent back to the platform in the outbound confirmation file. Platforms need to utilize this ID within future enrollment transactions for this member.

enrollee.external_member_id: The member ID assigned by the platform. Platforms need to keep it constant.

enrollment.external_policy_id: The unique ID for the policy assigned by the platform.

enrollee.change_effective_date: the date when the intended change takes effect.

Enrollment Types

In this section, we will explain how the file looks like in different enrollment types

Enrollment Type: Initial Enrollment

Use case: Enroll a new member/family

Instructions: Typically, the Initial Enrollment transaction is the first transaction to be sent for a member. It is created after an applicant has been determined to be eligible and they have selected a Qualified Health Plan (QHP)

When members enroll in a new policy or add a dependent to an existing policy, regardless of whether the member is new or existing, the vendor sends “ADDITION” as the change type for all new enrollees.

Example Table 1. Initial Enrollment

Field member1 member2
plan.hios_id 12345NY100001 12345NY100001
enrollment.external_policy_id plat_policy_ID_1 plat_policy_ID_1
enrollee.first_name Joe Jane
enrollee.ethnicity 2135-1 2135-1
enrollee.relationship_to_policy_holder 18 (subscriber) 01 (spouse)
enrollee.coverage_start_date 2025-03-01 2025-03-01
enrollee.coverage_end_date (leave blank) (leave blank)
enrollee.mailing_address.address_line_1 123 first st 123 first st
enrollee.change_type ADDITION ADDITION
enrollee.change_effective_date (leave blank) (leave blank)
enrollee.addtional_maintenance_reason (leave blank) (leave blank)
… … …

Enrollment Type: Change Enrollment

When any active member needs to change information including demographic information, plan, mailing address, residential address, coverage start date, platforms can send an enrollment with change type of CHANGE for the member that contains any change. Platforms should not use enrollment with change type of CHANGE to send coverage end date change, that must be sent with change type as CANCELLATION/TERMINATION.

Unless otherwise specified, all the following change cases are assumed to occur after the initial enrollment. To minimize misunderstandings between removing and changing data, the platform should continue to send all data for fields that have not been altered.

Change Type: Demographic Change

Use case: Edit demographic information for an existing member Instructions: The platform sends Oscar a CHANGE enrollment. In the enrollment, the platform needs to include all the members’ information under the policy. If there is any change for a member, use change type of CHANGE for this member, otherwise, please use NO_OP.

In the example below, the subscriber changed their ethnicity, but there is no change for the dependent. In this case, subscriber’s change type would be CHANGE since there are changes involved, and dependents’s change type would be NO_OP since no change is made and no operation is required.

Example Subscriber found that their demographic information (In this example, the ethnicity) is incorrect and needs to be updated.

Table 2. Demographic change

Field member1 member2
enrollment.external_policy_id plat_policy_ID_1 plat_policy_ID_1
enrollee.first_name Joe Jane
enrollee.ethnicity 2135-2 2135-1
enrollee.relationship_to_policy_holder 18 (subscriber) 01 (spouse)
enrollee.coverage_start_date 2025-03-01 2025-03-01
enrollee.coverage_end_date (leave blank) (leave blank)
enrollee.mailing_address.address_line_1 123 first st 123 first st
enrollee.change_type CHANGE NO_OP
enrollee.change_effective_date 2025-03-01 (leave blank)
enrollee.addtional_maintenance_reason (leave blank) (leave blank)
… … …

Change Type: Policy Change

Use Case: Switch policy for an existing member

Instructions: The platform will utilize a CHANGE enrollment transaction when a member switches policies mid-year due to a qualifying life event.

Example

In this case, the members are changing their plan effective 2025-05-01, meaning the change will take effect on 2025-05-01.

Table 3. Policy change

Field member1 member2
plan.hios_id 12345NY100022 12345NY100022
enrollment.external_policy_id plat_policy_ID_1 plat_policy_ID_1
enrollee.first_name Joe Jane
enrollee.relationship_to_policy_holder 18 (subscriber) 01 (spouse)
enrollee.coverage_start_date 2025-03-01 2025-03-01
enrollee.coverage_end_date (leave blank) (leave blank)
enrollee.mailing_address.address_line_1 123 first st 123 first st
enrollee.change_type CHANGE CHANGE
enrollee.change_effective_date 2025-05-01 2025-05-01
enrollee.addtional_maintenance_reason (leave blank) (leave blank)
… … …

Change Type: Address Change

Use Case: Update the address of an existing member

Instructions: Platforms send a CHANGE change_type enrollment for residential or mailing address updates.

Example

In this case, the members’ new address would go into effect as of May 1, 2025 as indicated by the change_effective_date.

Table 4. Address change

Field member1 member2
plan.hios_id 12345NY100022 12345NY100022
enrollment.external_policy_id plat_policy_ID_1 plat_policy_ID_1
enrollee.first_name Joe Jane
enrollee.relationship_to_policy_holder 18 (subscriber) 01 (spouse)
enrollee.coverage_start_date 2025-03-01 2025-03-01
enrollee.coverage_end_date (leave blank) (leave blank)
enrollee.mailing_address.address_line_1 123 first st 123 first st
enrollee.change_type CHANGE CHANGE
enrollee.change_effective_date 2025-05-01 2025-05-01
enrollee.addtional_maintenance_reason (leave blank) (leave blank)
… … …

Change Type: Add Dependent

Use Case: Add a new dependent to an existing subscriber’s policy

Instructions: use CHANGE change_type for the subscriber and ADDITION for the new dependent. Platforms should send all information for the covered members whether or not there is a change for those members. If there is a change for a member, use change type of CHANGE for this member; otherwise, use NO_OP.

Example

Table 5. Add dependent change

Field member1 member2 member3
enrollment.external_policy_id plat_policy_ID_1 plat_policy_ID_1 plat_policy_ID_1
enrollee.first_name Joe Jane Jack
enrollee.relationship_to_policy_holder 18 (subscriber) 01 (spouse) 19 (child)
enrollee.coverage_start_date 2025-03-01 2025-03-01 2025-05-01
enrollee.coverage_end_date (leave blank) (leave blank) (leave blank)
enrollee.mailing_address.address_line_1 123 first st 123 first st 123 first st
enrollee.change_type CHANGE NO_OP ADDITION
enrollee.addtional_maintenance_reason (leave blank) (leave blank)
… … … …

Change Type: Remove Dependent

Use Case: To remove a dependent from an existing policy

Instructions: use the change_type CANCELLATION or TERMINATION. If the coverage end date is equal to coverage start date, it will be categorized as CANCELLATION; otherwise, use TERMINATION. The platform needs to send the information for all covered members, regardless of whether there is any change for these members. If there is any change for a member, use change type of CHANGE for this member; otherwise, use NO_OP.

Since the financial amount for the subscriber will change if members want to remove the dependent, the change type of subscriber should be CHANGE.

Example:

Table 6. Remove dependent change

Field member1 member2
enrollment.external_policy_id plat_policy_ID_1 plat_policy_ID_1
enrollee.first_name Joe Jane
enrollee.relationship_to_policy_holder 18 (subscriber) 01 (spouse)
enrollee.coverage_start_date 2025-03-01 2025-03-01
enrollee.coverage_end_date (leave blank) 2025-03-01
enrollee.mailing_address.address_line_1 123 first st 123 first st
enrollee.change_type CHANGE CANCELLATION
enrollee.addtional_maintenance_reason (leave blank) (leave blank)
… … …

Change Type: Leave platform

Use case: If an employer decides to switch ICHRA platform administrators or an employee loses their ICHRA benefits (e.g. through loss of a job), they still may retain their carrier’s ACA IFP coverage as a non-ICHRA member and pay for their coverage out of pocket.

For administrator platforms, this is especially important to implement to avoid having premium payments withdrawn or failed autopay runs for employees and employers who are no longer using your platform.

Instructions: To let the carrier know when a member is no longer enrolled through the administrator platform but has not terminated their coverage, the administrator will send a CHANGE type enrollment transaction with maintenance reason code LEAVE_PLATFORM on an inbound enrollment transaction.

Example:

Table 7. Leave platform change

Field member1 member2
enrollment.external_policy_id plat_policy_ID_1 plat_policy_ID_1
enrollee.first_name Joe Jane
enrollee.relationship_to_policy_holder 18 (subscriber) 01 (spouse)
enrollee.coverage_start_date 2025-03-01 2025-03-01
enrollee.coverage_end_date (leave blank) (leave blank)
enrollee.mailing_address.address_line_1 123 first st 123 first st
enrollee.change_type CHANGE CHANGE
enrollee.change_effective_date 2025-08-15 2025-08-15
enrollee.addtional_maintenance_reason LEAVE_PLATFORM LEAVE_PLATFORM
… … …

Enrollment Type: Cancellation/Termination

Cancellation (“Cancel”)

Use Case: Terminate a policy before coverage has begun (i.e. coverage start date is in the future) Instructions: A cancellation will result in coverage being cancelled for all members on the policy, but only the subscriber’s information needs to be sent. To cancel a member’s policy, the change type for the subscriber must be set to CANCELLATION.

Please note that the coverage end date will be the same as the coverage start date for cancellation.

Example:

Table 8. Cancellations

Field member1
enrollment.external_policy_id plat_policy_ID_1
enrollee.first_name Joe
enrollee.relationship_to_policy_holder 18 (subscriber)
enrollee.coverage_start_date 2025-03-01
enrollee.coverage_end_date 2025-03-01
enrollee.mailing_address.address_line_1 123 first st
enrollee.change_type CANCELLATION
enrollee.addtional_maintenance_reason (leave blank)
… …

Termination (“Terminate”)

Use Case: Terminate a policy after coverage has begun (i.e. coverage end date is after coverage start date) Instructions: To terminate a member’s policy, the change type for the subscriber must be set to TERMINATION. The platform only needs to send the subscriber’s information.

Please note that the coverage end date will not be the same as the coverage start date for termination.

Example:

Table 9. Terminations

Field member1
enrollment.external_policy_id plat_policy_ID_1
enrollee.first_name Joe
enrollee.relationship_to_policy_holder 18 (subscriber)
enrollee.coverage_start_date 2025-03-01
enrollee.coverage_end_date 2025-10-15
enrollee.mailing_address.address_line_1 123 first st
enrollee.change_type TERMINATION
enrollee.addtional_maintenance_reason (leave blank)
… …

Enrollment Transaction Type: Reinstatement

Use case: recover a cancelled/terminated policy with the original policy information and coverage start date.

Instructions:

The change type for the subscriber must be set to REINSTATEMENT, and a transaction must be sent for all members on the policy who should be reinstated

If the members update their information during the reinstatement procedure, the platform needs to send another change enrollment to include the updated information.

Example:

Table 10. Reinstatements

Field member1 member2
enrollment.external_policy_id plat_policy_ID_1 plat_policy_ID_1
enrollee.first_name Joe Jane
enrollee.relationship_to_policy_holder 18 (subscriber) 01 (spouse)
enrollee.coverage_start_date 2025-03-01 2025-03-01
enrollee.coverage_end_date (leave blank) (leave blank)
enrollee.mailing_address.address_line_1 123 first st 123 first st
enrollee.change_type REINSTATEMENT REINSTATEMENT
enrollee.addtional_maintenance_reason (leave blank) (leave blank)

Appx

Refunds

Eligibility changes resulting in premium changes, negative or positive, will be handled as usual for IFP members: adjustments will be made to future amounts owed, and if not sufficient, carrier will be able to facilitate refunds directly to members.

File Details

Inbound Enrollment File

  • Direction: Carrier inbound/administrator outbound
  • File type: CSV
  • File spec: Inbound Enrollment Spec
  • Cadence: Daily
  • Naming convention: FROM_ADMIN_NAME.EMT.YYYYMMDDThhmmss.P.csv
  • Delta file or full file: Delta
  • File transfer type: SFTP
  • Sample file: here

Outbound Enrollment Ack File

  • Direction: Carrier outbound/administrator inbound
  • File type: CSV
  • File spec: Outbound Enrollment Ack File Spec
  • Cadence: Daily
  • Naming convention: TO_ADMIN_NAME.ACK.YYYYMMDDThhmmss.P.csv
  • Sample file: here

Outbound Enrollment File

  • File type: CSV
  • File spec: Outbound Enrollment File
  • Cadence: Daily
  • Naming convention: FROM_CARRIER.OUT.YYYYMMDDThhmmss.P.csv
  • Delta file or full file: Delta
  • Sample file: here

Outbound Reconciliation File

  • File type: CSV
  • File spec: Outbound Reconciliation File
  • Cadence: Weekly
  • Full or Delta: Full snapshot of plan year, with 3 month look back to previous year
  • Naming Convention: FROM_CARRIER_SNAPSHOT.OUT.YYYYMMDDThhmmss.P.csv
  • Sample file: here
 
  • © 2024 Oscar Management Corporation, Licensed under the Apache License, version 2.0

  • Terms of Service

  • Privacy Policy

  • Do Not Sell My Information