1. Transfers & Payments Webhooks
Partner API
  • Getting Started
    • Introduction
    • Authentication
    • Business Use Cases
  • API References
    • Partner Operations
      • Balances & Transaction History
        • Get Balances
        • Get Transaction History
        • Create Wallet
      • Currency Exchange
        • Retrieve Exchange Rate
        • Retrieve Exchange Rate and Create a Lock
        • Create and Finalize an Exchange
        • Retrieve Detailed Exchange Information
      • SEPA Transfers
        • Get SEPA Deposit Info
        • Get SEPA Deposit Contact List
        • Create a SEPA Transfer
        • Get SEPA Transfer Details
      • Crypto Withdrawal
        • Get Network Fee
        • Create Crypto Withdrawal
        • Get Crypto Withdrawal Details
      • Crypto Deposits
        • Update Travel Rule
      • Orders
        • Get Rates
        • Retrieve Order Rate and Create a Lock
        • Create and Finalize an Order
        • Get Order Details
      • Payment link & Checkout Link
        • Generate Payment Link
        • Generate Hosted Checkout
        • Get Payment Link Details
    • User Operations
      • Onboarding & KYC Flow
        • Create User Account
        • Method A: Add KYC File
        • Method B: Creating KYC Verification
        • Method B: Redirect to Verification
        • Method B: Get KYC Status
        • Add User Verification
        • Add POA File
      • Account Management
        • Update Existing User
        • Delete User
        • Suspend User
        • Unsuspend User
      • Balances & Transaction History
        • Get User Balances
        • Get User Transaction History
      • Currency Exchange
        • Retrieve Exchange Rate
        • Retrieve Exchange Rate and Create a Lock
        • Create and Finalize an Exchange
        • Retrieve Detailed Exchange Information
      • SEPA Transfers
        • Get SEPA Deposit Info
        • GET SEPA Deposit Contact List
        • Create a SEPA Transfer
        • Get SEPA Transfer Details
      • Crypto Withdrawal
        • Get Network Fee
        • Create Crypto Withdrawal
        • Get Crypto Withdrawal Details
      • Crypto Deposits
        • Update Travel Rule
      • Internal Transfers
        • Create a Transfer
        • Get Transfer Details
      • Virtual Cards
        • Create Virtual Card
        • Get All User Cards
        • Get Card Details
        • Update Card PIN
        • Block Card
        • Unblock Card
        • Get Card Limits
        • Update Card Limits
        • Delete Card
  • Integration
    • SDKs & Integration Guides
    • Transaction Processing
    • Error Handling
    • Rate Limiting
    • Webhooks
      • User & KYC Webhooks
        • User Balance Generation Webhook
        • KYC File Added Webhook
        • POA Verification Status Webhook
        • KYC Verification Status Webhook
        • Create Wallet Webhook
        • High Risk KYC Verification Webhook
      • Transfers & Payments Webhooks
        • Internal Transfer Webhook
        • IBAN Status Webhook
        • Partner SEPA Transfer Webhook
        • User SEPA Transfer Webhook
        • SEPA Deposit Webhook
        • Crypto Withdrawal Webhook
        • Crypto Deposit Webhook
        • Exchange Webhook
        • Card Transaction Webhook
        • Order Status Webhook
        • Payment Link Webhook
      • Card Webhooks
        • Card 3DS Code Webhook
        • Card Activation Code Webhook
  • Reference
    • Supported Countries
    • Supported Currencies
    • Fees
    • FAQ
    • Changelog
    • Support
  1. Transfers & Payments Webhooks

Crypto Withdrawal Webhook

Webhook
POST
/crypto-withdrawal-webhook
This event is emitted on each meaningful crypto-withdrawal lifecycle update. A single withdrawal can produce multiple webhook events over time, from initial risk checks to final blockchain settlement.
Use this webhook as the primary real-time source for tracking withdrawal progress. A successful API response from the withdrawal endpoint only confirms that the request was accepted for asynchronous processing. Final execution, compliance review, blockchain submission, and any failure outcome are reported later through webhook events and the withdrawal details endpoint.

