2xx status code, Kyren Pay will automatically retry the delivery.
Retry Schedule
For order and dispute events described in this guide, Kyren Pay makes up to 7 delivery attempts in total: the initial attempt plus 6 retries.
Each delay is measured from the preceding failed attempt; actual dispatch may occur later. After 7 failed delivery attempts, the webhook is marked as failed and automatic retries stop.
What Counts as a Failure
A webhook delivery is considered failed if:- Your endpoint returns a non-
2xxHTTP status code (e.g.,400,500) - Your endpoint doesn’t complete its response within 10 seconds
- The connection to your server fails (DNS error, connection refused, timeout)
A
2xx response (e.g., 200, 201, 204) is considered a successful delivery regardless of the response body.Handling Retries
Since webhooks may be retried, your endpoint should be idempotent — processing the same event multiple times should produce the same result.Use Event IDs for Deduplication
Every webhook event has a uniqueid field. Store processed event IDs durably, with a unique constraint, and commit the business change and processed marker in the same transaction:
Return 200 Quickly
For long processing, validate the signature and durably persist the event in an inbox or queue before returning200. A worker can then process it with its own retries. If persistence fails, return a non-2xx response so Kyren can retry:
Monitoring Webhook Deliveries
When troubleshooting delivery, compare Kyren Webhook events with your own server logs. Record:- Your configured Webhook URL
- The event type and order number
- The timestamp when your server received the request
- The response code or error your server returned