WebhookSafeDocs
Documentation / Delivery & Retries
CORE CONCEPTS

Reliable delivery, automatically.

Webhook Safe Cloud forwards received events to your destination, records each delivery attempt, and automatically retries failures with exponential backoff.

How delivery works

Webhook Safe sends an HTTP POST request to the destination URL configured for your endpoint. The request body contains the original webhook payload bytes.

Incoming event
→
Delivery worker
→
Your endpoint
PropertyBehavior
HTTP methodPOST
Successful responseHTTP 200–299
Failed responseNon-2xx status or request error
Request timeout30 seconds
RedirectsNot followed
Content-TypePreserved when provided
Request bodyOriginal payload bytes

Automatic retry policy

Failed deliveries are retried automatically, up to a maximum of ten total attempts, including the initial delivery.

Retry delays increase exponentially, starting at 30 seconds and capped at 60 minutes.

↻

Exponential backoff

Each failure schedules the next attempt after a longer delay, reducing repeated pressure on unavailable destinations.

Delay in seconds = min(30 × 2^(attempt − 1), 3600).

Failed attemptDelay before next attempt
130 seconds
21 minute
32 minutes
44 minutes
58 minutes
616 minutes
732 minutes
860 minutes
960 minutes
10No retry — exhausted

Delivery outcomes

Webhook Safe records each attempt and updates the event according to the delivery result.

✓

Delivered

A successful HTTP 2xx response marks the attempt as succeeded and the event as delivered.

↻

Retry scheduled

A failed attempt with retries remaining schedules another delivery after the calculated delay.

!

Exhausted

When the tenth attempt fails, the event becomes exhausted and automatic retries stop.

▤

Attempt history

Each attempt records its number, timestamps, status, response status when available, and error information.

Inspect delivery attempts

Retrieve an event through the management API to inspect its current status and delivery history.

curl "$BASE_URL/v1/events/EVENT_ID" \
  -H "Authorization: Bearer $API_TOKEN"

The response includes an attempts array with fields such as attemptNumber, startedAt, completedAt, status, responseStatus, and errorMessage.

Manual replay

Webhook Safe also exposes a management API route for replaying an event:

curl -X POST "$BASE_URL/v1/events/EVENT_ID/replay" \
  -H "Authorization: Bearer $API_TOKEN"

Manual replay is separate from the automatic retry schedule. Use it when you need to request another delivery after investigating an event.

NEXT UPAPI Reference
→