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.
The window is shorter than fiat’s
Section titled “The window is shorter than fiat’s”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.
Identifying the request
Section titled “Identifying the request”{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
Request
Section titled “Request”POST https://trade-uk.sandbox.zodiamarkets.com/api/3/withdrawal/crypto/{uuid}/cancelHeaders
Section titled “Headers”| Header | Required | Description |
|---|---|---|
Rest-Key |
yes | API key for authentication |
Rest-Sign |
yes | Calculated API Signature |
Parameters
Section titled “Parameters”| 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. |
Responses
Section titled “Responses”200 OK
Section titled “200 OK”Cancelled. The request now reports CANCELLED.
| Field | Type | Required | Description |
|---|---|---|---|
success |
boolean | ||
uuid |
string | The cancelled request’s identifier. |
401 Unauthorized
Section titled “401 Unauthorized”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 |
403 Forbidden
Section titled “403 Forbidden”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 |
404 Not Found
Section titled “404 Not Found”No withdrawal request with that uuid exists in that account group.
| Field | Type | Required | Description |
|---|---|---|---|
success |
boolean | ||
message |
string |
409 Conflict
Section titled “409 Conflict”The request is no longer in PENDING_APPROVAL. Its state is unchanged.
| Field | Type | Required | Description |
|---|---|---|---|
success |
boolean | ||
message |
string |
500 Internal Server Error
Section titled “500 Internal Server Error”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 |
