Retry logic
How your endpoint should respond
Your endpoint must respond within 15 seconds to indicate whether a webhook event was successfully received and processed:
2XXresponse: The event is accepted.- Non-
2XXresponse (including3XXredirects): The event is treated as a delivery failure. Upon failure, the delivery is automatically retried according to the retry schedule below.
Retry schedule
A delivery is attempted up to 8 times per event: the first attempt happens immediately, and if it fails, up to 7 retries are performed using exponential backoff.
| Attempt | Delay after previous failure | Total time elapsed |
|---|---|---|
| 1 | 0 | 0 |
| 2 | 5 seconds | 5 seconds |
| 3 | 5 minutes | 5 minutes, 5 seconds |
| 4 | 30 minutes | 35 minutes, 5 seconds |
| 5 | 2 hours | 2 hours, 35 minutes, 5 seconds |
| 6 | 5 hours | 7 hours, 35 minutes, 5 seconds |
| 7 | 10 hours | 17 hours, 35 minutes, 5 seconds |
| 8 | 10 hours | 27 hours, 35 minutes, 5 seconds |
The delay between retries increases with each subsequent attempt to avoid overwhelming your system during temporary outages.
Example: If the first three attempts fail and the 4th succeeds, the delivery finishes about 35 min 5 sec after the initial attempt.
What happens after all retries fail
If an event is not successfully delivered after 8 attempts, it is marked as failed. All webhook events are retained for 90 days after emission.
Failed events can be retried using the Retry the failed webhook events of a webhook subscription endpoint. You can retry any events still within the 90-day payload retention. When retrying, you can specify a maximum time range of 3 days of failures per request.
Updated 7 days ago
