Payloads

Here you’ll find the keys and values you can expect in payloads for new orders, remakes and cancelled orders. We have two new order payloads to cover both restaurants who do their own delivery and restaurants who use Deliveroo riders.

New order: Deliveroo fulfilled

This payload is relevant to you if the restaurant’s orders are picked up and delivered by a Deliveroo rider.

Top level payload

event
String

The name of the event. In this case new_order

restaurant_acknowledged_at
String

Date and time when the restaurant accepted the order on the Deliveroo tablet in the ISO-8601 format

location_id
String

The POS location ID

order
Order

Payload type

Order

id
String

Unique ID of the order

display_id
String

The ID we give to the restaurant/rider/customer to easily identify the order

fulfillment_type
String

Who will be delivering the order, Deliveroo riders or the restaurant’s fleet

asap
Boolean

False if the order is scheduled for a later time or the next day

pickup_at
String

Date and time when the restaurant accepted the order on the Deliveroo tablet in the ISO-8601 format

total_price
Price

The amount paid by the customer

notes
String

Allergy notes from the customer

items
Item[]

An array of the Items in the order

Price

fractional
Number

The value of the monetary amount represented in the fractional or subunit of the currency (e.g. pence, cents)

currency_code
String

The international 3-letter code as defined by the ISO 4217 standard

Item

pos_item_id
String

The ID of the item in the POS system

quantity
Number

The quantity ordered

unit_price
Price

Price per unit

modifiers
String[]

Predefined preparation instructions that must be communicated to kitchen as well as food or drink items that might accompany a menu item, e.g. "No tomato"

Example payload

{
  "event": "new_order",
  "restaurant_acknowledged_at": "2017-03-20T18:04:00Z",
  "location_id": "33235",
  "order": {
    "id": "1487734400-1234",
    "display_id": "1234",
    "asap": true,
    "pickup_at": "2017-03-20T18:30:00Z",
    "notes": "Allergic to peanuts",
    "total_price": {
      "fractional": 2360,
      "currency_code": "GBP"
    },
    "items": [
      {
        "pos_item_id": "1231",
        "unit_price": {
          "fractional": 600,
          "currency_code": "GBP"
        },
        "quantity": 2,
        "modifiers": [
          {
            "pos_item_id": "1233",
            "unit_price": {
              "fractional": 100,
              "currency_code": "GBP"
            },
            "quantity": 1,
            "modifiers": []
          }
        ]
      },
      {
        "pos_item_id": "1232",
        "quantity": 3,
        "unit_price": {
          "fractional": 200,
          "currency_code": "GBP"
        },
        "modifiers": []
      },
      {
        "pos_item_id": "1233",
        "quantity": 3,
        "unit_price": {
          "fractional": 120,
          "currency_code": "GBP"
        },
        "modifiers": []
      }
    ]
  }
}

New order: Restaurant fulfilled

This payload is for you if the restaurant’s own delivery fleet delivers orders. This payload has a delivery object so the driver has all the relevant delivery info.

Top level payload

event
String

The name of the event. In this case new_order

restaurant_acknowledged_at
String

Date and time when the restaurant accepted the order on the Deliveroo tablet in the ISO-8601 format

location_id
String

The POS location ID

order
Order

Payload type

Order

id
String

Unique ID of the order

display_id
String

The ID we give to the restaurant/rider/customer to easily identify the order

fulfillment_type
String

Who will be delivering the order, Deliveroo riders or the restaurant’s fleet

asap
Boolean

False if the order is scheduled for a later time or the next day

total_price
Price

The amount paid by the customer

cash_due
Price

The amount the customer needs to pay in cash when the delivery arrives

notes
String

Allergy notes from the customer

items
Item[]

The items in the order

delivery
Delivery

surcharge
Price

The fee that makes up the difference if the total price is below the minimum order value

Price

fractional
Number

The value of the monetary amount represented in the fractional or sub-unit of the currency (e.g. pence, cents, …)

currency_code
String

The international 3-letter code as defined by the ISO 4217 standard

Item

pos_item_id
String

The ID of the item in the POS system

quantity
Number

The quantity ordered

unit_price
Price

Price per unit

modifiers
String[]

Predefined preparation instructions that must be communicated to kitchen as well as food or drink items that might accompany a menu item, e.g. No tomato

Delivery

line1
String

First line of address info the customer enters at checkout like street name and number

line2
String

Second line of address info the customer enters at checkout like building number

city
String

The town or city the customer enters at checkout

postcode
String

The postcode of the town or city the customer enters at checkout

contact_number
String

A third party number used to contact customers

contact_access_code
String

The access code needed to use the third party number to contact customers

deliver_by
String

Date and time when the order should be delivered by in the ISO-8601 format

customer_name
String
neighbourhood
String
latitude
Number
longitude
Number

Example payload

