Events
Payload
Every event uses the same envelope.data is the full transaction object, identical in shape to the REST API.
Headers
Verify the signature
The signature isHMAC-SHA256 of <timestamp>.<raw request body> using your endpoint’s signing secret (shown on the Developers page). Compute it over the raw body, before any JSON parsing.
Node.js (Express)
Retries and auto-disable
- Failed deliveries are retried with backoff (roughly 1m, 5m, 15m, 1h, 3h, 6h, 12h).
- After several days of continuous failure, the endpoint is auto-disabled and your PSP admins are emailed. Re-enable it from the Developers page once the receiver is fixed.
- You can resend any delivery from the deliveries log in the portal.
Best practices
- Dedupe on
SaturnShift-Event-Id. Deliveries can repeat. - Return fast. Send a 2xx immediately, then process asynchronously.
- Reconcile with
GET /v1/transactionsrather than trusting webhooks alone. - Match your orders using
external_reference(the value you set at checkout) or by storing the SaturnShiftidfrom the event.