Order Events Webhook Callback

This webhook is used to let you know that there's a new order or a status update of an existing order. In order to receive these events, you need to have a configured Order Events webhook. If we receive an error in the response then we'll try to retry the callback:

  • up to 6 minutes for ASAP orders,
  • up to 30 minutes for scheduled orders,

We share an order event in our payloads. The following are all the valid values for it.

Order StatusDescription
placedOrder is placed in our system.
rejectedOrder is rejected by site or automatically rejected due to lack of reaction from the restaurant.
acceptedOrder is accepted by site.
confirmedFor scheduled orders only. Site has confirmed that they started preparing the order.
canceledOrder was canceled by site or customer.

We'll send you this payload after a new order is placed or updated. This requires a configured Order Events webhook URL.

Keep in mind that while every attempt is made to make callbacks in the order they occurred and in a timely manner, neither can be absolutely guaranteed. It is also possible to receive the same callback more than once. The status log should be treated as the source of truth when it comes to the order of the statuses.

Please consult Fulfillment Types page in Guides and see examples of requests on the right. See also other order types:

❗️

Order Preparation

  • All orders must be accepted (with accepted status present in the status_log in the event) before they are prepared.
  • For the vast majority of orders, the time you receive the order will be almost equal to the start_preparing_at timestamp.
  • Sometimes start_preparing_at may be far in the future (for example scheduled orders or when the site is close to closing). In these situations we recommend you wait until start_preparing_at before printing or showing the order in the kitchen
  • For the avoidance of doubt: preparation time is inclusive of any time required to accept the order
Body Params
string
enum
Allowed:
body
object
Headers
string
required

Deliveroo Sequential globally unique identifier (GUID). Please implement it as case-insensitive.

string
required

On registration, we'll provide you with a webhook secret. We'll use the webhook secret and a sequential globally unique identifier (GUID) to generate a hash of the order payload. When you receive a POST request, you will be able to compute a hash and verify that it's a genuine, authorized request sent from Deliveroo. Please implement it as case-insensitive.

string
enum
required

Marks what event type is this request. Currently supported values are event/order.new and event/order.status_update. Please implement it as case-insensitive.

Allowed:
string
required

Marks which version of payload this request is having. Currently, all our payloads are version 1

Responses
200

Your server returns this code if it accepts the callback.

4XX

Your server can return 4XX codes to signal its issues with the request.

5XX

Your server can return 5XX codes to signal its internal issues.

Language
Credentials
OAuth2
URL