Skip to main content
POST
Withdraw from a card
A withdrawal quote must name the card, unlike a funding quote — the rate depends on the card balance it is drawn from. Only the available balance can be withdrawn. Authorisations the card is still holding are not available, which is why a withdrawal for the full balance can be refused.

Error codes

Authorizations

Authorization
string
header
required

A secret API key, sent as Authorization: Bearer sk_test_… in sandbox or Bearer sk_live_… in live.

Path Parameters

cardId
string
required

Card ULID. A 26-character ULID.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

Body

application/json
externalReference
string
required
Required string length: 1 - 120
accountId
string
required

The account funding the card, or receiving the withdrawal. One of your own, never a customer wallet.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

amountUsd
string
required

A positive integer number of minor units.

Pattern: ^[1-9]\d*$
Example:

"2500000"

fxQuoteId
string

Required when the account is not USD.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

Response

Successful response.

id
string
required

A 26-character ULID.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

cardId
string
required

A 26-character ULID.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

type
enum<string>
required
Available options:
issuance,
funding,
withdrawal,
termination
status
enum<string>
required
Available options:
created,
submitting,
pending,
completed,
failed
sourceCurrency
enum<string>
required
Available options:
NGN,
USD,
GBP,
EUR,
GHS,
ZAR,
UGX,
CAD,
MXN,
AED,
BTC,
ETH,
USDT,
USDC
destinationCurrency
enum<string>
required
Available options:
NGN,
USD,
GBP,
EUR,
GHS,
ZAR,
UGX,
CAD,
MXN,
AED,
BTC,
ETH,
USDT,
USDC
sourceAmount
string
required

An integer number of the asset’s smallest unit. Use this value for arithmetic.

Pattern: ^-?\d+$
Example:

"2500000"

destinationAmount
string
required

An integer number of the asset’s smallest unit. Use this value for arithmetic.

Pattern: ^-?\d+$
Example:

"2500000"

failureCode
string | null
required
failureReason
string | null
required
completedAt
string<date-time> | null
required
Example:

"2026-08-14T09:00:00.000Z"

createdAt
string<date-time>
required
Example:

"2026-08-14T09:00:00.000Z"

updatedAt
string<date-time>
required
Example:

"2026-08-14T09:00:00.000Z"