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:

  • 2XX response: The event is accepted.
  • Non-2XX response (including 3XX redirects): 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.

AttemptDelay after previous failureTotal time elapsed
100
25 seconds5 seconds
35 minutes5 minutes, 5 seconds
430 minutes35 minutes, 5 seconds
52 hours2 hours, 35 minutes, 5 seconds
65 hours7 hours, 35 minutes, 5 seconds
710 hours17 hours, 35 minutes, 5 seconds
810 hours27 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.



What’s Next