Card Payouts
Card Payouts
Send funds to your recipient's debit or credit card using Payouts. Please note, card payouts are only available to Visa and Mastercard cards.
If you have any questions about creating payouts, reach out to your Finix Point of Contact or Finix Support.
Step 1: Create a Recipient Identity
The first step for making a payout is creating a RECIPIENT Identity to represent whom you'll send funds to. The Identity resource helps manage bank accounts, cards, payout history, and the details of your customers. You can create either PERSONAL or BUSINESS Recipients.
Required Data
| Required | Optional | Invalid |
|---|---|---|
| Field | type: PERSONAL |
type: BUSINESS |
|---|---|---|
Type type |
||
First Name first_name |
||
Last Name last_name |
||
Personal Address personal_address |
||
Business Name business_name |
||
Doing Business As doing_business_as |
||
Business Address business_address |
||
Business Phone business_phone |
||
Personal Email email |
||
Personal Phone phone |
API Request
- Personal Recipient
- Business Recipient
post
/identities
- Sandbox server
https://finix.sandbox-payments-api.com/identities
cURL
curl -i -X POST \
-u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
https://finix.sandbox-payments-api.com/identities \
-H 'Content-Type: application/json' \
-H 'Finix-Version: 2022-02-01' \
-d '{
"entity": {
"first_name": "John",
"last_name": "Jeremy",
"personal_address": {
"city": "Springfield",
"country": "USA",
"line1": "789 Oak Drive",
"line2": null,
"postal_code": "62704",
"region": "IL"
}
},
"identity_roles": [\
"RECIPIENT"\
],
"type": "PERSONAL"
}'
Recipient (Personal)
{
"id": "IDdRDX7H6hNcm4HexJBeZVUV",
"created_at": "2024-08-08T09:36:10.26Z",
"updated_at": "2024-08-08T09:36:10.26Z",
"application": "APgPDQrLD52TYvqazjHJJchM",
"entity": {
"ach_max_transaction_amount": 0,
"amex_mid": null,
"annual_card_volume": 0,
"business_address": null,
"business_name": null,
"business_phone": null,
"business_tax_id_provided": false,
"business_type": null,
"default_statement_descriptor": null,
"discover_mid": null,
"dob": null,
"doing_business_as": null,
"email": null,
"first_name": "John",
"has_accepted_credit_cards_previously": false,
"incorporation_date": null,
"last_name": "Jeremy",
"max_transaction_amount": 0,
"mcc": null,
"ownership_type": null,
"personal_address": {
"line1": "789 Oak Drive",
"line2": null,
"city": "Springfield",
"region": "IL",
"postal_code": "62704",
"country": "USA"
},
"phone": null,
"principal_percentage_ownership": null,
"short_business_name": null,
"tax_authority": null,
"tax_id_provided": false,
"title": null,
"url": null
},
"identity_roles": [\
"RECIPIENT"\
],
"tags": {},
"type": "PERSONAL",
"_links": {
"self": {
"href": "https://finix.sandbox-payments-api.com/identities/IDdRDX7H6hNcm4HexJBeZVUV"
},
"verifications": {
"href": "https://finix.sandbox-payments-api.com/identities/IDdRDX7H6hNcm4HexJBeZVUV/verifications"
},
"merchants": {
"href": "https://finix.sandbox-payments-api.com/identities/IDdRDX7H6hNcm4HexJBeZVUV/merchants"
},
"settlements": {
"href": "https://finix.sandbox-payments-api.com/identities/IDdRDX7H6hNcm4HexJBeZVUV/settlements"
},
"authorizations": {
"href": "https://finix.sandbox-payments-api.com/identities/IDdRDX7H6hNcm4HexJBeZVUV/authorizations"
},
"transfers": {
"href": "https://finix.sandbox-payments-api.com/identities/IDdRDX7H6hNcm4HexJBeZVUV/transfers"
},
"payment_instruments": {
"href": "https://finix.sandbox-payments-api.com/identities/IDdRDX7H6hNcm4HexJBeZVUV/payment_instruments"
},
"associated_identities": {
"href": "https://finix.sandbox-payments-api.com/identities/IDdRDX7H6hNcm4HexJBeZVUV/associated_identities"
},
"disputes": {
"href": "https://finix.sandbox-payments-api.com/identities/IDdRDX7H6hNcm4HexJBeZVUV/disputes"
},
"application": {
"href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
}
}
}
Step 2: Add a Payment Instrument for the Recipient
PCI Level 1 Compliance
Creating Payment Instruments and passing payment details (account number, card number, etc.) directly via the API should only be done for testing purposes and by PCI Level 1 compliant entities. If you aren't a Level 1 PCI-compliant entity, you must use our Tokenization Forms or Mobile Tokenization to accept payment details and comply with PCI regulations. If you have any questions, please don't hesitate to reach out to your Finix point of contact or email the Finix Support team.
Now that we've created an Identity for our recipient, we'll need to create a Payment Instrument using the recipient's card details. A Payment Instrument represents the recipient's payment method that will receive funds. When creating Payment Instruments for Payouts, attempt_bank_account_validation_check must be set to true.
If you have any questions about creating Payment Instruments, reach out to your Finix Point of Contact or Finix Support.
- Example
- API Definition
post
/payment_instruments
- Sandbox server
https://finix.sandbox-payments-api.com/payment_instruments
cURL
curl -i -X POST \
-u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
https://finix.sandbox-payments-api.com/payment_instruments \
-H 'Content-Type: application/json' \
-H 'Finix-Version: 2022-02-01' \
-d '{
"address": {
"city": "San Francisco",
"country": "USA",
"line1": "900 Metro Center Blv",
"postal_code": "94404",
"region": "CA"
},
"expiration_month": 12,
"expiration_year": 2029,
"identity": "IDmj1yA97RS4rMjiQgvK3Vio",
"name": "John Jeremy",
"number": "5200828282828210",
"security_code": "022",
"type": "PAYMENT_CARD"
}'
- Example
- API Definition
Payment Instrument - Card
{
"id": "PI6F5kkcCB3dtGhFy1t8Aua5",
"created_at": "2024-11-15T09:42:33.42Z",
"updated_at": "2024-11-15T09:42:33.42Z",
"account_updater_enabled": false,
"application": "APgPDQrLD52TYvqazjHJJchM",
"created_via": "API",
"currency": "USD",
"disabled_code": null,
"disabled_message": null,
"enabled": true,
"fingerprint": "FPRiCenDk2SoRng7WjQTr7RJY",
"identity": "IDgWxBhfGYLLdkhxx2ddYf9K",
"instrument_type": "PAYMENT_CARD",
"address": {
"line1": "900 Metro Center Blv",
"line2": null,
"city": "San Francisco",
"region": "CA",
"postal_code": "94404",
"country": "USA"
},
"address_verification": "UNKNOWN",
"bin": "520082",
"brand": "MASTERCARD",
"card_type": "DEBIT",
"expiration_month": 12,
"expiration_year": 2029,
"issuer_country": "NON_USA",
"last_four": "8210",
"name": "John Jeremy",
"network_token_enabled": false,
"network_token_state": "NOT_ENABLED",
"security_code_verification": "UNKNOWN",
"tags": {},
"third_party": null,
"third_party_token": null,
"type": "PAYMENT_CARD",
"_links": {
"self": {
"href": "https://finix.sandbox-payments-api.com/payment_instruments/PI6F5kkcCB3dtGhFy1t8Aua5"
},
"authorizations": {
"href": "https://finix.sandbox-payments-api.com/payment_instruments/PI6F5kkcCB3dtGhFy1t8Aua5/authorizations"
},
"transfers": {
"href": "https://finix.sandbox-payments-api.com/payment_instruments/PI6F5kkcCB3dtGhFy1t8Aua5/transfers"
},
"verifications": {
"href": "https://finix.sandbox-payments-api.com/payment_instruments/PI6F5kkcCB3dtGhFy1t8Aua5/verifications"
},
"application": {
"href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
},
"identity": {
"href": "https://finix.sandbox-payments-api.com/identities/IDgWxBhfGYLLdkhxx2ddYf9K"
},
"updates": {
"href": "https://finix.sandbox-payments-api.com/payment_instruments/PI6F5kkcCB3dtGhFy1t8Aua5/updates"
}
}
}
Step 3: Verify the Payment Instrument
After associating a payment instrument with a recipient, you must verify the card's eligibility for push-to-card by submitting the following request. The resulting Verification resource provides general attributes and specific card details, including card type and issuer information.
- Example
- API Definition
post
/payment_instruments/{payment_instrument_id_verify}/verifications
- Sandbox server
https://finix.sandbox-payments-api.com/payment_instruments/{payment_instrument_id_verify}/verifications
cURL
curl -i -X POST \
-u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
https://finix.sandbox-payments-api.com/payment_instruments/PIn8as75qLQFqQ7G4NdBUk58/verifications \
-H 'Content-Type: application/json' \
-d '{
"processor": "DUMMY_V1"
}'
- Example
- API Definition
Card is eligible for push-to-card
{
"id": "VI9cSUm3SDaLKtuL92Z34rK9",
"created_at": "2025-11-07T20:36:16.90Z",
"updated_at": "2025-11-07T20:36:16.92Z",
"application": "APc9vhYcPsRuTSpKD9KpMtPe",
"identity": null,
"merchant": null,
"merchant_identity": null,
"messages": [],
"outcome_summary": null,
"outcomes": null,
"payment_instrument": "PIn8as75qLQFqQ7G4NdBUk58",
"payment_instrument_verification_details": {
"push_to_card_domestic": null,
"push_to_card_cross_border": null,
"card_type": null,
"billing_currency": null,
"issuer_country": "UNKNOWN",
"name_verification_results": {
"first_name_verification": "UNKNOWN",
"last_name_verification": "UNKNOWN",
"middle_name_verification": "UNKNOWN",
"name_verification": "UNKNOWN"
}
},
"processor": "DUMMY_V1",
"raw": null,
"state": "PENDING",
"tags": {
"card_name": "Business_Card"
},
"trace_id": "63eefc66-81a3-4f24-a09d-bb7650e23943",
"type": "PAYMENT_INSTRUMENT",
"_links": {
"self": {
"href": "https://finix.sandbox-payments-api.com/verifications/VI9cSUm3SDaLKtuL92Z34rK9"
},
"application": {
"href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
},
"payment_instrument": {
"href": "https://finix.sandbox-payments-api.com/payment_instruments/PIn8as75qLQFqQ7G4NdBUk58"
}
}
}
Payment Instrument Verification Result Codes
Card Type (card_type)
This code indicates whether the card is credit, debit, or prepaid.
CODE |
Description |
|---|---|
CREDIT |
Credit or Charge Card |
DEBIT |
Debit or Deferred Debit Card |
HSA_FSA |
HSA or FSA Card |
RELOADABLE_PREPAID |
Reloadable Prepaid Card |
UNRELOADABLE_PREPAID |
Unreloadable Prepaid Card |
UNKNOWN |
Unknown |
Pull From Card Cross Border (pull_from_card_cross_border)
This field indicates whether pull-from-card functionality is supported cross-border for this instrument.
CODE |
Description |
|---|---|
FAST_FUNDS |
Indicates fast fund movement is supported for this instrument |
NON_FAST_FUNDS |
Indicates movement is supported for this instrument |
NOT_SUPPORTED |
Indicates this instrument is not supported |
UNKNOWN |
Unexpected verification result |
Pull From Card Domestic (pull_from_card_domestic)
This field indicates whether pull-from-card functionality is supported domestically for this instrument.
Push to Card Domestic (push_to_card_domestic)
This field is used to indicate push to card functionality is supported domestically for this instrument.
Push to Card Cross Border (push_to_card_cross_border)
This field is used to indicate push to card functionality is supported cross border for this instrument.
Raw Message Response Arguments
Address Verification Results (address_verification_results)
Letter |
Description |
|---|---|
| D, F, M, Y | Address verified |
| A, B, C, G, I, N, P, R, S, U, W | Address not verified |
Z |
Postal/ZIP match, street addresses do not match or street address not included in request |
Card Verification 2 Results (cvv2_result_code)
Letter |
Description |
|---|---|
M |
CVV and expiration verified |
| N, P, S | Either CVV or expiration date is incorrect |
U |
Issuer does not participate in CVV2 service |
Card Type (card_type_code)
This one-character code indicates whether the account is credit, debit, prepaid, deferred debit, or charge.
Letter |
Description |
|---|---|
C |
Credit |
D |
Debit |
H |
Charge Card |
P |
Prepaid |
R |
Deferred Debit |
Fast Funds Indicator (fast_funds_indicator)
Indicates whether or not the card is Fast Funds eligible (i.e. if the funds will settle in 30 mins or less). If not eligible, typically funds will settle within 2 business days.
Letter |
Description |
|---|---|
B |
Fast Funds eligible for all transactions |
D |
Fast Funds eligible for only domestic transactions |
N |
Not eligible for Fast Funds |
Push Funds Indicator (push_funds_block_indicator)
This code indicates if the associated card can receive push-to-card disbursements.
Letter |
Description |
|---|---|
| A, B, C | Accepts push-to-card payments |
N |
Does not accept push-to-card payments |
Online Gambling Block Indicator (online_gambing_block_indicator)
Indicates if the card can receive push-payments for online gambling payouts.
Letter |
Description |
|---|---|
Y |
Blocked for online gambling payouts |
N |
Not blocked for online gambling payouts |
Card Product ID (card_product_id)
A combination of card brand, platform, class and scheme.
Letter |
Description |
|---|---|
A |
Visa Traditional |
AX |
American Express |
B |
Visa Traditional Rewards |
C |
Visa Signature |
D |
Visa Signature Preferred |
DI |
Discover |
DN |
Diners |
E |
Proprietary ATM |
F |
Visa Classic |
G |
Visa Business |
G1 |
Visa Signature Business |
G2 |
Visa Business Check Card |
G3 |
Visa Business Enhanced |
G4 |
Visa Infinite Business |
G5 |
Visa Business Rewards |
I |
Visa Infinite |
I1 |
Visa Infinite Privilege |
I2 |
Visa UHNW |
J3 |
Visa Healthcare |
JC |
JCB |
K |
Visa Corporate T&E |
K1 |
Visa Government Corporate T&E |
L |
Visa Electron |
M |
MasterCard |
N |
Visa Platinum |
N1 |
Visa Rewards |
N2 |
Visa Select |
P |
Visa Gold |
Q |
Private Label |
Q1 |
Private Label Prepaid |
Q2 |
Private Label Basic |
Q3 |
Private Label Standard |
Q4 |
Private Label Enhanced |
Q5 |
Private Label Specialized |
Q6 |
Private Label Premium |
R |
Proprietary |
S |
Visa Purchasing |
S1 |
Visa Purchasing with Fleet |
S2 |
Visa Government Purchasing |
S3 |
Visa Government Purchasing with Fleet |
S4 |
Visa Commercial Agriculture |
S5 |
Visa Commercial Transport |
S6 |
Visa Commercial Marketplace |
U |
Visa Travel Money |
V |
Visa V PAY |
Product Sub-Type (card_product_subtype)
Description of product subtype.
Letter |
Description |
|---|---|
AC |
Agriculture Maintenance Account |
AE |
Agriculture Debit Account/Electron |
AG |
Agriculture |
AI |
Agriculture Investment Loan |
CG |
Brazil Cargo |
CS |
Construction |
DS |
Distribution |
HC |
Healthcare |
LP |
Visa Large Purchase Advantage |
MA |
Visa Mobile Agent |
MB |
Interoperable Mobile Branchless Banking |
MG |
Visa Mobile General |
VA |
Visa Vale - Supermarket |
VF |
Visa Vale - Fuel |
VR |
Visa Vale - Restaurant |
Card Sub-Type (card_subtype_code)
The code for account funding source subtype, such as reloadable and non-reloadable.
Letter |
Description |
|---|---|
N |
Non-Reloadable |
R |
Reloadable |
Step 4: Verify and Onboard the Recipient Account
Now that we've associated a Payment Instrument with our recipient's Identity we're ready to provision a recipient account. This is the last step before you can begin paying out a recipient Identity. Luckily you've already done most of the heavy lifting - make one final POST request, a Merchant resource will get returned.
- Example
- API Definition
post
/identities/{identity_id}/merchants
- Sandbox server
https://finix.sandbox-payments-api.com/identities/{identity_id}/merchants
cURL
curl -i -X POST \
-u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
https://finix.sandbox-payments-api.com/identities/IDhC29dXMAkbmr1aBpS91Hpx/merchants \
-H 'Content-Type: application/json' \
-H 'Finix-Version: 2022-02-01' \
-d '{
"processor": "DUMMY_V1",
"tags": {
"key_2": "value_2"
}
}'
- Example
- API Definition
Merchant
{
"id": "MUeTBamsYxqr1KSnT4U2x9SP",
"created_at": "2024-08-16T13:11:36.72Z",
"updated_at": "2024-08-16T13:11:36.72Z",
"application": "APgPDQrLD52TYvqazjHJJchM",
"card_cvv_required": false,
"card_expiration_date_required": true,
"card_network_details": null,
"convenience_charges_enabled": false,
"country": "USA",
"creating_transfer_from_report_enabled": true,
"currencies": [\
"USD"\
],
"default_partial_authorization_enabled": false,
"disbursements_ach_pull_enabled": false,
"disbursements_ach_push_enabled": false,
"disbursements_card_pull_enabled": false,
"disbursements_card_push_enabled": false,
"disbursements_same_day_ach_pull_enabled": false,
"disbursements_same_day_ach_push_enabled": false,
"fee_ready_to_settle_upon": "RECONCILIATION",
"gateway": null,
"gross_settlement_enabled": false,
"identity": "ID6ZC4KedcaCwECQcWr7SM4m",
"instant_payouts_card_push_enabled": false,
"level_two_level_three_data_enabled": false,
"loan_repayment": null,
"mcc": "4900",
"merchant_name": "Blue Horizon Technologies",
"merchant_profile": "MP8aC84QAtA69Qhv6BJSyvHr",
"mid": null,
"onboarding_state": "PROVISIONING",
"processing_enabled": false,
"processor": "DUMMY_V1",
"processor_details": {},
"ready_to_settle_upon": "RECONCILIATION",
"ready_to_settle_upon_delay_alignment": "NONE",
"rent_surcharges_enabled": false,
"settlement_enabled": false,
"settlement_funding_identifier": "UNSET",
"surcharges_enabled": false,
"tags": {
"key_2": "value_2"
},
"unreferenced_refund_manual_entry_enabled": false,
"verification": "VI7jopNSiaVMXWKkhxt6dJm7",
"_links": {
"self": {
"href": "https://finix.sandbox-payments-api.com/merchants/MUeTBamsYxqr1KSnT4U2x9SP"
},
"identity": {
"href": "https://finix.sandbox-payments-api.com/identities/ID6ZC4KedcaCwECQcWr7SM4m"
},
"verifications": {
"href": "https://finix.sandbox-payments-api.com/merchants/MUeTBamsYxqr1KSnT4U2x9SP/verifications"
},
"merchant_profile": {
"href": "https://finix.sandbox-payments-api.com/merchant_profiles/MP8aC84QAtA69Qhv6BJSyvHr"
},
"application": {
"href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
},
"verification": {
"href": "https://finix.sandbox-payments-api.com/verifications/VI7jopNSiaVMXWKkhxt6dJm7"
}
}
}
Step 5: Send Payout
Next you'll need to create a Transfer. A Transfer represents any flow of funds either to or from a Payment Instrument. In this case, a payout to a debit or credit card.
To create a Transfer:
- Include the ID of the
Payment Instrumentof the previously tokenized card as thedestination. - In
amount, set the funds to send in cents. In the below example, $150.00 is getting paid out. - Recommended to include an
idempotency_idfield in the payload. For more information, see Idempotent Requests.
The recipient of the card payout must be:
an
Identitywhoseidentity_rolesincludesRECIPIENTan approved
MerchantExample
API Definition
post
/transfers
- Sandbox server
https://finix.sandbox-payments-api.com/transfers
cURL
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 '{
"amount": 15000,
"currency": "USD",
"destination": "PIveyqg2bVkKo6SHsstxBSDc",
"funds_flow_type": "GENERAL_PAYOUT",
"operation_key": "PUSH_TO_CARD"
}'