Skip to content

Submit a Crypto Withdrawal Request

POST https://trade-uk.sandbox.zodiamarkets.com/api/3/withdrawal/crypto

Raise a request to withdraw a digital asset to a wallet already whitelisted against your onboarded entity. The request enters an approval queue and moves no funds.


The walletParticipantUuid must already exist on your onboarded entity for this account group, and be enabled and whitelisted, with an asset equal to ccy. It cannot be created as part of this call. Read the registered wallets from Get Account Details List.

You do not send a destination address. The address is copied from the whitelisted wallet at submit time and returned as coinAddress on the list endpoint. There is no address, network or memo field.

Unlike fiat, amount has no two-decimal cap. The platform stores it to 8 decimal places, so do not send more. A field-level failure returns 403 Invalid signed params without naming the field.


The request starts in PENDING_APPROVAL and appears on List Crypto Withdrawal Requests. The cancel window is shorter than fiat’s: a crypto request is first accepted into the approval queue and then approved, and Cancel a Crypto Withdrawal Request stops working at the first of those two steps.

Domain: Withdrawals

POST https://trade-uk.sandbox.zodiamarkets.com/api/3/withdrawal/crypto
Header Required Description
Rest-Key yes API key for authentication
Rest-Sign yes Calculated API Signature
Field Type Required Description
tonce integer (int64) yes The current Unix time in microseconds. Accepted only within two minutes of server time. Send either tonce or nonce.
nonce integer (int64) Alternative to tonce, and takes precedence when both are sent. Must be a whole number and strictly increasing for a given API key: a reused or lower value is rejected. A request carrying neither nonce nor tonce is rejected with 401.
accountGroupUuid string yes The account group to withdraw from. You must hold ROLE_OPERATIONS on it.
ccy string yes Asset code, e.g. BTC. Must be an asset the platform supports.
amount number (double) yes Amount to withdraw. Must be positive. There is no two-decimal-place cap as there is on fiat, but the platform stores the amount to 8 decimal places, so do not send more.
walletParticipantUuid string yes A wallet registered against your onboarded entity for this account group. It must be enabled and whitelisted, and its asset must equal ccy. Register it before withdrawing; it cannot be created as part of this call. See Get Account Details List.
clientComment string Free text, up to 1024 characters. Echoed back on the list endpoints.

Request accepted into the approval queue. No funds have moved.

Field Type Required Description
success boolean
uuid string Identifier of the new crypto withdrawal request. Pass it to the cancel endpoint, and match it against the list endpoint. The request starts in PENDING_APPROVAL.

Authentication failed: unknown key, bad signature, a missing, malformed, reused or decreasing nonce or out-of-window tonce, a body that is not parseable JSON, or a throttled caller. Rate limiting surfaces here as 401, not 429.

Field Type Required Description
success boolean
message string

Body missing or failed field validation (Invalid signed params), the API key lacks the Move Funds permission (MOVE FUNDS permission required), or you do not hold ROLE_OPERATIONS on accountGroupUuid (You do not have permission to perform this action). The message does not name the field or the permission at fault.

Field Type Required Description
success boolean
message string

Business validation failed. The request was not created.

message Cause
Wallet not found for the caller's accountGroup walletParticipantUuid is not a wallet on your onboarded entity for this account group
Wallet is disabled or is not whitelisted The wallet exists but is not usable
Wallet does not support the requested currency The wallet’s asset is not ccy
Insufficient funds amount exceeds your total balance on that asset less the requests already in flight
Field Type Required Description
success boolean
message string

Unexpected error. The outcome is undefined - for a submit, use the list endpoint to establish whether the request was created before resending.

Field Type Required Description
success boolean
message string