Initiate a withdrawal to an off-platform address.
POST/v1/withdrawals
Submits a withdrawal request. The account is debited synchronously (the amount moves
from available to held); the on-chain broadcast happens asynchronously through
the custody coordinator and worker pipeline. Monitor the withdrawal's state via
GET /v1/withdrawals/{withdrawal_id} — pending_finality → broadcast → finalized.
Requires the account to be in a withdraw-capable state (active or trade_frozen).
Request
Responses
- 202
- 400
- 401
- 403
- 503
Withdrawal accepted. The on-chain broadcast is asynchronous.
Request was malformed or failed validation. The error.code field carries the
machine-readable reason; common values include invalid_request, invalid_json,
invalid_order_id, invalid_instrument_id, invalid_credential_id,
invalid_resolution, and operation-specific codes documented per endpoint.
Missing or invalid Authorization header.
Account is not in a withdraw-capable state.
A required downstream (matching engine, ClickHouse, custody, instrument service) is unreachable. The request was not processed; retry with backoff.