Kaiten
Webhooks

Delivery & Retries

How Svix delivers webhook events and handles retries.

Delivery & Retries

Webhook delivery is powered by Svix, which provides reliable delivery with automatic retries.

Delivery Lifecycle

  1. Sending — Event is dispatched to your endpoint
  2. Success (2xx response) — Delivery is marked as successful
  3. Failure (non-2xx or timeout) — Retry is scheduled
  4. Failed — After all retry attempts are exhausted

Retry Policy

Svix uses exponential backoff with the following schedule:

AttemptDelay
1Immediate
25 seconds
35 minutes
430 minutes
52 hours
68 hours

Total: 6 attempts over approximately 10 hours.

Delivery History

View delivery history via the dashboard (Integrations → Webhooks → History) or the API:

curl http://localhost:6000/api/webhooks/history \
  -H "Authorization: Bearer ksh_xxx"

Each entry shows: event type, endpoint URL, HTTP status, response body, and timestamp.

Timeout

Endpoints must respond within 30 seconds. After that, the delivery is marked as failed and a retry is scheduled.

Best Practices

  • Return 200 quickly — acknowledge receipt, process asynchronously
  • Implement idempotency — events may be delivered more than once
  • Verify signatures — see Verifying Signatures
  • Monitor delivery history — catch failures early

On this page