Use this endpoint to tell us if the order has been successfully sent to the site's in-store system. If the status is failed, use the reason and notes values to tell us why.
If we don't receive your sync status after 3 minutes, or we receive a failed status, we'll send a message to the Deliveroo tablet prompting staff to check their in-store system for the order, and enter manually into the till if needed.
Once we've received a final sync status (or the 3 minute timeout occurs), it cannot be updated.
This endpoint is idempotent on the final status: if you re-send the same status and reason we already hold for the order, we reply with HTTP 200 and the stored status, and nothing changes. Only status and reason are compared — notes and occurred_at are still required on a repeat but are not stored, so send any detail you need us to keep on the first call. Sending a different status or reason gives you an HTTP 409.
Two cases are never absorbed and always give you an HTTP 409. First, a status that disagrees with what we hold, such as failed after we already recorded a success — we will not overwrite it. Second, an order where the 3 minute timeout elapsed before we received any status from you, because the status we stored then is timeout, which is not a value you can send. If we did receive your status in time, a repeat of it is absorbed however long afterwards it arrives.
failed with reason webhook_failed is not a final status. If we hold no final status for the order, re-sending it is recorded as a new sync status rather than absorbed; if we already hold a final status, it disagrees with it and you get an HTTP 409 like any other mismatch.
Stop retrying once you get a 200 or a 409. Both are final answers: a 200 means we hold your status, a 409 means we already hold a status we will not replace. Retry on a 5xx, a 429, or a network error, with exponential backoff — a 429 means you have exceeded the per-order rate limit documented below, so back off and retry rather than dropping the status. Any other 4xx is also final: the request is malformed, so stop and investigate rather than retrying, because retrying will not change the answer.
We don't require sync status calls for sites marked as tabletless. If such a site is using Deliveroo tablet and some orders will fail to be synchronized, the tablet will not show notifications about the failures.
This endpoint is rate limited at 1 request per 10s per order.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