{
  "event": "new_order",
  "location_id": "98219",
  "restaurant_acknowledged_at": "2018-10-19T13:59:17Z",
  "order": {
    "id": "1539957555-7181",
    "display_id": "7181",
    "total_price": {
      "fractional": 1555,
      "currency_code": "AUD"
    },
    "items": [
      {
        "pos_item_id": "P019",
        "unit_price": {
          "fractional": 1555,
          "currency_code": "AUD"
        },
        "quantity": 1,
        "modifiers": [
          {
            "pos_item_id": "FRESHTHN",
            "unit_price": {
              "fractional": 0,
              "currency_code": "AUD"
            },
            "quantity": 1,
            "modifiers": [

            ]
          }
        ]
      }
    ],
    "asap": true,
    "notes": "NO CUTLERY",
    "fulfillment_type": "restaurant",
    "cash_due": {
      "fractional": 0,
      "currency_code": "AUD"
    },
    "surcharge": {
      "fractional": 0,
      "currency_code": "AUD"
    },
    "delivery": {
      "line1": "65a Cowper Wharf Road",
      "line2": null,
      "city": "Sydney",
      "postcode": "2011",
      "contact_number": "61390204492",
      "contact_access_code": "289781165",
      "deliver_by": "2018-10-19T14:14:42Z",
      "customer_name": "Ben C.",
      "delivery_fee": {
        "fractional": 0,
        "currency_code": "AUD"
      },
      "location": {
        "latitude": -33.8693165,
        "longitude": 151.2219156
      },
      "note": ""
    }
  }
}

Remake order

This is only for restaurants who use Deliveroo riders to deliver their orders. Restaurants who do their own delivery don’t need this payload because customers can't request a remake.

When orders have to be remade because of a problem, we’ll send it to the restaurant’s tablet as a new order. Once the restaurant accepts the order, we’ll send a new order event with a separate order ID.

This order event will have a remake_details field (described below) which differentiates it from a normal order.

Top level payload

event
String

The name of the event. In this case new_order

restaurant_acknowledged_at
String

Date and time when the restaurant accepted the order on the Deliveroo tablet in the ISO-8601 format

location_id
String

The POS location ID

order
Order

Payload type

Order

id
String

Unique ID of the order

display_id
String

The ID we give to the restaurant/rider/customer to easily identify the order

fulfillment_type
String

Who will be delivering the order, Deliveroo riders or the restaurant’s fleet

asap
Boolean

False if the order is scheduled for a later time or the next day

pickup_at
String

Date and time the order should be prepared for in the ISO-8601 format

total_price
Price

The amount paid by the customer

notes
String

Allergy notes from the customer

items
Item[]

The items in the order

remake_details
Remake Details

Details of the items that need to be remade

Price

fractional
Number

The value of the monetary amount represented in the fractional or subunit of the currency (e.g. pence, cents)

currency_code
String

The international 3-letter code as defined by the ISO 4217 standard

Item

pos_item_id
String

The ID of the item in the POS system

quantity
Number

The quantity ordered

unit_price
Price

Price per unit

modifiers
String[]

Predefined preparation instructions that must be communicated to kitchen as well as food or drink items that might accompany a menu item, e.g. No tomato

Remake details

parent_order_id
String

Unique ID of the original order

fault
String

Defines who caused the redelivery, and affects the total_price.
 Possible values are “deliveroo“ (total_price will be 100%) and “restaurant” (total_price will be 0)

order_cost
Number

The price of the order before fault is applied

  • If the remake is Deliveroo’s responsibility, the order_cost is at full price

  • If the remake is the restaurant’s responsibility, the order_cost is 0

Example payload

{
  "event": "new_order",
  "restaurant_acknowledged_at": "2017-03-20T18:04:00Z",
  "location_id": "33235",
  "order": {
    "id": "1487734400-1234",
    "display_id": "1234",
    "asap": true,
    "pickup_at": "2017-03-20T18:30:00Z",
    "notes": "",
    "total_price": {
      "fractional": 0,
      "currency_code": "GBP"
    },
    "items": [
      {
        "pos_item_id": "1231",
        "unit_price": {
          "fractional": 900,
          "currency_code": "GBP"
        },
        "quantity": 2,
        "modifiers": []
      }
    ],
    "remake_details": {
      "parent_order_id": "1487734400-1231",
      "fault": "restaurant",
      "order_cost": 1800
    }
  }
}

Cancel order

Sometimes a customer wants to cancel an existing order. It can’t be cancelled if the order is already being made, it’s ready for collection or it’s already with a rider.

Here’s how cancelled orders work:

  1. A customer places an order
  2. We send the order to the restaurant’s tablet and/or POS
  3. The customer calls our Customer service team to request cancellation
  4. Our Customer service agent phones the restaurant
  5. The restaurant agrees to a cancellation. If, for example, the order isn’t being prepared yet
  6. Our Customer service agent cancels the order
  7. A cancellation notification appears on the restaurant’s tablet. If the order was sent to the POS, we’ll send a cancellation notification to the POS too.

Top level payload

event
String

The name of the event. In this case new_order

cancelled_at
String

Date and time when the customer cancelled the order in the ISO-8601 format

location_id
String

The POS location ID

order
Order

Payload type

Order

id
String

Unique ID of the order

display_id
String

The ID we give to the restaurant/rider/customer to easily identify the order

pickup_at
String

Date and time the order should be prepared for in the ISO-8601 format

reason
String

The reason why Deliveroo is cancelling the order.

Can be: deliveroo_cancelled

Example payload

{
  "event": "cancel_order",
  "cancelled_at": "2017-03-20T15:21:00Z",
  "location_id": "33235",
  "order": {
    "id": "1487735500-1244",
    "display_id": "1244",
    "pickup_at": "2017-03-20T16:30:00Z",
    "reason": "deliveroo_cancelled"
  }
}