Fulfillment Types

There are four fulfilment types available.

  1. Fulfilled by Deliveroo ("deliveroo"): The order is picked up and delivered by a Deliveroo rider.
  2. Pick-up/Collection ("customer"): The Deliveroo customer picks up the order from the restaurant.
  3. Restaurant Fulfilment/Marketplace ("restaurant"): The restaurant's fleet delivers the order.

Of these four fulfillment types, "deliveroo", "customer", and "table_service" share a similar webhook payload structure. The webhook payload for the fulfilment type "restaurant" includes several additional fields.

Example Webhook Payloads

{
  "event": "order.new",
  "body": {
    "order": {
      "id": "gb:32498deb-d730-4dfb-b034-38f2d24f5bfd",
      "order_number": "28401753",
      "location_id": "348502bd-708f-4977-a02c-600c5419e2b7",
      "display_id": "1753",
      "status": "placed",
      "status_log": [
        {
          "at": "2022-03-07T16:12:12Z",
          "status": "pending"
        },
        {
          "at": "2022-03-07T16:12:13Z",
          "status": "placed"
        }
      ],
      "fulfillment_type": "deliveroo",
      "order_notes": "No pickles please.",
      "cutlery_notes": "NO CUTLERY",
      "asap": true,
      "prepare_for": "2022-03-07T16:36:15Z",
      "subtotal": {
        "fractional": 1770,
        "currency_code": "GBP"
      },
      "partner_order_subtotal": {
        "fractional": 1770,
        "currency_code": "GBP"
      },
      "total_price": {
        "fractional": 1140,
        "currency_code": "GBP"
      },
      "partner_order_total": {
        "fractional": 1140,
        "currency_code": "GBP"
      },
      "offer_discount": {
        "fractional": 630,
        "currency_code": "GBP"
      },
      "cash_due": {
        "fractional": 0,
        "currency_code": "GBP"
      },
      "bag_fee": {
        "fractional": 0,
        "currency_code": "GBP"
      },
      "fee_breakdown": [
        {
          "type": "DEPOSIT_FEE",
          "amount": {
             "fractional": 50,
             "currency_code": "EUR"
           }
         }
       ],
      "items": [
        {
          "pos_item_id": "4534.0",
          "quantity": 2,
          "name": "The Chicken Burger",
          "operational_name": "The Chicken Burger (Wraps and Burgers)",
          "unit_price": {
            "fractional": 630,
            "currency_code": "GBP"
          },
          "menu_unit_price": {
            "fractional": 630,
            "currency_code": "GBP"
          },
          "total_price": {
            "fractional": 885,
            "currency_code": "GBP"
          },
          "discount_amount": {
            "fractional": 630,
            "currency_code": "GBP"
          },
          "item_fees": [
            {
              "type": "DEPOSIT_FEE",
              "cost_per_unit": {
                 "fractional": 25,
                 "currency_code": "EUR"
                }
              }
            ],
          "modifiers": [
            {
              "pos_item_id": "99.0",
              "quantity": 1,
              "name": "Fries",
              "operational_name": "Fries - Salted",
              "unit_price": {
                "fractional": 255,
                "currency_code": "GBP"
              },
              "total_price": {
                "fractional": 255,
                "currency_code": "GBP"
              },
              "discount_amount": {
                "fractional": 0,
                "currency_code": "GBP"
              },
              "item_fees": [
                {
                  "type": "DEPOSIT_FEE",
                  "cost_per_unit": {
                    "fractional": 25,
                     "currency_code": "EUR"
                   }
                 }
               ],
            }
          ]
        }
      ],
      "start_preparing_at": "2022-03-07T16:12:15Z",
      "promotions": [
        {
          "id": "fb9fa099-15c3-4995-a2a6-c81c7f666a52",
          "type": "percentage_off_on_items",
          "value": 50,
          "pos_item_ids": [
            {
              "id": "4534.0"
            }
          ]
        }
      ],
      "is_tabletless": false,
      "customer": {
      	"first_name": "TestCustomer",
        "contact_number": "442033195035",
        "contact_access_code": "212140319",
        "order_frequency_at_site": "NEW CUSTOMER",
        "loyalty":{
          "card_number": "XXXX"
        }
      },
      "meal_cards": [
        {
          "provider": "EDENRED",
          "amount": 100
        }
      ]
    }
  }
}
{
  "event": "order.new",
  "body": {
    "order": {
      "id": "gb:3bbdb697-792a-4519-9081-34e2c6087e42",
      "order_number": "28948090",
      "location_id": "123",
      "display_id": "8090",
      "status": "placed",
      "status_log": [
        {
          "at": "2022-05-18T08:10:50Z",
          "status": "pending"
        },
        {
          "at": "2022-05-18T08:10:51Z",
          "status": "placed"
        }
      ],
      "fulfillment_type": "customer",
      "order_notes": "No pickles please.",
      "cutlery_notes": "NO CUTLERY",
      "asap": true,
      "prepare_for": "2022-05-18T08:26:18Z",
      "total_price": {
        "fractional": 1455,
        "currency_code": "GBP"
      },
      "partner_order_total": {
        "fractional": 1455,
        "currency_code": "GBP"
      },
      "partner_order_subtotal": {
        "fractional": 1455,
        "currency_code": "GBP"
      },
      "offer_discount": {
        "fractional": 0,
        "currency_code": "GBP"
      },
      "cash_due": {
        "fractional": 0,
        "currency_code": "GBP"
      },
      "bag_fee": {
        "fractional": 0,
        "currency_code": "GBP"
      },
      "items": [
        {
          "pos_item_id": "4534.0",
          "quantity": 1,
          "name": "The Chicken Burger",
          "operational_name": "The Chicken Burger (Wraps and Burgers)",
          "unit_price": {
            "fractional": 1200,
            "currency_code": "GBP"
          },
          "menu_unit_price": {
            "fractional": 1200,
            "currency_code": "GBP"
          },
          "total_price": {
            "fractional": 1455,
            "currency_code": "GBP"
          },
          "discount_amount": {
            "fractional": 0,
            "currency_code": "GBP"
          },
          "modifiers": [
            {
              "pos_item_id": "99.0",
              "quantity": 1,
              "name": "Fries - Salted",
              "operational_name": "Fries - Salted",
              "unit_price": {
                "fractional": 255,
                "currency_code": "GBP"
              },
              "total_price": {
                "fractional": 255,
                "currency_code": "GBP"
              },
              "discount_amount": {
                "fractional": 0,
                "currency_code": "GBP"
              }
            }
          ]
        }
      ],
      "start_preparing_at": "2022-05-18T08:20:18Z",
      "is_tabletless": false,
      "customer": {
      	"first_name": "TestCustomer",
        "contact_number": "442033195035",
        "contact_access_code": "212140319",
        "order_frequency_at_site": "NEW CUSTOMER",
        "loyalty":{
          "card_number": "XXXX"
        }
      }
    }
  }
}
{
  "event": "order.new",
  "body": {
    "order": {
      "id": "gb:f976b935-ed1d-4fda-a9f2-526569c75bf1",
      "order_number": "28948075",
      "location_id": "123",
      "display_id": "8075",
      "status": "placed",
      "status_log": [
        {
          "at": "2022-05-18T08:03:13Z",
          "status": "pending"
        },
        {
          "at": "2022-05-18T08:03:14Z",
          "status": "placed"
        }
      ],
      "fulfillment_type": "restaurant",
      "order_notes": "Please remove pickles.",
      "cutlery_notes": "NO CUTLERY",
      "asap": true,
      "prepare_for": "2022-05-18T08:18:41Z",
      "subtotal": {
        "fractional": 885,
        "currency_code": "GBP"
      },
      "delivery": {
        "delivery_fee": {
          "fractional": 79,
          "currency_code": "GBP"
        },
        "delivery_notes": "Please leave at doorstep.",
        "line1": "East Mews",
        "line2": "",
        "city": "Birmingham",
        "postcode": "B24PX",
        "contact_number": "442033195000",
        "contact_access_code": "212140300",
        "deliver_by": "2022-05-18T08:18:41Z",
        "customer_name": "John D.",
        "location": {
          "latitude": 52.4777288355005,
          "longitude": -1.89751785700835
        }
      },
      "total_price": {
        "fractional": 964,
        "currency_code": "GBP"
      },
      "partner_order_total": {
        "fractional": 964,
        "currency_code": "GBP"
      },
      "partner_order_subtotal": {
        "fractional": 964,
        "currency_code": "GBP"
      },
      "offer_discount": {
        "fractional": 0,
        "currency_code": "GBP"
      },
      "cash_due": {
        "fractional": 0,
        "currency_code": "GBP"
      },
      "bag_fee": {
        "fractional": 0,
        "currency_code": "GBP"
      },
      "items": [
        {
          "pos_item_id": "4534.0",
          "quantity": 1,
          "name": "The Chicken Burger",
          "operational_name": "The Chicken Burger (Wraps and Burgers)",
          "unit_price": {
            "fractional": 630,
            "currency_code": "GBP"
          },
          "menu_unit_price": {
            "fractional": 630,
            "currency_code": "GBP"
          },
          "total_price": {
            "fractional": 885,
            "currency_code": "GBP"
          },
          "discount_amount": {
            "fractional": 0,
            "currency_code": "GBP"
          },
          "modifiers": [
            {
              "pos_item_id": "99.0",
              "quantity": 1,
              "name": "Fries",
              "operational_name": "Fries - Salted",
              "unit_price": {
                "fractional": 255,
                "currency_code": "GBP"
              },
              "total_price": {
                "fractional": 255,
                "currency_code": "GBP"
              },
              "discount_amount": {
                "fractional": 0,
                "currency_code": "GBP"
              }
            }
          ]
        }
      ],
      "start_preparing_at": "2022-05-18T08:10:41Z",
      "is_tabletless": false,
      "customer": {
        "order_frequency_at_site": "NEW CUSTOMER"
      }
    }
  }
}
{
  "event": "order.status_update",
  "body": {
    "order": {
      "id": "gb:32498deb-d730-4dfb-b034-38f2d24f5bfd",
      "order_number": "28401753",
      "location_id": "348502bd-708f-4977-a02c-600c5419e2b7",
      "display_id": "1753",
      "status": "canceled",
      "status_log": [
        {
          "at": "2022-03-07T16:12:12Z",
          "status": "pending"
        },
        {
          "at": "2022-03-07T16:12:13Z",
          "status": "placed"
        },
        {
          "at": "2022-03-07T16:15:33.124795Z",
          "status": "accepted"
        },
        {
          "at": "2022-03-07T16:25:34.865695Z",
          "status": "canceled"
        }
      ],
      "fulfillment_type": "deliveroo",
      "order_notes": "No pickles please.",
      "cutlery_notes": "NO CUTLERY",
      "asap": true,
      "prepare_for": "2022-03-07T16:36:15Z",
      "total_price": {
        "fractional": 1770,
        "currency_code": "GBP"
      },
      "partner_order_total": {
        "fractional": 1770,
        "currency_code": "GBP"
      },
      "partner_order_subtotal": {
        "fractional": 1770,
        "currency_code": "GBP"
      },
      "offer_discount": {
        "fractional": 630,
        "currency_code": "GBP"
      },
      "cash_due": {
        "fractional": 0,
        "currency_code": "GBP"
      },
      "bag_fee": {
        "fractional": 10,
        "currency_code": "GBP"
      },
      "items": [
        {
          "pos_item_id": "4534.0",
          "quantity": 2,
          "name": "The Chicken Burger",
          "operational_name": "The Chicken Burger (Wraps and Burgers)",
          "unit_price": {
            "fractional": 630,
            "currency_code": "GBP"
          },
          "menu_unit_price": {
            "fractional": 630,
            "currency_code": "GBP"
          },
          "total_price": {
            "fractional": 885,
            "currency_code": "GBP"
          },
          "discount_amount": {
            "fractional": 630,
            "currency_code": "GBP"
          },
          "modifiers": [
            {
              "pos_item_id": "99.0",
              "quantity": 1,
              "name": "Fries",
              "operational_name": "Fries - Salted",
              "unit_price": {
                "fractional": 255,
                "currency_code": "GBP"
              },
              "total_price": {
                "fractional": 255,
                "currency_code": "GBP"
              },
              "discount_amount": {
                "fractional": 0,
                "currency_code": "GBP"
              }
            }
          ]
        }
      ],
      "start_preparing_at": "2022-03-07T16:16:15Z",
      "promotions": [
        {
          "id": "fb9fa099-15c3-4995-a2a6-c81c7f666a52",
          "type": "percentage_off_on_items",
          "value": 50,
          "pos_item_ids": [
            {
              "id": "4534.0"
            }
          ]
        }
      ],
      "is_tabletless": false
    }
  }
}

