Retries
If your server is down, webhooks wait and try again for about 24 hours. The restaurant keeps getting its orders in the Laayo vendor app meanwhile.
#What counts as a failure
- Any answer that is not 2xx.
- No answer within 10 seconds.
- A connection, DNS or TLS error.
Each try carries X-Laayo-Attempt and a fresh timestamp and signature. The body and X-Laayo-Idempotency-Key stay the same, so you can skip one you already handled.
#The schedule
After each failed try, we wait longer before the next one:
| After failed try | We wait |
|---|---|
| 1 | 30 seconds |
| 2 | 1 minute |
| 3 | 2 minutes |
| 4 | 5 minutes |
| 5 | 10 minutes |
| 6 | 20 minutes |
| 7 | 40 minutes |
| 8 | 1 hour |
| 9 | 2 hours |
| 10 | 3 hours |
| 11 | 4 hours |
| 12 | 6 hours |
Later failures keep the last wait.
#After about 24 hours
An event that still fails about 24 hours after it was created is dead-lettered: we stop sending it. A polling POS can still read it with GET /v1/events, from a cursor before it.
#Watching deliveries
GET /v1/partner/webhooks/deliveries, and Webhooks in the console, list recent events with their status, the number of attempts, your last status code or error, and when the next attempt is due.
#Meanwhile at the restaurant
- Orders still reach the restaurant in the Laayo vendor app, so the kitchen can work from there.
- The store stays open on Laayo. See When the POS is offline.