POSTing to webhook consumer URLs
registered for your program (contact the team to
register endpoints and receive your signing secret).
Each program can register one or more consumer URLs. A given event is delivered to
every consumer registered for that program whose sandbox flag matches the event’s
environment (a sandbox event is only sent to sandbox consumers, and vice versa).
Common envelope
Every webhook body shares the same envelope. Event-specific data hangs off a single nested object (account, card, cardAuthentication, transaction, paymentRequest,
or the customer status fields).
Events
Each event has its own reference page with the exact payload it carries.Payloads are thin by design. Transaction events carry only an identifier (e.g.
transactionId), not the full record — fetch the details through the API with your
operator credentials. Don’t expect the full objects older docs may have shown.One webhook is not a notification.
Authorisation decisions asks you whether to approve
a card authorisation and waits for your answer, on the card network’s clock. It has a
different response contract and a different signing base from everything on this page.
Verifying the signature
This section covers the notification webhooks listed above.
Authorisation decisions signs
<timestamp>.<body> rather than the body alone — a verifier written for this section will
reject every one of those deliveries.Orenda-Payload-Signature header as a plain hex digest:
Delivery behaviour
Respond with any2xx to acknowledge. There is no automatic retry on failure — a
delivery that fails (non-2xx, timeout, or connection error) is logged and dropped, not
re-queued. Design your handler to be reliable and idempotent (de-duplicate on eventId),
and reconcile via the API (e.g. search) if you suspect missed events. For
delivery investigations, contact the team.