Withdraw verify — second layer for withdrawals
Two-layer (second) verification for withdrawals — before a withdrawal is created, your backend must confirm it via webhook and return 200.
Workflow
Caller
Caller requests a withdrawal
Platform
Platform sends a verify webhook to your backend
Merchant
Merchant verifies the signature and replies 200 / non-2xx
Platform
Reserve balance & create the withdrawal (PENDING)
Result
Final result webhook — WITHDRAWAL_COMPLETED / REJECTED
Examples
Overview
Working flow:
1. A caller creates a withdrawal — POST /v1/withdrawal/createRequest. Nothing is reserved yet.
2. The platform sends a WITHDRAWAL_VERIFY webhook (event) to your backend with the order details.
3. Your backend verifies the x-signature (HMAC-SHA256 over the data object) and checks the order/amount.
4. Only when you return HTTP 200 does the platform reserve balance and create the withdrawal (PENDING). Any other status — or a timeout — rejects it (fail-closed).
5. After the transfer settles, a WITHDRAWAL_COMPLETED / WITHDRAWAL_REJECTED webhook reports the final result.
What changed
- AddedNew App Secret Verify (HMAC) and Automatic Approve Withdrawal controls on the API Key & Webhook page.
- AddedWITHDRAWAL_VERIFY webhook sent before a withdrawal is created; reply 200 to approve, non-2xx to reject (10s timeout, fail-closed).
- AddedSignature is HMAC-SHA256 over "{x-timestamp}.{JSON of data}" using the generated secret — verify against the x-signature header.
