Skip to main content

Cancel a Crypto Withdrawal

Cancels a withdrawal that is still pending, waiting out its grace period (grace_ends_at). The reserved amount returns to the account's available balance. Once the withdrawal is submitted to the custodian it is processing, and it can no longer be cancelled.

A frozen account can still cancel.

This endpoint takes no Idempotency-Key. Cancelling the same withdrawal twice answers 409 withdrawal_not_cancellable the second time and changes nothing; Get a Crypto Withdrawal shows it cancelled.

Beta

Part of crypto v3, in beta. This endpoint stays open after crypto v3 withdrawals are turned off, so a withdrawal already made can still be cancelled.

A workspace-scoped key cancels any withdrawal of the workspace, or narrows to one account with account_id; an account-scoped key cancels only its own account's, and another account's reads as 404.

Replaces DELETE /api/v2/crypto/withdraw/{withdrawalId}/cancel for withdrawals created through v3. A withdrawal created through v2 is not found here: cancel it through v2.

Authorization:

Every request is signed with your API key: a short-lived JWT, signed with your private key, sent in one header on /v3/* and /api/v2/* alike.

Headers:
Authorization: APIKey {SIGNED_JWT}

How to build and sign the JWT: Authentication.

Endpoint

POST

/v3/crypto/withdrawals/{withdrawal_id}/cancel

Path parameters​

ParameterTypeDescription
withdrawal_idstring (wtx_…)Required. The withdrawal.

Query parameters​

ParameterTypeDescription
account_idstring (cst_…)Optional. Only cancel the withdrawal if it is this account's.

It takes no body.

Response Sample​

200 OK

{
"id": "wtx_01k9a1b3c5d7e9f1g3h5j7k9m1",
"account_id": "cst_01h455vb4pex5vsknk084sn02q",
"status": "cancelled",
"coin": "USDC",
"amount": "250",
"fee": "10",
"total": "240",
"counterparty_id": "wlt_01k8z5q7r9s1t3v5w7x9y1z3a5",
"counterparty_address": "0x8f3b2c1d0e9a7b6c5d4e3f2a1b0c9d8e7f6a5b4c",
"reference": "inv-2026-10-0042",
"description": "Supplier payment",
"status_reason": "Cancelled by user",
"grace_ends_at": "2026-10-20T18:05:00Z",
"created_at": "2026-10-20T18:00:00Z",
"updated_at": "2026-10-20T18:02:14Z"
}

Response Schema​

The cancelled withdrawal, with the fields described in Create a Crypto Withdrawal. A cancellation sends crypto_transaction_status_updated with status cancelled and previousStatus pending.

Errors​

StatusmessageWhen
400failed to parse requestwithdrawal_id is not a wtx_… id, or account_id is not a cst_… id.
401unauthorizedMissing or invalid signature.
403forbiddenAn account-scoped key named another account.
404withdrawal_not_foundNo such withdrawal, it belongs to another account, or it was created through v2.
409withdrawal_not_cancellableThe withdrawal is no longer pending: it was submitted, or already completed, failed or cancelled.

Coming from v2​

v2 (DELETE /api/v2/crypto/withdraw/{withdrawalId}/cancel)v3
DELETE, answers 204POST, answers the cancelled withdrawal
withdrawalId (uuid)withdrawal_id (wtx_…)

Support and Resources​

If you need assistance or have any questions, our support team is here to help. You can contact our support team at support@blockwyre.com.

Stay Updated​

Stay up-to-date with the latest news, updates, and features from BlockWyre by following us on social media:

We are excited to have you on board and look forward to seeing how you leverage BlockWyre's powerful tools to enhance your financial operations. Happy integrating!