Skip to content

Cancel a Crypto Withdrawal Request

POST /api/3/withdrawal/crypto/{uuid}/cancel

Withdraw a crypto request from the approval queue while it is still awaiting acceptance. Full URL on the UK sandbox: https://trade-uk.sandbox.zodiamarkets.com/api/3/withdrawal/crypto/{uuid}/cancel.


A crypto request goes through two operator steps: Operations first accepts it into the approval queue, and then approves it. Cancellation stops working at the first of those, so the window closes as soon as the request is accepted, earlier than the equivalent fiat window.

While the request is still awaiting acceptance it reports PENDING_APPROVAL and can be cancelled. Afterwards the call returns 409 with the state unchanged. After a successful cancel the request reports CANCELLED, which does not distinguish your cancellation from a decision by Operations.


{uuid} is the request identifier returned by Submit a Crypto Withdrawal Request, and echoed as uuid by List Crypto Withdrawal Requests.

A uuid that exists but belongs to a different account group returns 404 Request not found, not 403.

Domain: Withdrawals

POST https://trade-uk.sandbox.zodiamarkets.com/api/3/withdrawal/crypto/{uuid}/cancel
Header Required Description
Rest-Key yes API key for authentication
Rest-Sign yes Calculated API Signature
Parameter In Type Required Description
uuid path string yes The withdrawal request’s uuid, as returned by the submit call or the matching list endpoint.
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 the request belongs to. Goes in the body, not the query string - the signature covers the path and the body only, so a value on the URL would be unsigned and is not read. Sending ?accountGroupUuid=... and omitting it from the body returns 403 Invalid signed params.

Cancelled. The request now reports CANCELLED.

Field Type Required Description
success boolean
uuid string The cancelled request’s identifier.

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

accountGroupUuid missing or blank in the body (Invalid signed params), the API key lacks the Move Funds permission (MOVE FUNDS permission required), or you do not hold ROLE_OPERATIONS on that account group (You do not have permission to perform this action).

Field Type Required Description
success boolean
message string

No withdrawal request with that uuid exists in that account group.

Field Type Required Description
success boolean
message string

The request is no longer in PENDING_APPROVAL. Its state is unchanged.

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