Skip to main content

Add an endpoint

Dashboard → Webhooks → add your HTTPS URL and choose events (start with payment.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 instant matchedWallet / 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 2xx within 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.