StatusLive
APISnapshot
COBRASupported
GeographiesAll regions except Washington
Group Size<10,000 lives
LinesDental, medical, vision
NameKaiser Permanente
NetworkSync
New Group Connection Time1–5 days
PDFExplicit_Effective_Dates%201.pdf
Unsupported-

Regions

Kaiser Permanente’s coverage area is divided into separate regions. Groups based in each region are eligible for different products and services. In general, the group’s location determines the region to which it belongs. Less commonly, some groups may contract with Kaiser in multiple regions.

Region CodeDescription
NCRNorthern California
SCRSouthern California
KNWOregon
MASMid-Atlantic states (DC, MD, VA)
GEOGeorgia
COLColorado
HAWHawai’i

Kaiser Permanente assigns each group a region-specific customer identifier, which is a number up to 6 digits long. This identifier may also be called the policy ID.

Group connections

Create a group connection request to manage Kaiser Permanente groups through Noyo.

The unique identifier involves one or more region IDs. In the group_data object for the create endpoint, provide the group_name and a carrier_group_id. The carrier group ID will be multiple region IDs delimited by a double underscore (__). Each single region ID string is formatted as the region name, a single underscore, and the regional customer ID:

"group_data": {
  "group_name": "New Kaiser Group",
  "carrier_group_id":
    "NCR_123123__SCR_234234"
}

Carrier configurations

Dynamic config is recommended for all new Noyo integrations and makes carrier-specific config values no longer required.

Dynamic config is recommended for all new Noyo integrations and makes carrier-specific config values no longer required.

Group, plan, and member configurations are where Noyo shares and receives details that are unique to a carrier. Every other part of Noyo’s payloads are standardized, but the configurations hold the unique fields and classifications that change from connection to connection. As part of preparing to connect to a new carrier, you need to understand the contents of each configuration and be sure your system is able to send the required data for each member.

Get the group configuration from Noyo

The group carrier configuration endpoint returns information about how the group is labeled and categorized within the carrier’s system. You can also see this data in the Command Center on a group’s detail page by clicking one of their carrier connections.

Groups that have Kaiser Permanente coverage belong to one or more regions. Most groups will only have coverage in one region, but in more complex cases, you must be sure to request changes for the correct region.

Each group is configured with a regions object that gives information about the region(s) to which the group belongs. The keys of regions are the region names. Each value is an object with the following fields:

  • name: The region name
  • regional_customer_id: The group’s customer ID in this region
  • sub_groups: A list of subgroups available for the group. Each subgroup corresponds to a Noyo plan and has the following properties:
  • sub_group_identifier: A string identifying the subgroup
  • sub_group_name: The subgroup’s name
  • bill_groups: A list of bill groups available for the group. Each bill group has the following properties:
  • bill_group_identifier: A string identifying the bill group
  • bill_group_name: The bill group’s name

Each group’s configuration also has a list of the regional_customer_ids. Each of these corresponds to the regional_customer_id field of one of the regions.

Each group also has a carrier_group_id, which includes all of the group’s regions and regional customer IDs combined into one string. Each region is represented as the region name, an underscore, and the regional customer ID. Multiple regions are joined together with two underscores (see example below).

{
    "group_id": "c647a97d-6c2c-47df-b43d-09da7146f8b0",
    "carrier_id": "3a070236-770e-4521-adf9-5c342d03ed36",
    "carrier_group_id": "NCR_123123__SCR_234234",
    "configuration": {
        "regions": {
            "NCR": {
                "name": "NCR",
                "regional_customer_id": "123123",
                "sub_groups": [
                    {
                        "sub_group_identifier": "1",
                        "sub_group_name": "NCR Subgroup One"
                    },
                    {
                        "sub_group_identifier": "2",
                        "sub_group_name": "NCR Subgroup Two"
                    }
                ],
                "bill_groups": [
                    {
                        "bill_group_identifier": "A",
                        "bill_group_name": "NCR Bill Group A"
                    },
                    {
                        "bill_group_identifier": "B",
                        "bill_group_name": "NCR Bill Group B"
                    }
                ]
            },
            "SCR": {
                "name": "SCR",
                "regional_customer_id": "234234",
                "sub_groups": [
                    {
                        "sub_group_identifier": "01",
                        "sub_group_name": "SCR Subgroup 01"
                    },
                    {
                        "sub_group_identifier": "02",
                        "sub_group_name": "SCR Subgroup 02"
                    }
                ],
                "bill_groups": [
                    {
                        "bill_group_identifier": "AA",
                        "bill_group_name": "Bill Group AA"
                    },
                    {
                        "bill_group_identifier": "BB",
                        "bill_group_name": "Bill Group BB"
                    }
                ]
            }
        },
        "regional_customer_ids": ["123123", "234234"]
    }
}

Get the plan configuration from Noyo

The details in the plan configuration should be used to map each Noyo plan to the corresponding plan in your own system. Importantly, each plan configuration has details about which populations are connected to an individual plan. Groups with multiple populations may link a plan with one or more of them.

