Delivery retries
SkyPay considers any HTTP 2xx response successful. A connection error, timeout, or non-2xx response schedules another attempt.
| Attempt | Schedule |
|---|---|
| 1 | Immediately |
| 2 | 1 minute later |
| 3 | 5 minutes later |
| 4 | 30 minutes later |
| 5 | 2 hours later |
After the fifth failure, the delivery becomes FAILED and is not retried automatically.
Build an idempotent handler
Retries mean the same event can arrive more than once. Store X-SkyPay-Delivery with a unique constraint and return 2xx for an already accepted delivery. Do not fulfil an order twice.
Diagnose failures
Open Settings → Webhooks, select the endpoint, and inspect delivery status, attempt count, response code, and timestamps. Send a test event after correcting your endpoint.
Return quickly after durable storage. Slow email, inventory, or fulfilment work should run after the response so a healthy endpoint does not time out and trigger duplicates.