1. Webhooks
Partner API
  • Getting Started
    • Introduction
    • Authentication
    • Business Use Cases
  • API References
    • Balances & History
      • Get Balances
      • Get Balance History
    • Crypto Deposits
      • Get Crypto Deposit Details
      • Update Travel Rule
    • Crypto Withdrawals
      • Add Whitelisted Wallet
      • Get Whitelisted Wallets
      • Delete Whitelisted Wallet
      • Create Crypto Withdrawal
      • Get Crypto Withdrawal Details
    • SEPA Deposits
      • Get SEPA Payment Details
      • Get SEPA Deposit Details
    • SEPA Withdrawals
      • Create SEPA Withdrawal
      • Get SEPA Withdrawal Details
    • Currency Exchange
      • Get Rates
      • Create Lock
      • Create Exchange
      • Get Exchange Details
  • Integration
    • Integration Guides
    • Transaction Processing
    • Error Handling
    • Rate Limiting
    • Webhooks
      • Crypto Deposit Webhook
      • Crypto Withdrawal Webhook
      • SEPA Deposit Webhook
      • SEPA Withdrawal Webhook
      • Exchange Webhook
  • Reference
    • Supported Currencies
    • Fees
    • FAQ
    • Changelog
    • Support
  1. Webhooks

Crypto Withdrawal Webhook

Webhook
POST
CRYPTO_WITHDRAWAL_UPDATE
This event is emitted on each meaningful crypto-withdrawal lifecycle update or failure event. A single withdrawal can produce multiple webhook notifications over time, from initial queuing to final blockchain settlement or rejection.
Use this webhook as the primary real-time source for tracking withdrawal progress. The initial API response only confirms that the request was queued for asynchronous processing. Final execution, compliance checks, blockchain submission, and failure details are reported asynchronously via this webhook.

Payload Variants#

The webhook payload is wrapped inside a data object and follows one of two distinct structures based on whether the event represents a lifecycle state update or an execution failure:
1.
State Progress Payload: Emitted during normal lifecycle transitions. Contains full transaction context (transactionId, externalId, status, amount, currency, destination, network, fee, transactionHash, createdAt).
2.
Failure Payload: Emitted when processing fails (e.g., due to insufficient funds). Contains transactionId and the specific error code in the error string field.

Status Lifecycle#

Crypto withdrawals transition through the following states:
started: Withdrawal request initiated and entered the processing pipeline.
pending: Internal checks complete; queued for execution.
locked-to-processing: Transaction locked during final internal processing.
waiting-for-verification: Escalated for additional risk or compliance review.
successful: Transaction broadcast completed and confirmed on the blockchain.
unsuccessful / rejected-by-reviewer / banned: Execution failed or was declined.

Payload Notes#

Event Identifier (type): Always set to "CRYPTO_WITHDRAWAL_UPDATE".
Multiple Events per Withdrawal: A single transaction emits multiple events as it progresses. Update records using transactionId or externalId.
transactionHash Availability: transactionHash is null during early stages and is populated once the transaction is broadcast to the network.
Error Handling: When error is present, standard fields such as amount, destination, or status are omitted from the payload.

Recommended Integration Behavior#

Use this webhook to:
update withdrawal statuses in your database in real time,
capture the transactionHash as soon as funds are broadcast,
handle execution failures immediately via the error field without polling.
Do Not Treat API Acceptance As Final Success
A 200 OK response from the withdrawal endpoint only means the request was accepted into the processing queue. Always wait for terminal webhook events (successful or error) or verify status via Get Crypto Withdrawal Details.

Request

Body Params application/json

Examples

Responses

🟢200Success
application/json
Bodyapplication/json

Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location 'https://your-api-server.com' \
--header 'Content-Type: application/json' \
--data '{
  "type": "CRYPTO_WITHDRAWAL_UPDATE",
  "data": {
    "transactionId": "40f29400-2184-4516-bc6c-c4a28636274b",
    "externalId": "52c83925-640f-4028-94df-0283fd86c60a",
    "status": "started",
    "amount": "10",
    "currency": "DOGE",
    "destination": "DTBQsWUxFKyHsRQFmSsLxk5RcGLnRyzD9U",
    "network": "DOGE",
    "fee": "10",
    "transactionHash": "af81ecea818deb71f42ed43f58904b56aebd108202aecaef45532f9e7533f1f4",
    "createdAt": "2026-09-14T07:37:26.096Z"
  }
}'
Response Response Example
{}
Previous
Crypto Deposit Webhook
Next
SEPA Deposit Webhook
Built with