Add an endpoint
Dashboard → Webhooks → add your HTTPS URL and choose events (start withpayment.confirmed). You’ll get a signing secret (whsec_…).
Payload
Verify the signature
Always verify before trusting anything:Events
wallet.* and bridge.* payloads include walletId/bridgeTransferId,
chain/route, amount, and the relevant transaction hash(es) — shaped
the same way as their API responses in Wallets and
Bridge.
Disputes
A dispute is opened when a customer, from your checkout page, reports sending funds that didn’t automatically confirm — wrong amount, wrong address, or a late send. It’s self-service on the customer’s side (they get an instantmatchedWallet / amountCovered / lateByMinutes result),
and payment.dispute_opened gives you the same detail so you can follow up
manually if the automated check doesn’t resolve it — for example, crediting
an order despite a slightly-underpaid amount, at your discretion.
Delivery & retries
- Respond
2xxwithin 10 seconds; anything else counts as a failure. - We retry up to 3 times with backoff; deliveries and status codes are visible in the dashboard.
- Handlers must be idempotent — key on
paymentIntentId.