Filtered Spend Programs Quick Start

This guide covers programs where spend controls are the primary complexity — OTC benefits, healthy food allowances, rewards, and other restricted spend programs.

Filtered spend programs follow the same enrollment and funding model as plan-owned programs. This guide focuses on what's different: Approved Product Lists (APLs), purse configuration, and authorization rules.


What Makes Filtered Spend Different

  • Spend is restricted by merchant, category, or item (UPC/SKU level)
  • Authorization logic checks APL before approving transactions
  • Members may have multiple purses on one card (OTC + Food + Rewards)
  • Can be funded via PBP (Plan Benefit Package) with scheduled allocations
  • Common for Medicare Advantage supplemental benefits

Primary Audience

  • Health plans offering MA supplemental benefits (OTC, Food, Rewards, etc.)
  • Employers offering wellness incentives with restrictions
  • Programs requiring SKU-level or merchant-level controls

Products Covered

ProductDescriptionTypical Funding
OTCOver-the-counter itemsGood-Faith
FOODGrocery / healthy foodGood-Faith
REWARDSRewards & incentivesFully-Funded
INCENTIVEIncentive programsGood-Faith
FILTEREDAny custom filtered purse tVaries

How Filtered Spend Works

Member swipes card
       ↓
Merchant allowed? (MCC)
       ↓
Item allowed? (APL check)
       ↓
Sufficient balance?
       ↓
APPROVE / DECLINE

Key Concepts

ConceptDescription
APLDefines eligible UPCs/SKUs
PurseBalance bucket per benefit
MCCMerchant category restrictions
Sub_ProgramLinks BIN, purses, APL

Configuration Responsibilities

Lynx Configures

  • Sub_Program
  • Purses
  • APL (default or custom)
  • MCC restrictions
  • Funding rules
  • Card package

You Configure

  • Member product assignments
  • Benefit amounts
  • Custom APL (if applicable)
  • Branding

Enrollment

Filtered spend follows plan-owned model:

  • No KYC
  • Immediate approval

Required Fields

FieldType
clientMemberIdstring
clientOrg.namestring
firstNamestring
lastNamestring
dateOfBirthstring
addressesarray
phonesarray
memberProductsarray
memberCardPreferences.planNamestring
memberCardPreferences.cardPackageNamestring
idempotencyKeystring

Example: OTC + Food + Rewards

curl -X POST "https://sandbox.lynx-fh.co/api/v1/member" \
  -H "Authorization: Bearer {your_api_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "clientMemberId": "MA-MEMBER-001",
    "clientOrg": { "name": "HEALTHPLAN_MA_2026" },
    "firstName": "Mary",
    "lastName": "Johnson",
    "dateOfBirth": "1955-03-20",
    "addresses": [{
      "addressLine1": "789 Palm Dr",
      "city": "Miami",
      "state": "FL",
      "postalCode": "33101",
      "country": "US",
      "primaryIndicator": true
    }],
    "phones": [{
      "number": "+13055551234",
      "primaryIndicator": true
    }],
    "memberProducts": [
      { "product": { "name": "OTC" }, "effectiveDate": "2026-01-01" },
      { "product": { "name": "FOOD" }, "effectiveDate": "2026-01-01" },
      { "product": { "name": "REWARDS_01" }, "effectiveDate": "2026-01-01" }
    ],
    "memberCardPreferences": {
      "planName": "MA_SUPP_BENEFITS_2026",
      "cardPackageName": "HEALTHPLAN_CARD_2026"
    },
    "idempotencyKey": "enrollment-mary-johnson-001"
  }'

What Happens After Enrollment

  • Validation occurs
  • Member created (ACTIVE)
  • Products created (Account_Active)
  • Purses created with balances
  • Card issued
  • Webhooks fire

Checking Account Balances

curl -X GET "https://sandbox.lynx-fh.co/api/v1/member/{clientMemberId}/accounts?clientOrgName={clientOrgName}" \
  -H "Authorization: Bearer {your_api_token}"
{
  "memberAccounts": [
    { "product": { "name": "OTC" }, "balance": 50.00, "purse": "OTC_PURSE" },
    { "product": { "name": "FOOD" }, "balance": 75.00, "purse": "FOOD_PURSE" },
    { "product": { "name": "REWARDS_01" }, "balance": 25.00, "purse": "REWARDS_PURSE" }
  ]
}

Authorization Logic

StepDescription
Merchant CheckAllowed merchant?
Item CheckUPC on APL?
Balance CheckEnough funds?
DecisionApprove or decline

Example Transaction

ItemAPLPurseResult
VitaminsYesOTCApproved
VegetablesYesFoodApproved
CigarettesNoNoneDeclined

APL Types

TypeDescription
Lynx ManagedStandard list
Client CustomCustom UPC list
Category-BasedMCC-level

Funding Models

ModelDescription
PBPScheduled allocations
Good FaithFront-loaded
Lump SumFull upfront

Authorization Webhooks

EventMeaning
lynx.authorization.approvedApproved
lynx.authorization.declinedDeclined
lynx.transaction.settledSettled

Decline Reasons

ReasonDescription
INSUFFICIENT_BALANCENot enough funds
ITEM_NOT_ELIGIBLENot on APL
MERCHANT_NOT_ALLOWEDMCC blocked
CARD_NOT_ACTIVECard inactive
PROGRAM_NOT_ACTIVEBenefit expired

Card Model

  • One card
  • Multiple purses
  • Smart routing at authorization

Virtual vs Physical

TypeUse
PhysicalRetail
VirtualOnline
BothHybrid

E-Commerce Integration

Filtered spend can pair with storefront:

  • APL filtering
  • Cart validation
  • Order processing

Sandbox Testing

  • No special data required
  • All enrollments succeed

After Enrollment

ActionGuide
Build storefrontCommerce Quick Start
Show cardVGS