Withdraw Webhooks
Developers can use this documentation to listen to webhooks associatied with KYC/B and Withdrawals.
This page is for advanced / cryptocurrency-native companies. If thatβs not you, head back to the Quickstart for the standard flows.
Webhooks may be sent more than onceβadd deduplication logic to prevent duplicate events.
β Event Types
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
πΈ Withdraw Events
A Withdraw Unclaimed event fires when a PayPal or Venmo payout is delivered to a recipient who has not yet accepted the funds (for example, an email or phone number with no PayPal/Venmo account behind it). Coinflow automatically cancels payouts that remain unclaimed after 24 hours, at which point a Withdraw Failure event follows.
A Withdraw On Hold event fires once when PayPal places a PayPal or Venmo payout on hold (typically because the recipientβs account is limited). PayPal will not let the payout be canceled, so the withdrawal stays pending β for up to ~30 days β until PayPal returns the funds. Use this event to let the recipient know their funds are being held.
π Payout Account Linked Event
A Payout Account Linked event fires when a withdrawer creates a new PayPal or Venmo payout destination.
The event fires only when a new payout destination token is minted. Re-linking an account that is already on file β including one the withdrawer previously removed β returns the original token and does not fire the event.
payerId is only present for PayPal accounts linked through Log in with PayPal, and only when PayPal returns one. PayPal accounts added manually and all Venmo accounts carry email or phoneNumber instead. An account is always identified by at least one of payerId, email, or phoneNumber β never assume payerId is there.
phoneNumber is masked and is only safe to display, not to match on. Two withdrawers can share the same last four digits, so correlate a payout destination by token, which is the same value the link endpoints return.
The token, userId, payerId, and contact values above are examples only and are not reflective of real production values.
π Interac PIN Event
This event fires when an Interac payout receives its Interac code (PIN), so you can display the code to the recipient without polling.
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.
Stablecoin Deposit Events
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.
The idempotencyKey field is the same value returned by the crypto-deposit-address request (searchable on GET /api/merchant/withdraws); it falls back to the deposit session id when no caller key was supplied.
Use Cases
- Confirming successful stablecoin deposits
- Updating user balances
- Triggering downstream processes like withdrawals
- Recording transaction history

