POST requests to your registered endpoint with a JSON body.
Delivery headers
Payload
Webhook payloads use
snake_case field names; API request/response bodies
use camelCase. The values are the same.Event types
type | data.status | Meaning |
|---|---|---|
payment.succeeded | SUCCEEDED | A gateway captured the payment; captured_via and failover_used say how |
payment.declined | DECLINED | Terminal decline — the trail shows every attempt and decline code |
payment.failed | FAILED / DEGRADED | No capture; reason explains (e.g. gateway_blackout when all gateways were down) |
payment.refunded | — | A refund was processed on the capturing gateway |
Handling guidance
- Fulfill on
payment.succeededonly, after verifying the signature. - Key your processing on
SwitchFlow-Event-Id(orid) so a redelivered event is a no-op. order_refis your own reference from session creation — use it to find the order in your system.- Respond
2xxfast and process asynchronously; delivery and retry semantics are described in the webhooks guide.