Plan-Owned Programs Quick Start

This guide covers everything you need to enroll members into plan-owned benefit programs — FSA, HRA, LPFSA, ICHRA, Commuter, and similar employer or health plan-sponsored benefits.


What Makes Plan-Owned Programs Different

  • The plan (employer or health plan) owns the funds, not the member
  • No KYC required — enrollment is approved immediately
  • No SSN required
  • Funds are held in an omnibus FBO account; members see their own sub-ledger balance
  • Funding comes from the plan via:
    • Good Faith Funding
    • Payroll deduction
    • Lump sum
  • Election amounts may be required (FSA, LPFSA, Commuter)
  • Unused funds typically do not belong to the member (exceptions may apply)

Who This Guide Is For

  • TPAs and CDH administrators managing FSA, HRA, LPFSA
  • ICHRA platforms managing employer groups
  • Employers offering plan-sponsored benefits directly
  • Health plans offering HRA alongside medical coverage

If managing multiple employer groups, see Client Org Management Guide.


Products Covered

ProductDescriptionElection Amount Required
FSAFlexible Spending AccountYes (if configured)
LPFSALimited Purpose FSAYes (if configured)
HRAHealth Reimbursement ArrangementNo
ICHRAIndividual Coverage HRANo
ICHRA_PREM_ONLYPremium-only ICHRANo
ICHRA_PREM_PLUSPremium + expenses ICHRANo
CommuterTransit and parking benefitsYes (if configured)
DCFSADependent Care FSAYes (if configured)

Prerequisites

Before enrolling members, it is important to understand how products are funded:

Understand Your Funding Model

ModelDescriptionCommon Use
Good Faith FundingPlan fronts a % of full year benefit amount for member population; scheduled 'top-up' funding once liveFSA, HRA
Fully FundedPlan funds before usage (FBO Contribution Account)Employer-funded accounts

Your funding model is configured at the Product level during implementation. Confirm with your Implementation Manager.


Know If Election Amounts Are Required

For FSA, LPFSA, and Commuter, the Client Org may be configured to require election amounts at enrollment. Check your plan summary or confirm with your Implementation Manager.


Required Fields

FieldRequiredNotes
clientMemberIdYesUnique member ID
clientOrg.nameYesClient org
firstNameYes
lastNameYes
dateOfBirthYes
addressesYesAt least one
phonesYesAt least one
emailsOptionalMust be primary if provided
ssnNoNot required
memberProductsYes
memberAccountsDependsRequired if election needed
memberCardPreferences.planNameYes
memberCardPreferences.cardPackageNameYes
idempotencyKeyYes

Enroll a Member: FSA

FSA is the most common plan-owned product. This example shows enrollment with an election amount.

Note on election amounts:

  • electionAmount is the member's annual election
  • IRS limits apply: FSA max is $3,200 for 2024 (check current year limits)
  • If election amount exceeds the limit, enrollment will fail with ELECTION_EXCEEDS_LIMIT
curl -X POST "https://sandbox.lynx-fh.co/api/v1/member" \
  -H "Authorization: Bearer {your_api_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "clientMemberId": "EMP-001",
    "clientOrg": { "name": "ACME_CORP" },
    "firstName": "John",
    "lastName": "Smith",
    "addresses": [{
      "addressLine1": "456 Oak Ave",
      "city": "Chicago",
      "state": "IL",
      "postalCode": "60601",
      "country": "US",
      "type": "mailing",
      "primaryIndicator": true
    }],
    "phones": [{
      "number": "+13125551234",
      "type": "mobile",
      "primaryIndicator": true
    }],
    "memberProducts": [{
      "product": { "name": "FSA" },
      "effectiveDate": "2026-01-01"
    }],
    "memberAccounts": [{
      "product": { "name": "FSA" },
      "electionAmount": 2850.00
    }],
    "memberCardPreferences": {
      "planName": "ACME_PLAN_2026",
      "cardPackageName": "ACME_CARD_STANDARD"
    },
    "idempotencyKey": "enrollment-john-smith-001"
  }'

Enroll a Member: HRA

HRA doesn't require an election amount — the employer defines the benefit structure.

curl -X POST "https://sandbox.lynx-fh.co/api/v1/member" \
  -H "Authorization: Bearer {your_api_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "clientMemberId": "EMP-002",
    "clientOrg": { "name": "ACME_CORP" },
    "firstName": "Sarah",
    "lastName": "Johnson",
    "addresses": [{
      "addressLine1": "789 Pine St",
      "city": "Austin",
      "state": "TX",
      "postalCode": "78701",
      "country": "US",
      "type": "mailing",
      "primaryIndicator": true
    }],
    "phones": [{
      "number": "+15125551234",
      "type": "mobile",
      "primaryIndicator": true
    }],
    "memberProducts": [{
      "product": { "name": "HRA" },
      "effectiveDate": "2026-01-01"
    }],
    "memberCardPreferences": {
      "planName": "ACME_PLAN_2026",
      "cardPackageName": "ACME_CARD_STANDARD"
    },
    "idempotencyKey": "enrollment-sarah-johnson-001"
  }'

