Skip to main content
POST
Unload a card

Overview

Transfers funds from a card back to your program ledger. Use this to reclaim unused balances, or to zero out a card before terminating it. The card must be ACTIVE — you cannot unload from a FROZEN card.
Unloading is asynchronous. A successful (2xx) response means the request was accepted and is pending confirmation from the card provider — funds are not returned to the program ledger until confirmed, and the provider may still reject the unload. The unload transaction stays PENDING until confirmed. Use the CARD_UNLOADED (confirmed — ledger credited) and CARD_UNLOAD_FAILED (rejected — no credit) webhooks as the source of truth. Both echo the caller reference for reconciliation.

Path Parameters

Request Body

Idempotency

Unloads are idempotent on the reference field. If you retry an unload with the same reference for the same card, the API returns the original result and does not withdraw again — a client retry or accidental double-submit can never drain the card twice or produce a spurious INSUFFICIENT_CARD_BALANCE failure on the second attempt.
Always send a stable, unique reference per logical unload. The same reference you send here is echoed back on the CARD_UNLOADED webhook (see below), so you can correlate the async result with this response.

Example

Success Response (200)

This 200 response means the unload was accepted and the card debit was initiated at the provider. Settlement is confirmed asynchronously by the CARD_UNLOADED webhook.

Webhook

A CARD_UNLOADED event fires once the provider confirms the withdrawal and your program balance has been credited. It echoes the same reference and transactionId as the API response above, so you can join the two directly:
If the provider ultimately rejects the withdrawal, a CARD_UNLOAD_FAILED event fires instead, carrying the same reference and transactionId so you can reconcile the failure to your request.

Error Codes

Authorizations

Authorization
string
header
required

API key from the FYATU CaaS portal. Pass as Authorization: Bearer <key>.

Path Parameters

id
string
required

Body

application/json
amount
number<double>
required
Example:

25

reference
string
Example:

"reclaim-op-002"

Response

Card unloaded

success
boolean
Example:

true

status
integer
Example:

200

message
string
Example:

"Card unloaded"

data
object
meta
object