Prep Stages Endpoint

POST /v1/orders/:order_id/prep_stage

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.



  • 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:


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.


occurred_at String

The date/time (ISO-8601) the event occurred in UTC

stage String

Possible options are:

in_kitchen (Cooking has started)
ready_for_collection (Food is cooked and packaged)
collected (The order has been collected)

  "occurred_at": "2017-03-23T17:30:00Z",
  "stage": "ready_for_collection"
  "occurred_at": "2017-03-23T17:30:00Z",
  "stage": "in_kitchen"
  "occurred_at": "2017-03-23T17:30:00Z",
  "stage": "collected"