Each Kaiser Permanente plan includes a plan_configuration block. The sub_group_identifier field gives the identifier of the subgroup with which the plan corresponds. The region field gives the region to which the plan belongs. Its value will match the name of the region in the group carrier configuration.

{
    "sub_group_identifier": "500",
    "region": "NCR"
}

Send the member configuration to Noyo

Each member snapshot sent to Noyo can contain a configuration section. Depending on each carrier’s requirements, you may need to use this section to include carrier-specific identifiers like classes, subdivisions, or bill groups. These go in the coverage block’s carrier_config section and ensure that members are enrolled in the correct coverages. Member snapshots missing a carrier_config section or with incorrect config data will result in a 422 error.

Member snapshots to enroll in Kaiser Permanente coverage may include an optional bill_group_identifier matching one of the bill group identifiers from the group carrier configuration.

{
    "bill_group_identifier": "AA"
}

Coverage start and end dates

You must provide explicit coverage start dates for any requests that add or modify coverage, and explicit coverage end dates for any coverage termination requests.

The coverage_end_date is set at the individual employee level; for more, please see the Explicit Effective Dates document attached.

Reinstatements

Reinstatements must be processed directly with Kaiser Permanente and cannot be handled through the Noyo platform.


Connection Basics

Sandbox testing

Use the following special Kaiser Permanente carrier_group_ids to simulate different group connection statuses. Test group connections with these IDs will asynchronously update with the corresponding status within 10 seconds of submission.

Only the first three characters are evaluated to figure out the target status (e.g. 989 means noyo_review). Since group connections should be unique by a carrier ID and carrier group ID combination, you may use the final characters to iterate and test this interaction further.

Test ID PatternResulting Status
989***noyo_review
767***waiting_on_carrier
545***action_required
323***unable_to_connect
212***move_to_carrier_authorization

Getting groups connected

To get a new or existing group connected to Noyo, simply request a group connection by sending the group name and list of regions as defined in the Technical Spec.

As with all other Sync carriers, we process a group connection by pulling all plan, member, and group structure data from Kaiser Permanente to populate our system.

If at any point we encounter an issue connecting the group, Noyo will work with Kaiser Permanente to resolve the issue. We may contact you if your input is needed.

Groups are considered connected when:

  • Noyo returns the connection status as “completed.”
  • You’ve linked Noyo’s IDs for account structure information, plans, members, and coverages to your own, and established an account structure mapping process.
  • You’ve deactivated previous forms of data exchange and are ready to send all enrollment changes through Noyo.

Processing member changes

Each member request is broken into individual “transactions” by Noyo’s system. Our integrations with other API-enabled Sync carriers generally result in 90% of member transactions arriving at the carrier within 10 minutes of being sent to Noyo, and 95% of transactions being confirmed by Noyo within 4 business days of original receipt.

We expect similar results for Kaiser Permanente, but it’s important to note this is a new connection for Noyo as an early partner with this carrier. We will be monitoring closely and working with the Kaiser Permanente team to ensure a high level of performance.

Round-trip confirmation

As with other Sync carriers, Noyo is able to read data directly from Kaiser Permanente’s system. Noyo monitors each transaction with round-trip confirmation, which triggers a check in the carrier’s system after the change is sent and again on the change’s effective date to ensure that enrollments go through as expected.

Use the Tracking API to see the results of round-trip confirmation and get a granular view of how each change is being processed.

Managed changes

Our goal is to confirm all member changes within 4 business days. However, some transactions cannot be confirmed automatically after being submitted through our API; we call these “managed” transactions and they may have longer confirmation timelines.

In addition to the change types listed in the table below, there are some region-specific managed transactions. Our integration team will discuss relevant rules with you according to the geographies covered in your book of business with Kaiser Permanente.

Types of managed transactions:

  • SSN changes SSN is a key identifier for Kaiser Permanente, so any changes to SSN are processed manually via a weekly spreadsheet sent by Noyo.
  • Date of birth changes DOB is a key identifier for Kaiser Permanente, so any changes to DOB are processed manually via a weekly spreadsheet sent by Noyo.

Retroactive changes

Retroactive changes are accepted according to each group’s contract rules. Generally, retroactive changes are accepted within 60 90 days of the desired effective date. Noyo will attempt to fulfill retroactive changes and if they are rejected by Kaiser Permanente, the failure will be communicated to you by our team. Note that Colorado law does not allow any retroactive terminations for small groups.

Open enrollment

Kaiser Permanente makes updated plans and structures available to Noyo 45 days prior to each group’s OE window. You can send the group’s plan-level renewal decisions to Noyo at any point after submitting the new plans to Kaiser Permanente. Noyo will check Kaiser Permanente’s system daily until the new plans are available to ensure that they are installed correctly.

When the plans in Kaiser Permanente’s system match the expectations you submitted, the renewal decision status will move to “ready” and you will be able to send member snapshots with each member’s open enrollment elections for the new plan year.

There are no blackout periods with Noyo, so you can also send current year changes at any point during open enrollment.

Was this page helpful?