Typical Status Flows#

Standard Flow#

WAITING_FOR_RISK -> WAITING_TO_BE_SENT -> LOCKED_TO_PROCESSING -> SENT -> SUCCESSFUL

Optional Risk-Review Flow#

Rejected path:
WAITING_FOR_RISK -> WAITING_FOR_VERIFICATION -> REJECTED
Approved path after manual review:
WAITING_FOR_RISK -> WAITING_FOR_VERIFICATION -> WAITING_TO_BE_SENT -> LOCKED_TO_PROCESSING -> SENT -> SUCCESSFUL

What The Statuses Mean#

WAITING_FOR_RISK: The withdrawal has been accepted and is waiting for automated risk checks.
WAITING_FOR_VERIFICATION: The withdrawal was escalated for additional review, for example compliance or manual verification.
WAITING_TO_BE_SENT: Internal checks are complete and the withdrawal is queued for blockchain submission.
LOCKED_TO_PROCESSING: The transaction is temporarily locked while the system performs the final internal processing step before sending.
SENT: The transaction has been submitted to the blockchain network. At this point the transaction hash is expected to be available.
SUCCESSFUL: The withdrawal completed successfully and reached its final successful state.
REJECTED: The withdrawal was declined during review and will not continue to the blockchain submission stage.

Payload Notes#

Multiple events per withdrawal: Do not assume one webhook equals one withdrawal. Store updates by withdrawal ID and treat each event as a lifecycle change for the same transaction.
transactionHash availability: transactionHash is null until the withdrawal reaches SENT. It is expected for SENT and SUCCESSFUL.
user field behavior: The user object is present for user withdrawals and null for partner withdrawals.
Failure payloads may be partial: In failure scenarios, the payload may include error and only a partial transaction snapshot. Do not assume all standard fields are always present. In some error cases, even status may be absent.
User And Partner Consumption
The same lifecycle model is useful in both integration modes, but the payload context differs. User withdrawals include the related user context, while partner withdrawals do not.

Recommended Integration Behavior#

Use this webhook to:
update the withdrawal status in your own system in real time,
expose transaction progress to operations teams or end users,
capture the blockchain transaction hash once the withdrawal reaches SENT,
detect rejected or failed withdrawals without aggressive polling,
trigger fallback handling when the payload arrives with error or incomplete status data.
Do Not Treat API Acceptance As Final Success
The initial withdrawal API response only means the request entered the asynchronous processing flow. Always wait for webhook updates or confirm the final result through the withdrawal details endpoint before treating the withdrawal as completed.

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-raw '{
  "id": "8c394557-ba48-4ab4-9349-84d396b4a7f7",
  "amount": 0.1,
  "fee": 0.002,
  "destination": "34BswSPLbveHiULzdAahf6qr8V1VdkdHFa",
  "status": "SUCCESSFUL",
  "transactionHash": "b768f1fb7d9e69c9e6c3f1ccb8481ff4b0f1940a1c9e7c87d374d1814fd6383b",
  "currency": {
    "network": "",
    "name": "LTC"
  },
  "createdAt": "2024-11-05T10:54:02.982Z",
  "user": {
    "externalUserId": "8bdd8c8a-e9b7-475e-9690-8a34e8b78dab",
    "email": "Giovani34@yahoo.com",
    "firstName": "Will",
    "lastName": "Hahn",
    "address": "0294 Greenholt Burgs",
    "city": "Wilfredchester",
    "country": "BM",
    "documentType": "id",
    "documentNumber": "109314",
    "pesel": null,
    "birthCountry": null,
    "birthDate": null
  }
}'
Response Response Example
{}
Previous
SEPA Deposit Webhook
Next
Crypto Deposit Webhook
Built with