Recovery Flow
When to Run Recovery
- Missing expected event within your SLA.
- Signature verification failures due to deployment/config changes.
- Suspected delivery disruptions.
- Compact payload received with truncated payload indicator.
Recovery Steps
- Query your local event store by
merchant_referenceortransaction_id. - Fetch latest transaction state via
GET /transactions/{id}orGET /transactions/reference/{merchant_reference}. - Inspect local webhook log state with
GET /webhooks/events. - Inspect per-event delivery telemetry with
GET /webhooks/events/{event_id}. - Replay a known event with
POST /webhooks/events/{event_id}/replaywhen redelivery is required. - Reconcile final status and revenue via transaction and revenue endpoints.
Compact Payload Handling
If you receive a compact payload marker (compact_payload / payload_truncated):
- Treat event as valid envelope notification.
- Fetch canonical transaction status from read endpoints.
- Continue normal reconciliation path.
Replay Guidance
- Replay only when your consumer missed or rejected a previously emitted event.
- Replayed events preserve the original webhook
id, so your dedupe logic must still treat them as the same logical event. - After replay, confirm progress with
GET /webhooks/events/{event_id}.
Recommended Partner Runbook
- Start with
GET /transactions/{id}orGET /transactions/reference/{merchant_reference}when business state matters more than delivery state. - Use
GET /webhooks/eventsto find the relevant event if you know the transaction or reference but not the webhookid. - Use
GET /webhooks/events/{event_id}before replay so you can confirm whether the delivery issue is still active. - Replay only the specific missed event you need; do not treat replay as a substitute for periodic reconciliation.
Duplicate Handling
- Use webhook
idas your dedupe key. - Reprocessing the same event must be safe and no-op.