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 Deposit Webhook

Webhook
POST
CRYPTO_DEPOSIT_UPDATE
This webhook event is emitted when an incoming cryptocurrency deposit is detected, processed, or credited to the partner account balance.
Since incoming blockchain transfers are initiated externally, deposits are identified exclusively by their externalId. Use this event to automate balance updating and order fulfillment in real time.

Event Payload Structure#

The payload is delivered inside the data object and contains full metadata regarding the detected blockchain transfer:
externalId: Unique reference identifier for the deposit (UUID).
status: Current processing state of the deposit (e.g., started, pending, successful).
amount: Gross amount transferred by the sender (as a decimal string).
currency: Cryptocurrency ticker symbol (e.g., BTC, ETH, DOGE).
from: Originating sender wallet address (can be null if unavailable).
fee: Deposit provision/fee deducted during processing (as a decimal string).
transactionHash: On-chain TxID (populated once detected on the blockchain network).
createdAt: ISO 8601 UTC timestamp of when the deposit was registered.

Status Lifecycle#

started: Incoming deposit transaction has been detected on the network.
pending: Transaction is waiting for the required number of blockchain network confirmations.
waiting-for-verification: Deposit is held pending compliance or automated risk checks.
successful: Required confirmations reached; funds have been credited to the partner balance.
unsuccessful / banned / rejected-by-reviewer: Deposit failed or was rejected due to AML/compliance rules.

Recommended Integration Behavior#

Balance Crediting: Only credit funds or finalize end-user orders when the status reaches successful.
Idempotency: Always index incoming notifications by externalId to prevent duplicate processing of lifecycle status updates.
Audit & Reconciliation: Store the transactionHash and from address for compliance audit trails.
Single Identifier Model
Unlike outgoing requests (which generate an internal transactionId), incoming deposits rely solely on externalId as their primary lookup key across webhooks and details endpoints.

Request

Body Params application/json

Examples

Responses

🟢200Success
application/json
Bodyapplication/json

Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://your-api-server.com' \
--header 'Content-Type: application/json' \
--data '{
    "externalId": "30e07f7a-1c05-4149-a2e2-3717da9d9490",
    "status": "successful",
    "amount": "1",
    "currency": "DOGE",
    "from": "0x5fa1f7c5205ee01030b73601bdec63f3e7e677fe",
    "fee": "0",
    "transactionHash": "0xcedfe0a8db658a000acefbbf5be27c7b0b91edd20caaa2657fdcfcf456446b77",
    "createdAt": "2026-09-10T10:50:01.517Z"
}'
Response Response Example
{}
Previous
Webhooks
Next
Crypto Withdrawal Webhook
Built with