Create withdrawal
Initiates a payout. The amount is reserved synchronously on success — the
available balance drops immediately.
Idempotency: Idempotency-Key header recommended. Omitting it is permitted — the caller accepts all retry and duplicate risk.
Authentication
AuthorizationBearer
Token obtained via the login flow.
Headers
Idempotency-Key
Optional client-generated UUIDv4. Persist before issuing the request and reuse on retries. Omitting it is permitted — the caller accepts all retry and duplicate risk.
Request
This endpoint expects an object.
beneficiaryId
Must be status: active and match currency.
currency
ISO 4217. Must match the beneficiary's currency.
amount
Positive decimal string.
reference
≤ 140 chars. Appears on the beneficiary’s bank statement (rail-dependent truncation).
clientReference
≤ 140 chars. Client’s internal tracker, echoed on reads, never sent to the bank.
Response
Withdrawal created with status: pending.
withdrawalId
status
pending— reserved, awaiting dispatch. Cancellable.processing— dispatched to the rail. Not cancellable.completed— rail confirms sent; reservation → final debit.cancelled— client-initiated cancel while pending.failed— rejected pre-dispatch; reservation released.returned— sent but returned by receiving bank; balance restored.
beneficiaryId
currency
amount
reference
paymentType
Inherited from the beneficiary's routing.
createdAt
updatedAt
clientReference
statusReason
Machine-readable context for the current status. Present when additional detail is available.
Errors
400
Bad Request Error
401
Unauthorized Error
404
Not Found Error
409
Conflict Error
422
Unprocessable Entity Error