Skip to content

Process HSA/FSA Cards for Non-Healthcare MCCs

This guide shows how to use the Finix API to process transactions with HSA or FSA cards for a non-healthcare MCC. It assumes you have completed SIGIS registration, IIAS certification, and have worked with Finix to enable this feature.

To provide the card networks with the necessary information to process HSA and FSA cards, you need to include the additional_healthcare_data object in your Transfer or Authorization request.

The additional_healthcare_data object

The additional_healthcare_data object must contain the following properties:

clinic_amountinteger or null

A clinic or other qualified medical amount for the transaction.

dental_amountinteger or null

The dental amount for the transaction.

prescription_amountinteger or null

The prescription/RX amount for the transaction.

vision_amountinteger or null

The vision/optical amount for the transaction.

Transfer - HSA or FSA Card for Non-Healthcare MCC

To create a Transfer using HSA or FSA cards for a non-healthcare MCC with the appropriate SIGIS registration and IIAS certification, refer to the sample request below.

curl -i -X POST \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  https://finix.sandbox-payments-api.com/transfers \
  -H 'Content-Type: application/json' \
  -H 'Finix-Version: 2022-02-01' \
  -d '{
    "additional_healthcare_data": {
      "clinic_amount": 50,
      "dental_amount": 200,
      "prescription_amount": 300,
      "vision_amount": 300
    },
    "amount": 950,
    "currency": "USD",
    "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
    "source": "PI6iQcTtJNCS8GZAVKYi5Ueb",
    "tags": {
      "order_number": "21DFASJSAKAS"
    }
  }'

A successful request returns a 201 Created status code, with the response body containing the newly created Transfer with the additional healthcare amounts.

Transfer
{
  "id": "TRt1zYnvR1CfWgcFwo4RADAw",
  "created_at": "2025-07-25T17:43:20.49Z",
  "updated_at": "2025-07-25T17:43:20.49Z",
  "additional_buyer_charges": null,
  "additional_healthcare_data": { 
    "clinic_amount": 50, 
    "dental_amount": 200, 
    "prescription_amount": 300, 
    "vision_amount": 300
  }, 
  "additional_purchase_data": null,
  "address_verification": "POSTAL_CODE_AND_STREET_MATCH",
  "amount": 662154,
  "amount_requested": 662154,
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "currency": "USD",
  "destination": null,
  "externally_funded": "UNKNOWN",
  "failure_code": null,
  "failure_message": null,
  "fee": 0,
  "fee_profile": "FPuizPqrhzYLbmJm88u7aqfj",
  "idempotency_id": null,
  "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
  "merchant_identity": "ID6UfSm1d4WPiWgLYmbyeo3H",
  "messages": [],
  "operation_key": "CARD_NOT_PRESENT_SALE",
  "parent_transfer": null,
  "parent_transfer_trace_id": null,
  "raw": null,
  "ready_to_settle_at": "2025-07-26T17:43:20.97Z",
  "receipt_last_printed_at": null,
  "security_code_verification": "MATCHED",
  "source": "PI6iQcTtJNCS8GZAVKYi5Ueb",
  "split_transfers": [],
  "state": "SUCCEEDED",
  "statement_descriptor": "FLX*FINIX FLOWERS",
  "subtype": "API",
  "supplemental_fee": null,
  "tags": {
    "test": "Sale"
  },
  "tip_amount": null,
  "trace_id": "036fad58-1708-4e43-a67c-fcbdf8213b0e",
  "type": "DEBIT",
  "_links": {
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "self": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRt1zYnvR1CfWgcFwo4RADAw"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/transfers/ID6UfSm1d4WPiWgLYmbyeo3H"
    },
    "payment_instruments": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRt1zYnvR1CfWgcFwo4RADAw/payment_instruments"
    },
    "reversals": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRt1zYnvR1CfWgcFwo4RADAw/reversals"
    },
    "fees": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRt1zYnvR1CfWgcFwo4RADAw/fees"
    },
    "disputes": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRt1zYnvR1CfWgcFwo4RADAw/disputes"
    },
    "source": {
      "href": "https://finix.sandbox-payments-api.com/payment_instruments/PI6iQcTtJNCS8GZAVKYi5Ueb"
    },
    "fee_profile": {
      "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPuizPqrhzYLbmJm88u7aqfj"
    }
  }
}

Authorization - HSA or FSA Card for Non-Healthcare MCC

Just as with Transfer requests, you need to include the additional_healthcare_data object for Authorization requests involving HSA or FSA cards that use a non-healthcare MCC.

curl -i -X POST \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  https://finix.sandbox-payments-api.com/authorizations \
  -H 'Content-Type: application/json' \
  -H 'Finix-Version: 2022-02-01' \
  -d '{
    "additional_healthcare_data": {
      "clinic_amount": 50,
      "dental_amount": 200,
      "prescription_amount": 300,
      "vision_amount": 300
    },
    "amount": 950,
    "currency": "USD",
    "merchant": "MU7noQ1wdgdAeAfymw2rfBMq",
    "source": "PIkxmtueemLD6dN9ZoWGHT44"
  }'

A successful request returns a 201 Created status code, with the response body containing the newly created Authorization with the additional healthcare amounts:

{
  "id": "AU2J7hDBvWSBEnis5BHGhBCR",
  "created_at": "2024-12-04T10:12:59.44Z",
  "updated_at": "2024-12-04T10:12:59.44Z",
  "3ds_redirect_url": null,
  "additional_buyer_charges": null,
  "additional_healthcare_data": { 
    "clinic_amount": 50, 
    "dental_amount": 200, 
    "prescription_amount": 300, 
    "vision_amount": 300
  },
  "additional_purchase_data": null,
  "address_verification": "POSTAL_CODE_AND_STREET_MATCH",
  "amount": 950,
  "amount_requested": 950,
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "currency": "USD",
  "expires_at": "2024-12-11T10:12:59.44Z",
  "failure_code": null,
  "failure_message": null,
  "idempotency_id": null,
  "is_void": false,
  "merchant": "MU7noQ1wdgdAeAfymw2rfBMq",
  "merchant_identity": "IDjvxGeXBLKH1V9YnWm1CS4n",
  "messages": [],
  "raw": null,
  "receipt_last_printed_at": null,
  "security_code_verification": "MATCHED",
  "source": "PIkxmtueemLD6dN9ZoWGHT44",
  "state": "SUCCEEDED",
  "tags": {
    "order_number": "21DFASJSAKAS"
  },
  "trace_id": "f834fd36-6978-48e7-b0fc-a40cc208bdde",
  "transfer": null,
  "void_state": "UNATTEMPTED",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/authorizations/AU2J7hDBvWSBEnis5BHGhBCR"
    },
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDjvxGeXBLKH1V9YnWm1CS4n"
    }
  }
}