In contrast, the webhook payload for the fulfilment type "restaurant" includes several additional fields.

{
  "event": "new_order",
  "location_id": "05VIN",
  "restaurant_acknowledged_at": "2018-12-04T11:39:41Z",
  "order": {
    "id": "gb:df8849ae-5261-446d-9481-beb53a5cac35",
    "display_id": "2206",
    "order_number": "128102206",
    "total_price": {
      "fractional": 1375,
      "currency_code": "EUR"
    },
    "partner_order_total": {
      "fractional": 1375,
      "currency_code": "EUR"
    },
    "partner_order_subtotal": {
      "fractional": 1375,
      "currency_code": "EUR"
    },
    "items": [
      {
        "pos_item_id": "1666",
        "unit_price": {
          "fractional": 595,
          "currency_code": "EUR"
        },
        "quantity": 1,
        "modifiers": [
          {
            "pos_item_id": "11010049",
            "unit_price": {
              "fractional": 95,
              "currency_code": "EUR"
            },
            "menu_unit_price": {
              "fractional": 95,
              "currency_code": "EUR"
            },
            "quantity": 1,
            "modifiers": [],
            "discount_amount": {
              "fractional": 0,
              "currency_code": "EUR"
            }
          },
          {
            "pos_item_id": "109841",
            "unit_price": {
              "fractional": 0,
              "currency_code": "EUR"
            },
            "quantity": 1,
            "modifiers": [],
            "discount_amount": {
              "fractional": 0,
              "currency_code": "EUR"
            }
          }
        ],
        "discount_amount": {
          "fractional": 119,
          "currency_code": "EUR"
        }
      },
      {
        "pos_item_id": "11118914",
        "unit_price": {
          "fractional": 320,
          "currency_code": "EUR"
        },
        "quantity": 1,
        "modifiers": [],
        "discount_amount": {
          "fractional": 0,
          "currency_code": "EUR"
        }
      },
      {
        "pos_item_id": "11123102",
        "unit_price": {
          "fractional": 365,
          "currency_code": "EUR"
        },
        "quantity": 1,
        "modifiers": [],
        "discount_amount": {
          "fractional": 0,
          "currency_code": "EUR"
        }
      }
    ],
    "asap": true,
    "notes": "PAS DE COUVERTS",
    "fulfillment_type": "deliveroo",
    "cash_due": {
      "fractional": 0,
      "currency_code": "EUR"
    },
    "bag_fee": {
      "fractional": 0,
      "currency_code": "EUR"
    },
    "offer_discount": {
      "amount": {
        "fractional": 0,
        "currency_code": "EUR"
      }
    },
    "pickup_at": "2018-12-04T11:51:22Z",
    "promotions": [
      {
        "id": "305ddb7a-e25e-4a6f-944e-68471a754c9e",
        "type": "percentage_off_on_item",
        "value": 20,
        "pos_item_ids": [
          {
            "id": "1666"
          }
        ]
      }
    ]
  }
}
{
  "event": "new_order",
  "location_id": "05VIN",
  "restaurant_acknowledged_at": "2018-12-04T11:39:41Z",
  "order": {
    "id": "gb:df8849ae-5261-446d-9481-beb53a5cac35",
    "display_id": "2206",
    "order_number": "128102206",
    "total_price": {
      "fractional": 1390,
      "currency_code": "EUR"
    },
    "partner_order_total": {
      "fractional": 1390,
      "currency_code": "EUR"
    },
    "partner_order_subtotal": {
      "fractional": 1390,
      "currency_code": "EUR"
    },
    "items": [
      {
        "pos_item_id": "1666",
        "unit_price": {
          "fractional": 1390,
          "currency_code": "EUR"
        },
        "menu_unit_price": {
          "fractional": 1390,
          "currency_code": "EUR"
        },
        "quantity": 1,
        "modifiers": [],
        "discount_amount": {
          "fractional": 0,
          "currency_code": "EUR"
        }
      }
    ],
    "asap": true,
    "notes": "PAS DE COUVERTS",
    "fulfillment_type": "customer",
    "cash_due": {
      "fractional": 0,
      "currency_code": "EUR"
    },
    "offer_discount": {
      "amount": {
        "fractional": 0,
        "currency_code": "EUR"
      }
    },
    "pickup_at": "2018-12-04T11:51:22Z",
    "promotions":[]
  }
}
{
  "event": "new_order",
  "location_id": "98219",
  "restaurant_acknowledged_at": "2019-01-09T17:32:25Z",
  "order": {
    "id": "gb:df8849ae-5261-446d-9481-beb53a5cac35",
    "display_id": "7487",
    "order_number": "128107487",
    "total_price": {
      "fractional": 1850,
      "currency_code": "AUD"
    },
    "partner_order_total": {
      "fractional": 1850,
      "currency_code": "AUD"
    },
    "partner_order_subtotal": {
      "fractional": 1850,
      "currency_code": "AUD"
    },
    "items": [
      {
        "pos_item_id": "P308",
        "unit_price": {
          "fractional": 1850,
          "currency_code": "AUD"
        },
        "menu_unit_price": {
          "fractional": 1850,
          "currency_code": "AUD"
        },
        "quantity": 1,
        "modifiers": [
          {
            "pos_item_id": "CLASSIC",
            "unit_price": {
              "fractional": 0,
              "currency_code": "AUD"
            },
            "quantity": 1,
            "modifiers": [],
            "discount_amount": {
              "fractional": 0,
              "currency_code": "AUD"
            }
          }
        ],
        "discount_amount": {
          "fractional": 0,
          "currency_code": "AUD"
        }
      }
    ],
    "asap": true,
    "notes": "NO CUTLERY",
    "fulfillment_type": "restaurant",
    "cash_due": {
      "fractional": 0,
      "currency_code": "AUD"
    },
    "surcharge": {
      "fractional": 0,
      "currency_code": "AUD"
    },
    "offer_discount": {
      "amount": {
        "fractional": 0,
        "currency_code": "AUD"
      }
    },
    "delivery": {
      "line1": "43 Bourke Street",
      "line2": null,
      "city": "Sydney",
      "postcode": "2011",
      "contact_number": "61390204492",
      "contact_access_code": "82167508",
      "deliver_by": "2019-01-09T17:47:50Z",
      "customer_name": "Ben P.",
      "delivery_fee": {
        "fractional": 475,
        "currency_code": "AUD"
      },
      "location": {
        "latitude": -33.8699656,
        "longitude": 151.2187173
      },
      "note": ""
    },
    "promotions":[]
  }
}

What’s Next