Delivery

Delivery Behavior

  • Requests are sent as HTTP POST with Content-Type: application/json

  • Your endpoint must respond with 2xx within 30 seconds

  • Non-2xx responses or timeouts trigger retries

Retry Policy

Failed deliveries are retried with exponential backoff:

Attempt
Delay

1

Immediate

2

1 minute

3

5 minutes

4

30 minutes

5

2 hours

6

12 hours

After 6 failed attempts, the delivery is moved to the dead letter queue (DLQ).

Dead Letter Queue

Failed deliveries are stored in the DLQ for manual inspection and replay.

DLQ Endpoints

Method
Path
Description

GET

/webhooks/:id/dead-letters

List dead letters

GET

/webhooks/:id/dead-letters/:dlqId

Get dead letter

POST

/webhooks/:id/dead-letters/:dlqId/replay

Replay delivery

DELETE

/webhooks/:id/dead-letters/:dlqId

Delete dead letter

GET

/webhooks/:id/dead-letters/stats

DLQ stats

Replay a Failed Delivery

Idempotency

Each event includes a unique event_id. Use this to deduplicate events in case of retries or replays.

Disabling Webhooks

If your endpoint fails consistently (10+ consecutive failures), the webhook may be automatically deactivated. You'll receive an email notification.

Last updated

Was this helpful?