Skip to main content
POST
Unload Card

Overview

Withdraw funds from a card back to your business wallet. An unloading fee may apply based on your pricing configuration.
Unloading is asynchronous. A successful (2xx) response means the request was accepted and is pending confirmation from the card provider — it does not mean the funds have been returned, and the provider may still reject the unload. Do not treat the response as final. Use the card.unloaded (confirmed — funds credited) and card.unloading_failed (rejected — no funds credited) webhooks as the source of truth.

Path Parameters

Request Body

A reference is single-use and final once it resolves. Retrying the same reference returns the original result rather than unloading again. If an unload resolves to FAILED, the same reference returns 409 REFERENCE_ALREADY_FAILED — send a new reference to genuinely retry.

Example Usage

Asynchronous Processing

Card unloading is processed asynchronously by the card provider. A 2xx response confirms only that the request was accepted and submitted — the funds are not yet credited, and the operation can still be rejected downstream.
  • When the provider confirms the unload, a card.unloaded webhook is sent and the net amount is credited to your business wallet.
  • If the provider rejects the unload, a card.unloading_failed webhook is sent and no funds are credited.
Match webhooks to your request using the reference you supplied (it is returned in both the response and the webhook).
Treat the immediate response as “request accepted”, never as “completed”. Use the card.unloaded / card.unloading_failed webhooks — not the synchronous response — as the source of truth for the final status.

Error Responses

A 2xx response is an acceptance, not a settlement (see Asynchronous Processing). These errors are returned synchronously when the request cannot even be submitted:
Use the Get Pricing endpoint to check if unloading fees apply. Funds are credited to your business wallet only once the card provider confirms the unload (see Asynchronous Processing above).

Authorizations

Authorization
string
header
required

JWT access token obtained from /auth/token

Path Parameters

cardId
string
required

Body

application/json
amount
number
required

Amount to unload in USD

reference
string

Your unique reference for this operation. Defaults to cardId if not provided.

Maximum string length: 100

Response

Funds unloaded successfully

success
boolean
Example:

true

status
integer
Example:

200

message
string
data
object
meta
object