Skip to main content

Retries

Respond with any 2xx within 10 seconds. Anything else, a timeout or a connection error is retried with backoff: After the last attempt the delivery is marked failed. An endpoint whose every delivery fails for 3 days is disabled and the organisation owners are emailed; re-enable it from the dashboard or with PATCH /v1/webhooks/{id} once it is fixed.

Ordering and duplicates

Events can arrive out of order (a delivered can overtake a sent after a retry) and more than once. Two habits make handlers robust:
  • De-duplicate on Sendbaze-Event-Id (also id in the body). Store processed ids for a day or two.
  • Order on occurredAt, not on arrival time. A later event with an earlier occurredAt should not move a message backwards in your records.

The delivery log

Webhooks in the dashboard, and GET /v1/webhooks/{id}/deliveries, list every attempt with the event type, status, attempt count, your response status, the first 1,000 characters of the response body, the transport error if any and the duration. Filter by status=pending|succeeded|failed.

Replay

Press Replay on a delivery, or call POST /v1/webhooks/{id}/deliveries/{deliveryId}/replay, to send the same event again as a new delivery with a fresh signature and timestamp. Use it after fixing a bug in your handler; the new delivery records replayOfId.