Why webhooks
Many flows are asynchronous. When you submit a payment (P2P, swap, or off-ramp), the gateway responds202 Accepted to confirm the request was queued, not that it settled. The
outcome is decided later. You can find out in two ways:
- Webhooks: Zeam calls your endpoint when the payment changes state.
- Polling: you read the record yourself with
GET /v1/transactions/{transactionId}.
Events tell you when to act; the Transactions
API is the source of truth for the current state. Reconcile against it before
releasing goods or funds.
What Zeam notifies you about
Zeam sends an event when a payment is initiated, starts processing, completes successfully, fails, or moves through a refund. See Events for the full list and payload.In this section
Create a webhook
Register an endpoint in the portal or through the API.
Events
Event types, delivery headers, and the payload.
Security
Verify signatures and build idempotent consumers.
Troubleshooting
Diagnose delivery problems.
Endpoint requirements
- Use HTTPS and be publicly reachable by Zeam. Plain http is tolerated in the sandbox only.
- Respond quickly with a
2xxstatus, then process on a background queue. - Handle retries safely: an event may be delivered more than once, and events may not arrive in business-process order.
- Reconcile using the event and transaction identifiers rather than assuming order. See Security for idempotent consumer guidance.