Enroll a Member: ICHRA

ICHRA members typically receive a virtual card to pay health insurance premiums. No election amount — the employer defines allowance tiers by employee class.

ICHRA-specific considerations

  • Members typically get virtual cards (no physical card)
  • Card is used to pay insurance premiums directly
  • Allowance tiers are configured at the Client Org or plan level, not per-member at enrollment
  • For ICHRA platforms managing multiple employer groups, each employer group should be a separate child Client Org
curl -X POST "https://sandbox.lynx-fh.co/api/v1/member" \
  -H "Authorization: Bearer {your_api_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "clientMemberId": "EMP-003",
    "clientOrg": { "name": "EMPLOYER_GROUP_A" },
    "firstName": "Michael",
    "lastName": "Chen",
    "addresses": [{
      "addressLine1": "321 Elm Rd",
      "city": "Seattle",
      "state": "WA",
      "postalCode": "98101",
      "country": "US",
      "type": "mailing",
      "primaryIndicator": true
    }],
    "phones": [{
      "number": "+12065551234",
      "type": "mobile",
      "primaryIndicator": true
    }],
    "memberProducts": [{
      "product": { "name": "ICHRA_PREM_PLUS" },
      "effectiveDate": "2026-01-01"
    }],
    "memberCardPreferences": {
      "planName": "ZORRO_PLAN_2026",
      "cardPackageName": "ZORRO_VIRTUAL_CARD"
    },
    "idempotencyKey": "enrollment-michael-chen-001"
  }'

Enrolling a Member with Multiple Products

A single enrollment request can include multiple products.

Common combinations

  • FSA + LPFSA
  • FSA + Commuter
  • HRA + Commuter
curl -X POST "https://sandbox.lynx-fh.co/api/v1/member" \
  -H "Authorization: Bearer {your_api_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "clientMemberId": "EMP-004",
    "clientOrg": { "name": "ACME_CORP" },
    "firstName": "Emily",
    "lastName": "Davis",
    "dateOfBirth": "1990-04-22",
    "addresses": [{
      "addressLine1": "555 Market St",
      "city": "San Francisco",
      "state": "CA",
      "postalCode": "94102",
      "country": "US",
      "type": "mailing",
      "primaryIndicator": true
    }],
    "phones": [{
      "number": "+14155551234",
      "type": "mobile",
      "primaryIndicator": true
    }],
    "memberProducts": [
      { "product": { "name": "FSA" }, "effectiveDate": "2026-01-01" },
      { "product": { "name": "Commuter" }, "effectiveDate": "2026-01-01" }
    ],
    "memberAccounts": [
      { "product": { "name": "FSA" }, "electionAmount": 2000.00 },
      { "product": { "name": "Commuter" }, "electionAmount": 315.00 }
    ],
    "memberCardPreferences": {
      "planName": "ACME_PLAN_2026",
      "cardPackageName": "ACME_CARD_STANDARD"
    },
    "idempotencyKey": "enrollment-emily-davis-001"
  }'

What Happens Next

Unlike HSA, plan-owned enrollments don't go through KYC. The flow is immediate:

  • Lynx validates the request — checks required fields, product configuration, election limits
  • Member created — status ACTIVE
  • Member product(s) created — status Account_Active
  • Member account(s) created — balance set based on funding model
  • Card issued — physical or virtual based on card package configuration

Typical timeline

  • Enrollment submitted → Member active: Immediate
  • Card issued: Within minutes (virtual) or 5-7 business days (physical via USPS)

Funding: How Members Get Access to Funds

Plan-owned accounts don't have member contributions like HSA. Funds come from the plan.

Good Faith Funding

Lynx loads the member's full election amount on day one. The member can spend up to their full annual election immediately, even though the employer hasn't fully funded it yet.

Example: Member elects $2,400 FSA. On January 1, member can spend up to $2,400 even though employer has only contributed $200 via payroll so far.

How it works

  • Member enrolls with election amount
  • Lynx makes full election available to member
  • Employer submits contributions each pay period
  • Lynx reconciles contributions against member spend
  • If member leaves mid-year with negative balance, employer is responsible

Your responsibility

  • Submit contribution files via SFTP or API on a regular cadence
  • Ensure omnibus FBO account maintains sufficient balance for aggregate member spend

Fully Funded

Plan funds the member's benefit amount upfront before member can spend. Plan would fund the FBO Contribution account and transfer funds from the FBO Contribution to the Client Org Omnibus and associated member account.

How it works

  • Member enrolls
  • Plan funds the member's account
  • Member can spend once funds are posted

Your responsibility

  • Fund member accounts before members expect to transact
  • Monitor account balances

Payroll Deduction

Common for FSA and Commuter. Contributions come in regularly based on payroll.

