Skip to main content

Offerings & Enrollment Across Divisions

When an Organization has Divisions, benefits live on the parent Organization and apply across the Organization, including all of its Divisions — there are no separate per-Division benefits to create or maintain. Enrollment follows the same model: a member is enrolled against the parent Organization's benefit, and their coverage applies within their Division automatically.

The model​

If you...Then...
Create a benefit on the parent OrganizationIt applies across the Organization, including all Divisions.
Update the parent benefitThe changes apply across all Divisions.
Create a new Division laterThe Organization's existing benefits apply to it automatically.
Enroll a member who belongs to a DivisionThe member is enrolled within their Division automatically.

Every operation targets the parent Organization's benefit: createBenefit is called once on the parent, and Division IDs aren't used when enrolling, funding, or managing contributions.

Creating offerings for an Organization with Divisions​

Create the Benefits Program and its benefits on the parent Organization, exactly as you would for an Organization without Divisions.

Step 1 — Create the program on the parent Organization:

mutation CreateBenefitsProgram($input: CreateBenefitsProgramInput!) {
createBenefitsProgram(input: $input) {
... on CreateBenefitsProgramResult {
benefitsProgram {
id
name
organizationId
}
}
... on BadRequestError {
code
message
}
}
}
{
"input": {
"name": "2026 Benefits",
"organizationId": "<parent-org-id>"
}
}

Step 2 — Create a benefit in that program:

mutation CreateBenefit($input: CreateBenefitInput!) {
createBenefit(input: $input) {
... on CreateBenefitResult {
benefit {
id
name
type
}
}
... on BadRequestError {
code
message
}
}
}
{
"input": {
"benefitsProgramId": "<program-id-from-step-1>",
"templateId": "<template-id>",
"startDate": "2026-01-01"
}
}

The response returns a single benefit on the parent Organization. That benefit applies across the Organization, including all of its Divisions — there is no separate per-Division benefit to create or track. Reference this benefit's id for all subsequent operations.

New Divisions inherit existing benefits

If you add a Division to an Organization that already has benefits, those benefits apply to the new Division automatically — no re-creation or re-application is needed.

Updating offerings​

Update offerings on the parent benefit using updateBenefit (and the related configuration mutations). Changes — such as the name, start/end dates, funding configuration, eligible expenses, and coverage levels — apply across all of the Organization's Divisions automatically. There is no per-Division update to make.

To cancel a benefit, cancel the parent benefit with cancelBenefit. Its Divisions' benefits are cancelled with it. See Cancelling a Benefit.

Enrolling members in a Division​

Enrollment is a two-step flow: add the member to the Division, then enroll them against the parent Organization's benefit.

Create the Division membership first — order matters

A member's Division is resolved from their Organization membership at the moment of enrollment, so the membership must already exist for coverage to reach the correct Division. Create the Division membership (Step 1) before calling enrollIndividualInBenefit (Step 2).

Step 1 — Add the member to the Division. A Division shares the same identifier space as an Organization, so you assign membership by passing the Division's id as the organizationId on createOrUpdateOrganizationMembership:

mutation CreateOrUpdateOrganizationMembership($input: CreateOrUpdateOrganizationMembershipInput!) {
createOrUpdateOrganizationMembership(input: $input) {
... on CreateOrUpdateOrganizationMembershipResult {
membership {
id
organization {
id
name
}
}
}
... on BadRequestError {
code
message
}
}
}
{
"input": {
"individualId": "<individual-id>",
"organizationId": "<division-id>"
}
}

Step 2 — Enroll the member using the parent benefit's id. Pass the benefit id from the parent Organization; the member is enrolled within their Division automatically:

mutation EnrollIndividualInBenefit($input: EnrollIndividualInBenefitInput!) {
enrollIndividualInBenefit(input: $input) {
... on EnrollIndividualInBenefitResult {
individual {
id
}
benefit {
id
}
}
... on BadRequestError {
code
message
}
}
}
{
"input": {
"benefitId": "<parent-benefit-id>",
"individualId": "<individual-id>"
}
}
A benefit can still be provisioning for a Division

A benefit can still be provisioning for a member's Division, typically right after you create the benefit. In that case enrollIndividualInBenefit returns BadRequestError with code BENEFIT_NOT_READY and retryable: true. Nothing is written. Retry the same request with backoff. transferBenefitForIndividual returns the same error when the target benefit is still provisioning for the member's Division.

The same pattern — operate on the parent Organization's benefit, and the member's Division is applied automatically — holds for the rest of the participant lifecycle:

One active membership per member within a parent

Keep each member in one place within a parent Organization: one Division, or the parent Organization itself. The Partner API does not stop you from adding a second active membership, but while a member has more than one active membership under the same parent, enrolling against the parent benefit is rejected. A membership on the parent Organization counts too. With nested Divisions, assign membership to the single, most-specific Division the member belongs to, for example the Department rather than also its Region. To move a member, see Move a member to another Division.

End-to-end walkthrough​

The full flow — including the optional Division steps — lives in Setup & Enrollment. The Division-specific steps are:

  • Divisions — Create and manage Divisions within an Organization.
  • Setup & Enrollment — The standard program, benefit, and enrollment flow.
  • Organizations — Create and manage the parent Organizations that own offerings.