Powered by Coinflow
Payments · Documentation
Operational

Withdraw Webhooks

Webhooks may be sent more than once—add deduplication logic to prevent duplicate events.

✅ Event Types

Event Type Description
KYC Created KYC process has started
KYC Success KYC passed
KYC Failure KYC failed
Withdraw Pending Withdrawal has been initiated
Withdraw Success Withdrawal submitted to the bank
Withdraw Failure Withdrawal failed

Sample Webhook Payloads

The "blockchain": "user" field in the payloads below is the default value identifying the merchant’s own user records — it isn’t a network reference.

🧾 KYC Events

{
  "eventType": "KYC Created",
  "category": "KYC",
  "created": "2025-04-08T16:26:32.109Z",
  "data": {
    "wallet": "test-withdrawer-f",
    "blockchain": "user",
    "email": "testwithdrawer-f@gmail.com"
  }
}
{
  "eventType": "KYC Success",
  "category": "KYC",
  "created": "2025-04-08T16:26:33.520Z",
  "data": {
    "wallet": "test-withdrawer-f",
    "blockchain": "user",
    "email": "testwithdrawer-f@gmail.com"
  }
}
{
  "eventType": "KYC Failure",
  "category": "KYC",
  "created": "2025-04-09T20:45:24.515Z",
  "data": {
    "wallet": "test-f",
    "blockchain": "user",
    "email": "test-f@gmail.com "
  }
}

💸 Withdraw Events

{
  "eventType": "Withdraw Pending",
  "category": "Withdraw",
  "created": "2025-04-08T17:05:56.718Z",
  "data": {
    "wallet": "user123",
    "blockchain": "user",
    "signature": "5nQq5iVkoEc1gomDENhVNkYVXA61kzjsXKiZiAm6iq36wX3auEdrN1jZBAE5mggZWRbTvfRw5AAiVJ2ah6TaRMXS",
    "userFees": { "cents": 200, "currency": "USD" },
    "userGasFees": { "cents": 0, "currency": "USD" },
    "merchantGasFees": { "cents": 2, "currency": "USD" },
    "total": { "cents": 202, "currency": "USD" },
    "currency": "USD",
    "merchantId": "testtest",
    "idempotencyKey": "merchant-withdrawal-12345"
  }
}
{
  "eventType": "Withdraw Success",
  "category": "Withdraw",
  "created": "2025-04-08T17:06:05.177Z",
  "data": {
    "wallet": "user123",
    "blockchain": "user",
    "signature": "5nQq5iVkoEc1gomDENhVNkYVXA61kzjsXKiZiAm6iq36wX3auEdrN1jZBAE5mggZWRbTvfRw5AAiVJ2ah6TaRMXS",
    "userFees": { "cents": 200, "currency": "USD" },
    "userGasFees": { "cents": 0, "currency": "USD" },
    "merchantGasFees": { "cents": 2, "currency": "USD" },
    "total": { "cents": 202, "currency": "USD" },
    "currency": "USD",
    "merchantId": "testtest",
    "idempotencyKey": "merchant-withdrawal-12345"
  }
}
{
  "eventType": "Withdraw Failure",
  "category": "Withdraw",
  "created": "2025-04-08T17:07:05.177Z",
  "data": {
    "wallet": "user123",
    "blockchain": "user",
    "signature": "5nQq5iVkoEc1gomDENhVNkYVXA61kzjsXKiZiAm6iq36wX3auEdrN1jZBAE5mggZWRbTvfRw5AAiVJ2ah6TaRMXS",
    "userFees": { "cents": 200, "currency": "USD" },
    "userGasFees": { "cents": 0, "currency": "USD" },
    "merchantGasFees": { "cents": 2, "currency": "USD" },
    "total": { "cents": 202, "currency": "USD" },
    "currency": "USD",
    "merchantId": "testtest",
    "idempotencyKey": "merchant-withdrawal-12345"
  }
}

Advanced: Stablecoin Deposit Webhooks

The events below apply only to merchants accepting stablecoin deposits. If you’re integrating standard payouts to bank accounts, you can skip this section.

Event Type Description
CryptoDepositFundsReceived Funds received for stablecoin deposit session

Stablecoin Deposit Events

{
  "eventType": "CryptoDepositFundsReceived",
  "category": "CryptoDeposit",
  "created": "2024-01-01T00:00:00.000Z",
  "data": {
    "sessionId": "session-123",
    "depositAddress": "deposit-address-here",
    "blockchainChainId": "solana",
    "blockchainName": "Solana",
    "tokenSymbol": "USDC",
    "user": "user-456",
    "amount": {
      "cents": 10000,
      "currency": "USD"
    },
    "merchantId": "merchant-789",
    "transactionHash": "tx-hash-here",
    "receivedAt": "2024-01-01T00:00:00.000Z"
  }
}

Description

This webhook is sent when a stablecoin deposit transaction has been successfully processed and funds have been received. It includes details about the deposit address, settlement network, token details, and the amount received.

The amount field contains the received amount in cents with USD currency.

Use Cases

  • Confirming successful stablecoin deposits
  • Updating user balances
  • Triggering downstream processes like withdrawals
  • Recording transaction history