Send Annual Enrollments

This page describes how to add one or many new subscribers for a given ICHRA election, without using an Ideon Quote Plan Id.

Checklist

Components

Create a Group, Coverage Period

Description

In the Platform system, as user or process identifies a group and creates plans. In addition a policy_premium_amount could be provided per covered family or one is derived from the plan_id and demographics

Example 1 - One Medical Carrier offered:

  • Anthem - Across all members, 4 plans were elected for ICHRA members

    • 41046NY0020015 Silver

    • 41046NY0020016 Bronze

    • 41046NY0010016 Gold

    • 41046NY0020022 Platinum

  • Each of these would be created as a plan in Ideon using a POST to coverage_peroids/{id}/plans

  • We would anticipate a platform to create One Group, One Coverage Period, and Four Plans for the example above

Example 2 - Multiple Carriers:

  • Medical with kaiser

    • 40513CA0380003 Silver

    • 40513CA0380004 Bronze

  • Medical and Anthem

    • 41046NY0020015 Silver

    • 41046NY0020016 Bronze

    • 41046NY0010016 Gold

    • 41046NY0020022 Platinum

  • Each of these would be created as a Plan in Ideon using a POST to coverage_peroids/{id}/plans

  • We would anticipate a platform to create One Group, Two Coverage Periods, and a set of 2 and 4 plans on those Coverage Periods

These HIOS ids above should be provided as plan identifiers when creating plans via the API.

A detailed description per endpoint can be found in Enrollment API Features and our Mapping Guides.

Mapping these options can be tricky depending on how your system represents Plan Options to it's users.

Ideon is working to enhance and add a quote_plan_id for ICHRA enrollments, using Ideon's Quote data to easily reconcile plan options and confirm premium information.

Determine Event in Platform System

Description

In the Platform system, a user or process has identified a member as part of an annual group enrollment. The group was offered an ICHRA allowance option, in place of or in addition to a traditional group plan.

Example 1

  • A member is offered an annual enrollment period and elects benefits, starting the first of the next month.

  • A request is created for the member and for each set of coverages with a Carrier

  • These requests are sent to Ideon in real-time.

Example 2

  • A member is hired last year, and that member is not eligible for any benefits.

  • The nature of that employee's work changes, and they are now eligible for several benefits at the next enrollment period.

  • A request is created for the member and for each set of coverages with a Carrier

  • These requests are sent to Ideon in real-time.

Map Elections

Description

Given an employee and their family members,

If that member selects benefits for one or more carriers, which have a coverage_period with Ideon

Then the Platforms system should create qualifying_life_events for each set of coverages with a Carrier.

  • If not stored as an association, fetch the created plan uuids by using a GET request to coverage_periods/id

  • Otherwise map the elected options to a request, using the id per plan to represent the elected option in your system

Send Subscriber Demographics

Description

Given a member that does not exist in Ideon's system for this Group, we would expect a POST request to create a new subscriber.

Request:

Create Subscriber
{
    "subscriber": {
        "external_identifier": "Subscriber1",
        "location_id": "{{primary_location_id}}",
        "first_name": "Employee Three",
        "last_name": "Ideonu",
        "birth_date": "1991-05-30",
        "gender": "male",
        "social_security_number": "{{ssn}}",
        "employment_details": {
            "start_date": "{{first_of_current_month}}",
            "status": "full_time"
        },
        "dependents": [
        ],
        "residential_address": {
            "address_line_1": "34 B Street",
            "city": "Winchester",
            "state": "VA",
            "zip": "22603"
        },
        "mailing_address": {
            "address_line_1": "34 B Street",
            "city": "Winchester",
            "state": "VA",
            "zip": "22603"
        },
        "phone_numbers":[{
        	"type": "work",
        	"contact": "7777777777"
        },
        {
        	"type": "home",
        	"contact": "7777777777"
        },
        {
        	"type": "fax",
        	"contact": "7777777777"
        }],
    	"emails":[{
        	"type": "work",
        	"contact": "be_square@gmail.com"
        }]
    }
}

Store Member Id(s) and Check Status

In order to refer to this subscriber later, and send coverages, your system should save the successful response body and store the id associated with the subscriber.

Check the Status of the request to determine if you received an Error on formatting or content of the request - an error that requires you to update the request body content or format is generally listed as Status 422

Send Qualifying Life Event Request(s)

Description

In this example. the member is electing Medical coverage for an Anthem Plan

If desired, use a GET call on the Group retrieve the latest subscriber data for that Group.

  • subscriber_id -this refers to the id of the created subscriber

  • coverage_period_id - this refers to the id of the created coverage period

    • This is the link between the carrier and the subscriber

  • plan_id - this refers to an id, of a plan option created in the Ideon system. This corresponds to a single plan option.

    • today - is the date that the Platform system is generating the event

    • first_of_current_month - this refers to a placeholder, The first of day of the current calendar month. This is commonly First of this month, Same Day, or First of the Next Month for new hires.

This would be created by sending a POST request to subscriber/{{id}}/qualifying_life_events

Pass an Enrollment Using am and Premium Amount

POST subscribers/{{subscriber_id}}/qualifying_life_events
{
    "qualifying_life_event": {
        "event": "open_enrollment",
        "date": "{{today}}",
        "eligibility_start_date": "{{first_of_current_month}}",
        "coverage_period_id": "{{coverage_period_id}}",
        "plan_elections": {
            "medical": {
                "plan_id": "{{uuid_of_plan_election}}", <-our reference to plan
                "type": "election",
                "policy_premium_amount": 45123, <- optional
                "coverages": [
                    {
                        "member_id": "{{subscriber_id}}",
                        "status": "employer_sponsored",
                        "start_date": "{{first_of_current_month}}"
                    }
                ]
            }
        }
    }
}

Store QLE Id(s) and Check Status

In order to confirm the status of this QLE and the easily refer to this exact request later, your system should save the successful response body and store the id associated with each QLE.

Check the Status of the request to determine if you received an Error on formatting or content of the request - an error that requires you to update the request body content or format is generally listed as Status 422

Last updated

Was this helpful?