How it works

  • Member enrolls with election amount
  • Each pay period, employer submits contribution file with per-member amounts
  • Lynx posts contributions to member accounts
  • If Good Faith is enabled, member can spend ahead of contributions

Your responsibility

  • Submit contribution files each pay period
  • File format and SFTP details provided during implementation

For TPAs: Managing Multiple Employer Groups

If you're a TPA or ICHRA platform, each employer group should be a separate child Client Org.

Workflow

1. Create child Client Org for the employer group

curl -X POST "https://sandbox.lynx-fh.co/api/v1/clientOrg" \
  -H "Authorization: Bearer {your_api_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "clientOrg": {
      "name": "EMPLOYER_ABC_2026",
      "clientOrgParent": { "name": "YOUR_TPA_ORG" }
    },
    "clientOrgProducts": [
      { "product": { "name": "FSA" } },
      { "product": { "name": "LPFSA" } }
    ],
    "addresses": [{
      "addressLine1": "100 Corporate Blvd",
      "city": "New York",
      "state": "NY",
      "postalCode": "10001",
      "country": "US",
      "type": "business",
      "primaryIndicator": true
    }],
    "clientOrgContacts": [{
      "firstName": "HR",
      "lastName": "Admin",
      "primaryIndicator": true,
      "emails": [{ "address": "[email protected]", "primaryIndicator": true }],
      "phones": [{ "number": "+12125551234", "type": "work", "primaryIndicator": true }]
    }],
    "idempotencyKey": "create-employer-abc-001"
  }'

2. Wait for Client Org to be active

Check status via GET /clientOrg/{name}.

3. Retrieve plan summary for the child org

curl -X GET "https://sandbox.lynx-fh.co/api/v1/clientorg/EMPLOYER_ABC_2026/plan/summary" \
  -H "Authorization: Bearer {your_api_token}"

4. Enroll members into the child org

curl -X POST "https://sandbox.lynx-fh.co/api/v1/member" \
  -H "Authorization: Bearer {your_api_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "clientMemberId": "ABC-EMP-001",
    "clientOrg": { "name": "EMPLOYER_ABC_2026" },
    "firstName": "Tom",
    "lastName": "Wilson"
  }'

Key points for TPAs

  • Each employer group = one child Client Org
  • Child orgs inherit parent's program but can have different products enabled
  • Members are enrolled into the child org, not the parent
  • Contributions are submitted per child org
  • Reporting can be aggregated at parent level or segmented by child

See Client Org Management Guide for full details.

Also Offering HSA?

Many TPAs and employers offer both HSA and FSA/HRA. You can enroll a member into both in a single request.

Important: When combining HSA with plan-owned products, include all HSA-required fields (SSN, DOB, healthPlanCoverageType) since HSA is more restrictive.

curl -X POST "https://sandbox.lynx-fh.co/api/v1/member" \
  -H "Authorization: Bearer {your_api_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "clientMemberId": "EMP-005",
    "clientOrg": { "name": "ACME_CORP" },
    "firstName": "Lisa",
    "lastName": "Park",
    "ssn": "111-11-1111",
    "dateOfBirth": "1988-07-30",
    "healthPlanCoverageType": "Family",
    "addresses": [{
      "addressLine1": "999 Health Way",
      "city": "Denver",
      "state": "CO",
      "postalCode": "80202",
      "country": "US",
      "type": "mailing",
      "primaryIndicator": true
    }],
    "phones": [{
      "number": "+17205551234",
      "type": "mobile",
      "primaryIndicator": true
    }],
    "emails": [{
      "address": "[email protected]",
      "primaryIndicator": true
    }],
    "memberProducts": [
      { "product": { "name": "HSA" }, "effectiveDate": "2026-01-01" },
      { "product": { "name": "LPFSA" }, "effectiveDate": "2026-01-01" }
    ],
    "memberAccounts": [
      { "product": { "name": "LPFSA" }, "electionAmount": 2850.00 }
    ],
    "memberCardPreferences": {
      "planName": "ACME_PLAN_2026",
      "cardPackageName": "ACME_CARD_STANDARD"
    },
    "idempotencyKey": "enrollment-lisa-park-001"
  }'

What happens

  • Lynx separates products: HSA (KYC required) vs. LPFSA (no KYC)
  • LPFSA is approved immediately
  • HSA goes through KYC
  • If KYC passes, both products are active
  • If KYC fails, LPFSA remains active but HSA is denied

See Consumer-Owned Accounts Quick Start for HSA-specific details.

Sandbox Testing

No special test data is needed for plan-owned products since there's no KYC. Any valid data will result in immediate approval.

Tips

  • Use realistic but fake member data
  • Test with different election amounts to verify limits
  • Test multi-product enrollment
  • Test the contribution flow

After Enrollment

Next StepSection
Submit contributions (payroll, employer funding)Contribution / Member Payments
Display card details to memberCards
Add another employer group (TPAs)Client Org Management Guide