Appearance
Withdraw fiat to a bank account​
POST
/v1/wallet/fiat/{currency}/withdraw
Requires WITHDRAWALS_CREATE, granted by WITHDRAWALS_WRITE (bundles)
Withdraws fiat from the account (the primary, or the sub-account selected with X-VALR-SUB-ACCOUNT-ID) to a bank account linked to that same account, with no email or two-factor confirmation; the fee is charged on top of amount. Set fast for a real-time (RTC) or RTGS payment at participating banks, and allowBorrow to borrow any shortfall against your other assets on a margin-enabled account. The response holds the withdrawal's id; track it with Get a fiat withdrawal.
Parameters​
Path Parameters
currency*
Fiat currency to withdraw, e.g. ZAR.
Type
Requiredstring
Example
"ZAR"Request Body​
application/json
JSON
{
"linkedBankAccountId": "3c9e1f42-7d5b-4a8e-9f21-6b0d8c4e7a15",
"amount": "1500",
"fast": false,
"reference": "INV 2026-0142"
}
Responses​
Accepted
application/json
Samples​
Errors
| HTTP | Error | When |
|---|---|---|
| 400 | -113INVALID_JSON | The body isn't valid JSON. |
| 400 | -11INVALID_REQUEST | The body is empty or a field fails validation, or reference was rejected, or the currency isn't recognised; validationErrors lists each failing field. |
| 400 | -13415WITHDRAWALS_TEMPORARILY_SUSPENDED | Withdrawals are paused for a while after a security change on your account, such as a password reset or a new device; the message says when they're re-enabled. |
| 400 | -32765WITHDRAWAL_RESTRICTION_APPLIED | The withdrawal would take your portfolio below the minimum value it must keep. |
| 400 | -15875FIAT_WITHDRAWALS_TO_BANK_BRANCH_RESTRICTED | Withdrawals to the bank account's branch code aren't supported. Use another bank account or contact support. |
| 400 | -15307FIAT_WITHDRAWAL_AMOUNT_BELOW_MINIMUM | amount is below the minimum withdrawal for this currency. |
| 400 | -15318FIAT_WITHDRAWAL_CURRENCY_MISMATCH | The bank account was linked for a different currency. |
| 400 | -6INSUFFICIENT_BALANCE | The account's available balance doesn't cover amount plus the fee. |
| 400 | -15322CAN_NOT_WITHDRAW_TO_A_DELETED_BANK_ACCOUNT | The bank account has been deleted. Link it again to withdraw to it. |
| 400 | -15321CAN_NOT_WITHDRAW_TO_AN_UNCONFIRMED_BANK_ACCOUNT | The bank account was never confirmed. |
| 400 | -15309CAN_NOT_WITHDRAW_TO_AN_UNVERIFIED_BANK_ACCOUNT | This currency only pays out to verified bank accounts, and this one hasn't been verified yet or failed verification. |
| 400 | -19243BORROW_FOR_WITHDRAWAL_NOT_AVAILABLE | allowBorrow was set, but borrowing for withdrawals is unavailable at the moment. |
| 400 | -19244BORROW_FOR_WITHDRAWAL_NOT_AVAILABLE_FOR_SELECTED_CURRENCY | allowBorrow was set, but this currency can't be borrowed for a withdrawal. |
| 400 | -19213MARGIN_NOT_ENABLED_FOR_ACCOUNT | allowBorrow was set, but margin isn't enabled on the account. |
| 400 | -11533CURRENCY_BORROW_EXCEEDED_FOR_COLLATERALIZED_LENDING | Borrowing the shortfall would exceed the account's borrow limit for this currency. |
| 400 | -11534ACCOUNT_BORROW_EXCEEDED_FOR_COLLATERALIZED_LENDING | Borrowing the shortfall would exceed the account's total borrow limit. |
| 404 | -14203COULD_NOT_GET_LINKED_ACCOUNT | No bank account with linkedBankAccountId exists. |
| 451 | -15320FIAT_WITHDRAWALS_NOT_ALLOWED_FOR_CURRENCY | Your business's region doesn't allow withdrawals in this currency. |
| 500 | -19202INSUFFICIENT_LIQUIDITY_FOR_BORROW | allowBorrow was set, but the amount to borrow isn't available right now. Try again later. |
| 503 | -12015WITHDRAWALS_NOT_AVAILABLE | Withdrawals are unavailable at the moment. Try again later. |
Plus the errors common to all signed endpoints.