Retries & replays
A delivery counts as successful only on a 2xx response. Anything else (a non-2xx status, a connection error, or a timeout) is retried on a backoff schedule:
1 min → 5 min → 30 min → 2 h → 5 h → 10 h → 24 h → 24 h → 24 h → 24 hEach delay carries jitter, and the schedule spreads retries over roughly four days, so an
endpoint that’s down through even a long deploy catches up on its own. Events are delivered
at least once: design your handler to be idempotent (deduplicate on the event’s content,
e.g. email_id + type).
Inspecting deliveries
Section titled “Inspecting deliveries”GET /webhooks/{id}/events: recent events for an endpoint (type, payload, timestamp).GET /webhooks/{id}/events/{eventId}/attempts: every delivery attempt for one event, with status code, success flag, and error detail.
Manual replay
Section titled “Manual replay”POST /webhooks/{id}/events/{eventId}/replay re-delivers any event on demand, useful after
fixing a handler bug, without waiting for the next scheduled retry.