Fincore · Guides
Send money to a debit card
Register a 16-digit debit card as the destination instrument and send it Money Out with the same operation you use for CLABEs.
Use this guide when the beneficiary gives you a 16-digit debit card number instead of a CLABE. The Money Out operation is the same. The only difference is the destination instrument you register first.
Debit-card Money Out is available when the feature is enabled for your integration.
Flow
| Step | Action | Operation | Save |
|---|---|---|---|
| 1 | Retrieve issuing banks | Retrieve SPEI participants | Issuing bank id. |
| 2 | Register the debit-card instrument | Register instrument | Destination instrument id. |
| 3 | Send Money Out | Create Money Out transaction | Transaction id, trackingId, initial status. |
| 4 | Reconcile the status | Status update webhook | Final transaction state. |
1. Register the debit card
Send a debit_card object instead of virtual_clabe. The request must include exactly one payment method; sending both returns 400.
curl -X POST https://apicore.stg.finch.lat/v1/clients/$CLIENT_ID/instruments \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_bank_id": "9d84b03a-28d1-4898-a69c-38824239e2b1",
"client_id": "c2d1d1e3-3340-4170-980e-e9269bbbc551",
"type": "RECEIVER",
"rfc": "XAXX010101000",
"alias": "Card ABC123",
"debit_card": {
"destination_bank_id": "3054ff18-32a0-478d-b9fe-b5261f9a6e1f",
"card_number": "1234567812345678",
"holder_name": "Jane Doe"
}
}'| Field | Rule |
|---|---|
debit_card.destination_bank_id |
Required. Bank UUID of the card issuer. |
debit_card.card_number |
Required. Exactly 16 digits. |
debit_card.holder_name |
Required. Up to 40 characters. |
customer_id |
Optional. Send it when the card belongs to a Business Unit. |
{
"id": "dd7f8d89-94dd-43ca-871b-720fde378b52",
"bankId": "3054ff18-32a0-478d-b9fe-b5261f9a6e1f",
"clientId": "c2d1d1e3-3340-4170-980e-e9269bbbc551",
"ownerId": "c2d1d1e3-3340-4170-980e-e9269bbbc551",
"alias": "Card ABC123",
"type": "RECEIVER",
"instrumentDetail": {
"cardNumber": "1234567812345678",
"expirationDate": null,
"holderName": "Jane Doe"
},
"audit": {
"createdAt": "2025-05-19 19:03:51.084659-06:00",
"updatedAt": "2025-05-19 19:03:51.084659-06:00",
"deletedAt": null,
"blockedAt": null
},
"rfc": "XAXX010101000"
}Card instruments return cardNumber, expirationDate and holderName in instrumentDetail. CLABE instruments return accountNumber, clabeNumber and holderName.
Instrument registration can fail with 400 for missing required fields, malformed UUIDs, an invalid instrument type, an invalid debit-card number, an unsupported BIN, an invalid holder name, sending both virtual_clabe and debit_card, or a conflict with an existing beneficiary; with 404 if the client, customer, source bank or destination bank was not found; and with 500 for an unexpected server error.
2. Send Money Out
Use the instrument id as destination_instrument_id in Create Money Out transaction. Everything else works exactly as in Send money to a CLABE: the same request fields, Idempotency-Key, status webhook and errors.
curl -X POST https://apicore.stg.finch.lat/v1/transactions/money_out \
-H "Authorization: Bearer $TOKEN" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{
"client_id": "c2d1d1e3-3340-4170-980e-e9269bbbc551",
"source_instrument_id": "709448c3-7cbf-454d-a87e-feb23801269a",
"destination_instrument_id": "dd7f8d89-94dd-43ca-871b-720fde378b52",
"transaction_request": {
"external_reference": "1234567",
"description": "Customer payout",
"amount": "250.00",
"currency": "MXN"
}
}'