Signature Prep Stages Endpoint

This endpoint is for Signature integrators to update Deliveroo on how the preparation of a Signature order is going. If you're using the standard POS integration, see the POS Prep Stages Endpoint (https://api-docs.deliveroo.com/docs/prep-stages-endpoint) instead — the two endpoints accept the same request body and return the same response codes, but live at different URLs.

Base URL: https://partners.deliveroo.com — the same hostname you already use for other Signature endpoints (create order, cancel, etc.). Continue using your existing Basic Auth credentials.

You can use this endpoint if you have a kitchen management system, KDS or POS and want to update Deliveroo on how the preparation of the order is going.

Understanding the ready_for_collection signal


To ensure smooth operations and more accurate prep times, Deliveroo recommends all partners to provide a ready_for_collection signal as soon as an order is ready.

The signal is used (1) to notify riders that they should come forward to collect the order from the counter and (2) to improve Deliveroo's prep time predictions. Please note that these features are not yet available at all sites.

The signal should typically be triggered when a staff member presses a button labelled "Order ready" on a KDS or POS screen.

All staff should be trained to use the signal consistently on all orders as soon as the order is packaged and ready to be collected.

Warnings


- Using the signal inconsistently will confuse the Deliveroo prep time algorithm and cause prep time estimates that are either too high, inaccurate or erratic
- Using the signal early will NOT send a rider any earlier, but will harm your prep time estimates
- The signal should never be triggered automatically (for example by a timer or algorithm) as this will cause prep time estimates that are too high, inaccurate or erratic. It should only be triggered when an order is actually Ready to Collect, and not when you predict it will be ready.


Displaying the button to trigger the ready_for_collection signal


Deliveroo recommends displaying the button as shown:
https://api-docs.deliveroo.com/docs/prep-stages-endpoint#displaying-the-button-to-trigger-the-ready_for_collection-signal

Understanding the in_kitchen signal

If available from your KDS system, we recommend you send us a signal for when you start preparing each order. For example, at a busy pizza restaurant with a long queue of orders, you should send the in_kitchen signal when the order reaches the front of the queue, and a chef starts working on it. We hope to use this signal experimentally in the future to improve the accuracy of prep time predictions.

Understanding the collected signal

You can tell us when an order has been collected by a rider. We don't currently use this in the prep time model but could do so in future.

Payload

| Field | Type | Description |
|-------------|--------------------|------------------------------------------------------------------------------|
| occurred_at | String | The date/time (ISO-8601) the event occurred in UTC. Must be within the last hour and the next 5 minutes. |
| stage | String | The prep stage signal. See valid values below. |
| delay | Integer (optional) | Estimated additional minutes until the stage completes. Must be one of 0, 2, 4, 6, 8, 10. Defaults to 0 if omitted. |

Valid stage values

- in_kitchen — Cooking has started
- ready_for_collection — Food is cooked and packaged
- ready_for_collection_soon — Food is a maximum of 60s from being ready to collect
- collected — The order has been collected

Example

{



Response

Successful requests return 200 OK with an empty JSON body ().

Common error responses:

| Status | Code | When |
|------- |--------------|---------------------------------------------------------------------------------|
| 400 | bad_request | Body validation failed (unknown stage, invalid delay, occurred_at out of window) |
| 404 | not_found | Order with the given external ID does not exist for your integrator |