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 must contain the following properties:
A clinic or other qualified medical amount for the transaction.
The dental amount for the transaction.
The prescription/RX amount for the transaction.
The vision/optical amount for the transaction.
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.
{
"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"
}
}
}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"
}
}
}