Retry schedule
| Attempt | Delay (from previous) | Cumulative time |
|---|---|---|
| 1 | Immediate | 0 min |
| 2 | 1 minute | 1 min |
| 3 | 5 minutes | 6 min |
| 4 | 15 minutes | 21 min |
| 5 | 30 minutes | 51 min |
| 6 | 1 hour | 1h 51min |
| 7+ | 2 hours | Continues at 2-hour intervals (capped) |
Best practices
- Implement idempotency – Retries may deliver the same event multiple times. Use the
applicationEventIdto detect and discard duplicates. TheattemptCountfield indicates whether a redelivery has occurred. - Respond quickly – Your endpoint must return a
200 OKwithin 30 seconds. For longer processing, acknowledge the webhook immediately and hand off work to an asynchronous queue. - Order events correctly – Due to network latency and retries, events may arrive out of chronological order. Use the
attributes.updatedTimestampfield to correctly sequence events. - Verify signatures – Always verify webhook signatures before processing events.