---
updatedAt: 2026-05-29T14:04:09.000Z
---

# Order Status Callback

This webhook is called when an order changes status or when the `prepare_for` field has changed.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "version": "1.0",
    "title": "Signature API",
    "description": "Provides a interface for partners to place orders through the Deliveroo network",
    "contact": {
      "name": "Deliveroo Support"
    }
  },
  "tags": [
    {
      "name": "Webhooks"
    },
    {
      "name": "v1"
    },
    {
      "name": "v2"
    }
  ],
  "x-readme": {
    "explorer-enabled": false
  },
  "servers": [
    {
      "url": "https://api.developers.deliveroo.com/signature",
      "description": "Production API"
    },
    {
      "url": "https://api-sandbox.developers.deliveroo.com/signature",
      "description": "Sandbox"
    }
  ],
  "paths": {
    "/v1/quotes": {
      "post": {
        "deprecated": false,
        "tags": [
          "v1"
        ],
        "operationId": "create-quote",
        "summary": "Create quote",
        "description": "It is recommended to create a quote before placing an order as during quote creation multiple validation steps are performed and errors that might result in order rejection can be avoided.\n\nIt is important to note that a quote is only valid for 5 minutes and after this a new quote must be created before placing the order, otherwise an error will be returned.\n\nWhen a quote is created, Deliveroo validates the delivery location, that can be represented either as latitude/longitude or using a textual representation of the address.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lat": {
                    "$ref": "#/paths/~1v1~1orders~1%7Bid%7D~1location/get/responses/200/content/application~1json/schema/properties/lat",
                    "description": "Required if address is not provided."
                  },
                  "lon": {
                    "$ref": "#/paths/~1v1~1orders~1%7Bid%7D~1location/get/responses/200/content/application~1json/schema/properties/lon",
                    "description": "Required if address is not provided."
                  },
                  "address": {
                    "description": "Required if lat/lon is not provided.",
                    "type": "object",
                    "examples": [],
                    "title": "Address",
                    "properties": {
                      "city": {
                        "title": "AddressCity",
                        "type": "string",
                        "example": "London"
                      },
                      "country_code": {
                        "type": "string",
                        "pattern": "^[A-Z]{2}$",
                        "description": "2-letter country code according to ISO 3166-1 alpha-2 format.\n",
                        "examples": [],
                        "example": "GB",
                        "title": "CountryCode2"
                      },
                      "delivery_note": {
                        "title": "DeliveryNote",
                        "type": "string",
                        "maxLength": 160,
                        "description": "Customer provided delivery note.",
                        "example": "Door bell is broken, please knock"
                      },
                      "door_code": {
                        "title": "DoorCode",
                        "type": "string",
                        "description": "Customer provided door code, such as one for entering a shared apartment.",
                        "example": "1234",
                        "maxLength": 10
                      },
                      "line1": {
                        "title": "AddressLine1",
                        "type": "string",
                        "description": "Street address, company name, c/o.",
                        "example": "1 Cousin Lane"
                      },
                      "line2": {
                        "title": "AddressLine2",
                        "type": "string",
                        "description": "Apartment, suite, unit, building, floor, etc.",
                        "example": "1st Floor"
                      },
                      "full": {
                        "title": "AddressFull",
                        "type": "string",
                        "x-stoplight": {
                          "id": "a6205ae28caaf"
                        },
                        "example": "1 Cousin Lane, London EC4R 3TE",
                        "description": "Can be used in lieu of supplying line1/line2/postcode."
                      },
                      "postcode": {
                        "$ref": "#/paths/~1v1~1restaurants/get/parameters/2/schema"
                      }
                    },
                    "required": [
                      "city",
                      "line1"
                    ],
                    "x-stoplight": {
                      "id": "eb34b59925c1d"
                    }
                  },
                  "restaurant_id": {
                    "$ref": "#/paths/~1v1~1orders/post/requestBody/content/application~1json/schema/properties/restaurant_id"
                  }
                },
                "required": [
                  "restaurant_id"
                ]
              },
              "examples": {
                "With lat/lon": {
                  "value": {
                    "lat": 51.513822,
                    "lon": -0.191615,
                    "restaurant_id": "0123-sushimania"
                  }
                },
                "With address": {
                  "value": {
                    "restaurant_id": "0123-sushimania",
                    "address": {
                      "city": "London",
                      "country_code": "GB",
                      "delivery_note": "Door bell is broken, please knock",
                      "door_code": "1234",
                      "line1": "1 Cousin Lane",
                      "line2": "1st Floor",
                      "postcode": "EC4 R3TE"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Quote created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "id": "9R4F0RPOTlijCvHz2iMaVA",
                      "created": "2022-10-27T14:34:19.58328Z",
                      "delivery_fee": {
                        "fractional": 199,
                        "currency_code": "GBP"
                      },
                      "service_fee": {
                        "fractional": 99,
                        "currency_code": "GBP"
                      },
                      "service_fee_rule": {
                        "type": "FIXED_PERCENTAGE",
                        "percentage": 11,
                        "minimum": {
                          "fractional": 99,
                          "currency_code": "GBP"
                        },
                        "maximum": {
                          "fractional": 299,
                          "currency_code": "GBP"
                        }
                      },
                      "small_order_fee_rule": {
                        "threshold": {
                          "fractional": 1500,
                          "currency_code": "GBP"
                        },
                        "cap": {
                          "fractional": 200,
                          "currency_code": "GBP"
                        }
                      },
                      "destination": {
                        "city": "",
                        "country_code": "",
                        "delivery_note": "",
                        "door_code": "",
                        "lat": 51.490747,
                        "line1": "",
                        "line2": "",
                        "lon": -0.149672,
                        "postcode": ""
                      },
                      "estimated_duration": {
                        "begin": "25m0s",
                        "end": "35m0s"
                      },
                      "estimated_rider_arrival_time": "28m44s",
                      "partner_delivery_fee": {
                        "fractional": 499,
                        "currency_code": "GBP"
                      },
                      "restaurant": {
                        "id": "puzzles-pizza-location-site-id",
                        "name": "Puzzles Pizza - Chelsea"
                      },
                      "valid_until": "2022-10-27T14:39:19.583268373Z"
                    }
                  },
                  "properties": {
                    "id": {
                      "title": "QuoteID",
                      "x-stoplight": {
                        "id": "dqdtpmfnbi4c4"
                      },
                      "type": "string",
                      "pattern": "^[A-Za-z0-9-_]+$",
                      "examples": [],
                      "example": "_PZOvsivTiWhIk-sQt9wmA"
                    },
                    "created": {
                      "title": "DateTime",
                      "x-stoplight": {
                        "id": "0zp9rzfrkycgo"
                      },
                      "type": "string",
                      "description": "A textual representation of the time value formatted according to the RFC3339 format",
                      "examples": [
                        "2022-10-27T14:39:19.583268373Z"
                      ]
                    },
                    "delivery_fee": {
                      "type": "object",
                      "properties": {
                        "currency_code": {
                          "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount/properties/currency_code"
                        },
                        "fractional": {
                          "type": "integer"
                        }
                      },
                      "examples": [
                        {
                          "currency_code": "GBP",
                          "fractional": 250
                        }
                      ]
                    },
                    "service_fee": {
                      "description": "The service fee Deliveroo suggests charging the customer for this order. Omitted when there is no service fee for the restaurant or country.",
                      "type": "object",
                      "properties": {
                        "currency_code": {
                          "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount/properties/currency_code"
                        },
                        "fractional": {
                          "type": "integer"
                        }
                      },
                      "examples": [
                        {
                          "currency_code": "GBP",
                          "fractional": 99
                        }
                      ]
                    },
                    "service_fee_rule": {
                      "description": "The calculation rule behind service_fee. Omitted when the service fee for this restaurant is not calculated by one of the rule types below.",
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "FIXED_AMOUNT",
                            "FIXED_PERCENTAGE"
                          ]
                        },
                        "amount": {
                          "description": "Set when type is FIXED_AMOUNT.",
                          "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount"
                        },
                        "percentage": {
                          "description": "Set when type is FIXED_PERCENTAGE. A percentage, e.g. 11 for 11%, or 12.5 for 12.5%.",
                          "type": "number"
                        },
                        "minimum": {
                          "description": "Set when type is FIXED_PERCENTAGE. May be absent even then, if there's no minimum configured.",
                          "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount"
                        },
                        "maximum": {
                          "description": "Set when type is FIXED_PERCENTAGE. May be absent even then, if there's no maximum configured.",
                          "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount"
                        }
                      },
                      "required": [
                        "type"
                      ],
                      "examples": [
                        {
                          "type": "FIXED_PERCENTAGE",
                          "percentage": 11,
                          "minimum": {
                            "currency_code": "GBP",
                            "fractional": 99
                          },
                          "maximum": {
                            "currency_code": "GBP",
                            "fractional": 299
                          }
                        },
                        {
                          "type": "FIXED_AMOUNT",
                          "amount": {
                            "currency_code": "GBP",
                            "fractional": 99
                          }
                        }
                      ]
                    },
                    "small_order_fee_rule": {
                      "description": "The calculation rule behind the small order fee: charged on orders whose subtotal is below threshold, tapering as the subtotal approaches threshold so the customer is only charged the difference needed to reach it, and capped at cap for orders further below threshold. cap is omitted when the fee is uncapped.",
                      "type": "object",
                      "properties": {
                        "threshold": {
                          "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount"
                        },
                        "cap": {
                          "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount"
                        }
                      },
                      "required": [
                        "threshold"
                      ],
                      "examples": [
                        {
                          "threshold": {
                            "currency_code": "GBP",
                            "fractional": 1500
                          },
                          "cap": {
                            "currency_code": "GBP",
                            "fractional": 200
                          }
                        }
                      ]
                    },
                    "destination": {
                      "type": "object",
                      "examples": [
                        {
                          "city": "London",
                          "country_code": "GB",
                          "delivery_note": "Door bell is broken, please knock",
                          "door_code": "1234",
                          "line1": "1 Cousin Lane",
                          "line2": "1st Floor",
                          "postcode": "EC4 R3TE",
                          "lat": 51.513822,
                          "lon": -0.191615
                        }
                      ],
                      "title": "Address",
                      "description": "Delivery location address.",
                      "properties": {
                        "city": {
                          "$ref": "#/paths/~1v1~1quotes/post/requestBody/content/application~1json/schema/properties/address/properties/city"
                        },
                        "country_code": {
                          "$ref": "#/paths/~1v1~1quotes/post/requestBody/content/application~1json/schema/properties/address/properties/country_code"
                        },
                        "delivery_note": {
                          "$ref": "#/paths/~1v1~1quotes/post/requestBody/content/application~1json/schema/properties/address/properties/delivery_note"
                        },
                        "door_code": {
                          "$ref": "#/paths/~1v1~1quotes/post/requestBody/content/application~1json/schema/properties/address/properties/door_code"
                        },
                        "line1": {
                          "$ref": "#/paths/~1v1~1quotes/post/requestBody/content/application~1json/schema/properties/address/properties/line1"
                        },
                        "line2": {
                          "$ref": "#/paths/~1v1~1quotes/post/requestBody/content/application~1json/schema/properties/address/properties/line2"
                        },
                        "full": {
                          "$ref": "#/paths/~1v1~1quotes/post/requestBody/content/application~1json/schema/properties/address/properties/full"
                        },
                        "postcode": {
                          "$ref": "#/paths/~1v1~1restaurants/get/parameters/2/schema"
                        },
                        "lat": {
                          "$ref": "#/paths/~1v1~1orders~1%7Bid%7D~1location/get/responses/200/content/application~1json/schema/properties/lat",
                          "description": "Can be used to exactly specify the latitude of the delivery location. If supplied, `address.lon` must also be supplied.\n"
                        },
                        "lon": {
                          "$ref": "#/paths/~1v1~1orders~1%7Bid%7D~1location/get/responses/200/content/application~1json/schema/properties/lon",
                          "description": "Can be used to exactly specify the longitude of the delivery location. If supplied, `address.lat` must also be supplied.\n"
                        }
                      },
                      "required": [
                        "city",
                        "line1"
                      ]
                    },
                    "estimated_duration": {
                      "title": "EstimatedOrderDuration",
                      "x-stoplight": {
                        "id": "4iz9gluj3uecs"
                      },
                      "type": "object",
                      "x-examples": {
                        "example-1": {
                          "begin": "40m0s",
                          "end": "1h5m0s"
                        }
                      },
                      "properties": {
                        "begin": {
                          "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/estimated_rider_arrival_time"
                        },
                        "end": {
                          "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/estimated_rider_arrival_time"
                        }
                      },
                      "description": "The estimated minimum and maximum time to deliver this order"
                    },
                    "estimated_rider_arrival_time": {
                      "title": "Duration",
                      "x-stoplight": {
                        "id": "9g8wgggckh3wx"
                      },
                      "type": "string",
                      "examples": [
                        "40m0s",
                        "1h5m0s"
                      ],
                      "description": "A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as \"300ms\", \"-1.5h\" or \"2h45m\". Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\"."
                    },
                    "partner_delivery_fee": {
                      "description": "The fee charged by Deliveroo to the partner for delivering the order. This is exclusive of VAT.",
                      "type": "object",
                      "properties": {
                        "currency_code": {
                          "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount/properties/currency_code"
                        },
                        "fractional": {
                          "type": "integer"
                        }
                      },
                      "examples": [
                        {
                          "currency_code": "GBP",
                          "fractional": 250
                        }
                      ]
                    },
                    "restaurant": {
                      "type": "object",
                      "x-stoplight": {
                        "id": "25e8d7e69b7c1"
                      },
                      "properties": {
                        "name": {
                          "type": "string",
                          "example": "Sushimania London Hackney"
                        },
                        "id": {
                          "$ref": "#/paths/~1v1~1orders/post/requestBody/content/application~1json/schema/properties/restaurant_id"
                        }
                      }
                    },
                    "valid_until": {
                      "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/created"
                    }
                  }
                },
                "examples": {
                  "Quote successfully created": {
                    "value": {
                      "id": "_PZOvsivTiWhIk-sQt9wmA",
                      "created": "2022-10-27T14:39:19.583268373Z",
                      "delivery_fee": {
                        "currency_code": "GBP",
                        "fractional": 250
                      },
                      "service_fee": {
                        "currency_code": "GBP",
                        "fractional": 99
                      },
                      "service_fee_rule": {
                        "type": "FIXED_PERCENTAGE",
                        "percentage": 11,
                        "minimum": {
                          "currency_code": "GBP",
                          "fractional": 99
                        },
                        "maximum": {
                          "currency_code": "GBP",
                          "fractional": 299
                        }
                      },
                      "small_order_fee_rule": {
                        "threshold": {
                          "currency_code": "GBP",
                          "fractional": 1500
                        },
                        "cap": {
                          "currency_code": "GBP",
                          "fractional": 200
                        }
                      },
                      "destination": {
                        "city": "London",
                        "country_code": "GB",
                        "delivery_note": "Door bell is broken, please knock",
                        "door_code": "1234",
                        "line1": "1 Cousin Lane",
                        "line2": "1st Floor",
                        "postcode": "EC4 R3TE",
                        "lat": 51.513822,
                        "lon": -0.191615
                      },
                      "estimated_duration": {
                        "begin": "40m0s",
                        "end": "40m0s"
                      },
                      "estimated_rider_arrival_time": "40m0s",
                      "partner_delivery_fee": {
                        "currency_code": "GBP",
                        "fractional": 499
                      },
                      "restaurant": {
                        "name": "Sushimania London Hackney",
                        "id": "0123-sushimania"
                      },
                      "valid_until": "2022-10-27T14:39:19.583268373Z"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request didn't work, often because a required parameter is missing or the content-type hasn't been set e.g. an incorrect JSON request",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "title": "Error",
                      "type": "object",
                      "properties": {
                        "error": {
                          "description": "Error body",
                          "type": "object",
                          "properties": {
                            "code": {
                              "description": "HTTP status code description.",
                              "type": "string"
                            },
                            "message": {
                              "description": "Details about the error.",
                              "type": "string"
                            }
                          }
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    {
                      "example": {
                        "error": {
                          "code": "bad_request",
                          "message": "invalid request"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "The request didn't work because the combination of your API key and API token doesn't exist in our system or your integration has been disabled",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/paths/~1v1~1quotes/post/responses/400/content/application~1json/schema/allOf/0"
                    },
                    {
                      "example": {
                        "error": {
                          "code": "unauthorized",
                          "message": "basic auth not provided"
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v1/refund-notifications": {
      "post": {
        "deprecated": false,
        "tags": [
          "v1"
        ],
        "operationId": "create-refund-notification",
        "summary": "Submit a refund notification for an order",
        "description": "If you are using your own customer support service, this can be used to notify us of refunds you have given to customers for which Deliveroo are liable. Refund notifications are processed in the background and will be subsequently be rejected if the requested amount exceeds the total order value (including delivery fees). Multiple refund notifications may be submitted for a single order, but their sum total should not exceed the total order value.\n\nUse the refund webhook to be notified when refund notifications submitted via this method have been ingested and processed successfully by Deliveroo.",
        "parameters": [],
        "responses": {
          "202": {
            "description": "Accepted"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "x-examples": {
                  "example-1": {
                    "order_id": "urqLd9T-R2OnlBETM_5eMQ",
                    "amount": {
                      "fractional": 400,
                      "currency_code": "GBP"
                    },
                    "reason": "cold_food"
                  }
                },
                "properties": {
                  "order_id": {
                    "anyOf": [
                      {
                        "$ref": "#/paths/~1v1~1orders/post/responses/200/content/application~1json/schema/properties/id"
                      },
                      {
                        "$ref": "#/paths/~1v2~1orders/post/responses/200/content/application~1json/schema/properties/id"
                      }
                    ]
                  },
                  "amount": {
                    "type": "object",
                    "examples": [],
                    "properties": {
                      "currency_code": {
                        "type": "string",
                        "x-stoplight": {
                          "id": "4f3fc0dbddc5a"
                        },
                        "example": "GBP",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "fractional": {
                        "type": "integer",
                        "minimum": 0,
                        "description": "Amount in cents, e.g. `400` for 4 GBP"
                      }
                    },
                    "required": [
                      "currency_code",
                      "fractional"
                    ]
                  },
                  "reason": {
                    "type": "string",
                    "enum": [
                      "cold_food",
                      "driver_issue",
                      "deliveroo_delay",
                      "redelivery"
                    ],
                    "description": "Reason for the refund"
                  }
                },
                "required": [
                  "order_id",
                  "amount",
                  "reason"
                ]
              },
              "examples": {
                "Example": {
                  "value": {
                    "order_id": "4c3-doYvTA-c4hhZy_LB6w",
                    "amount": {
                      "currency_code": "GBP",
                      "fractional": 400
                    },
                    "reason": "cold_food"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/orders": {
      "post": {
        "operationId": "create-order-v2",
        "deprecated": false,
        "tags": [
          "v2"
        ],
        "summary": "Create a new order",
        "description": "Create a new order for fulfillment by Deliveroo. A new order is returned with the `accepted` status.\n\n_Unlike v1, this endpoint supports [idempotency](https://api-docs.deliveroo.com/docs/signature-idempotent-requests)._",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "OrderV2",
                "properties": {
                  "address": {
                    "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/destination"
                  },
                  "customer": {
                    "$ref": "#/paths/~1v2~1orders/post/responses/200/content/application~1json/schema/properties/customer",
                    "description": "The customers details"
                  },
                  "fulfillment_type": {
                    "$ref": "#/paths/~1v1~1orders/post/requestBody/content/application~1json/schema/properties/fulfillment_type",
                    "description": "Either `delivery` (default) or `pickup`. Note: pickup orders are not yet supported.\n"
                  },
                  "quote_id": {
                    "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/id",
                    "description": "If a quote was created then use its Id to prevent validation errors"
                  },
                  "restaurant_id": {
                    "$ref": "#/paths/~1v1~1orders/post/requestBody/content/application~1json/schema/properties/restaurant_id"
                  },
                  "partner_fee_fractional": {
                    "$ref": "#/paths/~1v1~1orders/post/requestBody/content/application~1json/schema/properties/partner_fee_fractional",
                    "description": "The price of all fees charged to the customer in the currency's smallest subunit, e.g. pence for GBP. This information is required if Customer Support is managed by Deliveroo so customers can be accurately compensated.\n"
                  },
                  "items": {
                    "type": "array",
                    "description": "A list of items the customer wishes to order",
                    "items": {
                      "$ref": "#/paths/~1v2~1orders/post/responses/200/content/application~1json/schema/properties/items/items"
                    }
                  },
                  "scheduled_webhook_events": {
                    "$ref": "#/paths/~1v1~1orders/post/requestBody/content/application~1json/schema/properties/scheduled_webhook_events"
                  },
                  "test_webhooks": {
                    "$ref": "#/paths/~1v1~1orders/post/requestBody/content/application~1json/schema/properties/test_webhooks"
                  }
                },
                "required": [
                  "address",
                  "customer",
                  "restaurant_id",
                  "partner_fee_fractional",
                  "items"
                ]
              },
              "examples": {
                "Example": {
                  "value": {
                    "address": {
                      "city": "London",
                      "country_code": "GB",
                      "delivery_note": "Door bell is broken, please knock",
                      "door_code": "1234",
                      "line1": "1 Cousin Lane",
                      "line2": "1st Floor",
                      "postcode": "EC4 R3TE",
                      "lat": 51.513822,
                      "lon": -0.191615
                    },
                    "customer": {
                      "id": "customer-id-123",
                      "email": "foodlover@example.com",
                      "first_name": "Will",
                      "last_name": "Shu",
                      "phone_number": "+44123456789",
                      "preferred_name": "Willz",
                      "drinking_age_confirmed": true
                    },
                    "fulfillment_type": "delivery",
                    "quote_id": "_PZOvsivTiWhIk-sQt9wmA",
                    "restaurant_id": "0123-sushimania",
                    "partner_fee_fractional": 399,
                    "items": [
                      {
                        "id": "f81c8141-c9a9-4739-994e-c381d5317051",
                        "description": "Salmon sashimi",
                        "price_fractional": 699,
                        "quantity": 1,
                        "modifiers": [
                          {
                            "id": "3cd4f216-51b3-4e06-aaa1-06789b4509a1",
                            "description": "Extra soy sauce"
                          }
                        ]
                      }
                    ]
                  }
                },
                "With test webhooks": {
                  "value": {
                    "address": {
                      "city": "London",
                      "country_code": "GB",
                      "delivery_note": "Door bell is broken, please knock",
                      "door_code": "1234",
                      "line1": "1 Cousin Lane",
                      "line2": "1st Floor",
                      "postcode": "EC4 R3TE",
                      "lat": 51.513822,
                      "lon": -0.191615
                    },
                    "customer": {
                      "id": "customer-id-123",
                      "email": "foodlover@example.com",
                      "first_name": "Will",
                      "last_name": "Shu",
                      "phone_number": "+44123456789",
                      "preferred_name": "Willz",
                      "drinking_age_confirmed": true
                    },
                    "fulfillment_type": "delivery",
                    "quote_id": "_PZOvsivTiWhIk-sQt9wmA",
                    "restaurant_id": "0123-sushimania",
                    "partner_fee_fractional": 399,
                    "items": [
                      {
                        "id": "f81c8141-c9a9-4739-994e-c381d5317051",
                        "description": "Salmon sashimi",
                        "price_fractional": 699,
                        "quantity": 1,
                        "modifiers": [
                          {
                            "id": "3cd4f216-51b3-4e06-aaa1-06789b4509a1",
                            "description": "Extra soy sauce"
                          }
                        ]
                      }
                    ],
                    "test_webhooks": {
                      "accepted": "10s",
                      "rider_assigned": "20s",
                      "rider_arrived": "30s",
                      "rider_in_transit": "40s",
                      "rider_nearby": "50s",
                      "rider_confirmed_at_customer": "1m",
                      "delivered": "1m10s"
                    }
                  }
                },
                "With scheduled webhook events": {
                  "value": {
                    "address": {
                      "city": "London",
                      "country_code": "GB",
                      "delivery_note": "Door bell is broken, please knock",
                      "door_code": "1234",
                      "line1": "1 Cousin Lane",
                      "line2": "1st Floor",
                      "postcode": "EC4 R3TE",
                      "lat": 51.513822,
                      "lon": -0.191615
                    },
                    "customer": {
                      "id": "customer-id-123",
                      "email": "foodlover@example.com",
                      "first_name": "Will",
                      "last_name": "Shu",
                      "phone_number": "+44123456789",
                      "preferred_name": "Willz",
                      "drinking_age_confirmed": true
                    },
                    "fulfillment_type": "delivery",
                    "quote_id": "_PZOvsivTiWhIk-sQt9wmA",
                    "restaurant_id": "0123-sushimania",
                    "partner_fee_fractional": 399,
                    "items": [
                      {
                        "id": "f81c8141-c9a9-4739-994e-c381d5317051",
                        "description": "Salmon sashimi",
                        "price_fractional": 699,
                        "quantity": 1,
                        "modifiers": [
                          {
                            "id": "3cd4f216-51b3-4e06-aaa1-06789b4509a1",
                            "description": "Extra soy sauce"
                          }
                        ]
                      }
                    ],
                    "scheduled_webhook_events": [
                      {
                        "status": "rider_assigned",
                        "delay": "10s"
                      },
                      {
                        "status": "rider_unassigned",
                        "delay": "20s"
                      },
                      {
                        "status": "rider_assigned",
                        "delay": "30s"
                      }
                    ]
                  }
                }
              }
            }
          },
          "description": ""
        },
        "responses": {
          "200": {
            "description": "Order placed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Order unique ID.",
                      "type": "string",
                      "pattern": "^[a-z0-9-:]",
                      "example": "gb:93ab6499-1ab0-445f-b68b-5648ec132dea",
                      "title": "Order ID v2"
                    },
                    "created": {
                      "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/created"
                    },
                    "customer": {
                      "type": "object",
                      "description": "At least one of `first_name` and `last_name` must be provided.",
                      "examples": [],
                      "title": "Customer",
                      "properties": {
                        "id": {
                          "title": "CustomerID",
                          "type": "string",
                          "examples": [
                            "customer-id"
                          ],
                          "example": "customer-id-123",
                          "description": "External unique customer identifier, used to correlate orders from the same person."
                        },
                        "email": {
                          "type": "string",
                          "format": "email",
                          "example": "foodlover@example.com",
                          "description": "Customer email address."
                        },
                        "first_name": {
                          "type": "string",
                          "description": "Required if `last_name` is empty.",
                          "example": "Will"
                        },
                        "last_name": {
                          "type": "string",
                          "description": "Required if `first_name` is empty.",
                          "example": "Shu"
                        },
                        "phone_number": {
                          "description": "Customer phone number.",
                          "type": "string",
                          "pattern": "^\\+\\d{2}\\d+$",
                          "examples": [],
                          "example": "+44123456789"
                        },
                        "preferred_name": {
                          "type": "string",
                          "description": "Customer preferred name used to greet the customer. First name will be used if omitted.\n",
                          "example": "Willz"
                        },
                        "drinking_age_confirmed": {
                          "type": "boolean",
                          "description": "*Required if the order item has `contains_alcohol: true`*. Customer has confirmed they are able to show proof of age by valid ID to receive these items; otherwise they will not be delivered.\n"
                        }
                      },
                      "required": [
                        "id",
                        "phone_number"
                      ]
                    },
                    "destination": {
                      "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/destination"
                    },
                    "estimated_duration": {
                      "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/estimated_duration"
                    },
                    "estimated_rider_arrival_time": {
                      "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/estimated_rider_arrival_time"
                    },
                    "total_price": {
                      "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "description": "The unique ID for the menu item.\n",
                            "type": "string",
                            "examples": [],
                            "x-stoplight": {
                              "id": "6f9ab3d29775a"
                            },
                            "title": "UniqueID",
                            "pattern": "^[A-Za-z0-9-_]+$"
                          },
                          "description": {
                            "type": "string",
                            "description": "The menu item name.\n",
                            "minLength": 1
                          },
                          "price_fractional": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "quantity": {
                            "type": "integer",
                            "minimum": 1
                          },
                          "contains_alcohol": {
                            "type": "boolean"
                          },
                          "modifiers": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "description": "An array of modifiers to the current menu item.\n",
                              "properties": {
                                "id": {
                                  "$ref": "#/paths/~1v2~1orders/post/requestBody/content/application~1json/schema/properties/items/items/properties/id",
                                  "description": "The unique ID for the modifier.\n"
                                },
                                "description": {
                                  "type": "string",
                                  "description": "The modifier name.\n"
                                },
                                "parent_id": {
                                  "$ref": "#/paths/~1v2~1orders/post/requestBody/content/application~1json/schema/properties/items/items/properties/id",
                                  "description": "The ID of the item or modifier to which this modifier corresponds. If not provided, it will default to the parent item.\n"
                                }
                              },
                              "required": [
                                "id"
                              ],
                              "examples": [
                                {
                                  "id": "3cd4f216-51b3-4e06-aaa1-06789b4509a1",
                                  "description": "Extra soy sauce"
                                }
                              ]
                            }
                          }
                        },
                        "required": [
                          "id",
                          "description",
                          "price_fractional",
                          "quantity"
                        ],
                        "examples": [
                          {
                            "id": "f81c8141-c9a9-4739-994e-c381d5317051",
                            "description": "Salmon sashimi",
                            "price_fractional": 699,
                            "quantity": 1,
                            "modifiers": [
                              {
                                "id": "3cd4f216-51b3-4e06-aaa1-06789b4509a1",
                                "description": "Extra soy sauce"
                              }
                            ]
                          }
                        ]
                      }
                    },
                    "prepare_for": {
                      "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/created"
                    },
                    "restaurant": {
                      "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/restaurant"
                    },
                    "short_id": {
                      "type": "string",
                      "x-stoplight": {
                        "id": "54eed3d7cc70b"
                      },
                      "description": "Short ID provided by partner for this order.",
                      "example": "1337"
                    },
                    "status": {
                      "title": "OrderStatus",
                      "type": "string",
                      "enum": [
                        "pending",
                        "placed",
                        "accepted",
                        "rider_assigned",
                        "rider_arrived",
                        "rider_in_transit",
                        "rider_nearby",
                        "delivered",
                        "canceled",
                        "rejected",
                        "undeliverable"
                      ]
                    },
                    "status_logs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "$ref": "#/paths/~1v2~1orders/post/responses/200/content/application~1json/schema/properties/status"
                          },
                          "at": {
                            "type": "string",
                            "description": "Timestamp when the given event occurred.",
                            "format": "date-time"
                          }
                        }
                      }
                    },
                    "support_id": {
                      "$ref": "#/paths/~1v2~1orders/post/responses/200/content/application~1json/schema/properties/short_id"
                    },
                    "support_url": {
                      "title": "SupportURL",
                      "x-stoplight": {
                        "id": "j20akibvh56ij"
                      },
                      "type": "string",
                      "format": "uri",
                      "example": "https://partner-support.deliveroo.com?iid=XcE5LyznKGcoUz81N9RWZ&bid=sushi-supreme"
                    },
                    "updated": {
                      "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/created"
                    },
                    "partner_fee": {
                      "type": "object",
                      "properties": {
                        "currency_code": {
                          "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount/properties/currency_code"
                        },
                        "fractional": {
                          "type": "integer"
                        }
                      },
                      "examples": [
                        {
                          "currency_code": "GBP",
                          "fractional": 399
                        }
                      ]
                    },
                    "stacked_with": {
                      "description": "A list of order ids this order is stacked with",
                      "deprecated": true,
                      "title": "StackedWith",
                      "type": "array",
                      "format": "uri",
                      "items": {
                        "anyOf": [
                          {
                            "$ref": "#/paths/~1v1~1orders/post/responses/200/content/application~1json/schema/properties/id"
                          },
                          {
                            "$ref": "#/paths/~1v2~1orders/post/responses/200/content/application~1json/schema/properties/id"
                          }
                        ]
                      },
                      "examples": [
                        [
                          "8CcV4aWaWBx4qMPz1J8okt"
                        ]
                      ]
                    },
                    "webview_url": {
                      "title": "WebviewURL",
                      "x-stoplight": {
                        "id": "09i9q6mu164c4"
                      },
                      "type": "string",
                      "format": "uri",
                      "example": "https://partner-support.deliveroo.com/webview/ae6919f9-6fcb-4336-821c-663769b123aa"
                    },
                    "webview_map_url": {
                      "title": "WebviewMapURL",
                      "x-stoplight": {
                        "id": "rvde962wks4ht"
                      },
                      "type": "string",
                      "format": "uri",
                      "example": "https://partner-support.deliveroo.com/webview/ae6919f9-6fcb-4336-821c-663769b123aa?mapOnly=true"
                    }
                  }
                },
                "examples": {
                  "Order successfully created": {
                    "value": {
                      "id": "gb:93ab6499-1ab0-445f-b68b-5648ec132dea",
                      "created": "2022-10-27T14:39:19.583268373Z",
                      "customer": {
                        "id": "customer-id-123",
                        "email": "foodlover@example.com",
                        "first_name": "Will",
                        "last_name": "Shu",
                        "phone_number": "+44123456789",
                        "preferred_name": "Willz",
                        "drinking_age_confirmed": true
                      },
                      "destination": {
                        "city": "London",
                        "country_code": "GB",
                        "delivery_note": "Door bell is broken, please knock",
                        "door_code": "1234",
                        "line1": "1 Cousin Lane",
                        "line2": "1st Floor",
                        "postcode": "EC4 R3TE",
                        "lat": 51.513822,
                        "lon": -0.191615
                      },
                      "estimated_duration": {
                        "begin": "40m0s",
                        "end": "40m0s"
                      },
                      "estimated_rider_arrival_time": "40m0s",
                      "total_price": {
                        "currency_code": "GBP",
                        "fractional": 400
                      },
                      "items": [
                        {
                          "id": "f81c8141-c9a9-4739-994e-c381d5317051",
                          "description": "Salmon sashimi",
                          "price_fractional": 699,
                          "quantity": 1,
                          "modifiers": [
                            {
                              "id": "3cd4f216-51b3-4e06-aaa1-06789b4509a1",
                              "description": "Extra soy sauce"
                            }
                          ]
                        }
                      ],
                      "prepare_for": "2022-10-27T14:39:19.583268373Z",
                      "restaurant": {
                        "name": "Sushimania London Hackney",
                        "id": "0123-sushimania"
                      },
                      "short_id": "string",
                      "status": "placed",
                      "status_logs": [
                        {
                          "status": "pending",
                          "at": "2019-08-24T14:15:22Z"
                        }
                      ],
                      "support_id": "1337",
                      "support_url": "http://example.com",
                      "updated": "2022-10-27T14:39:19.583268373Z",
                      "partner_fee": {
                        "currency_code": "GBP",
                        "fractional": 400
                      },
                      "stacked_with": [
                        "string"
                      ],
                      "webview_url": "http://example.com",
                      "webview_map_url": "http://example.com"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "Closed - Bad Request": {
                    "value": {
                      "error": {
                        "code": "restaurant_closed",
                        "message": "restaurant is closed"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/paths/~1v2~1orders/post/responses/400/content/application~1json/schema"
                }
              }
            }
          }
        }
      }
    },
    "/v1/deliveroo/order-status": {
      "post": {
        "summary": "Order Status Callback",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "x-deliveroo-sequence-guid",
            "description": "Deliveroo Sequential globally unique identifier (GUID). Please implement it as case-insensitive.",
            "schema": {
              "type": "string"
            },
            "required": true,
            "example": "1499765769"
          },
          {
            "in": "header",
            "name": "x-deliveroo-hmac-sha256",
            "description": "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.",
            "schema": {
              "type": "string"
            },
            "required": true,
            "example": "cc28251639033853f1cd1f8bde5a75cefba53c7c991d2b0db848b6747e258678"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "order_id": {
                    "type": "string"
                  },
                  "restaurant_id": {
                    "type": "string"
                  },
                  "restaurant_brand_id": {
                    "type": "string"
                  },
                  "customer_id": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "title": "Status",
                    "enum": [
                      "pending",
                      "placed",
                      "accepted",
                      "confirmed",
                      "rejected",
                      "canceled",
                      "delivered"
                    ]
                  },
                  "status_log": {
                    "type": "array",
                    "items": {
                      "title": "Status Log Item",
                      "type": "object",
                      "properties": {
                        "at": {
                          "description": "Date and time in the ISO-8601 format when the order event changed.",
                          "type": "string"
                        },
                        "status": {
                          "allOf": [
                            {
                              "description": "Status of the order. Can be pending, placed, accepted, confirmed (for scheduled orders), rejected or canceled."
                            },
                            {
                              "$ref": "#/paths/~1v1~1deliveroo~1order-status/post/requestBody/content/application~1json/schema/properties/status"
                            }
                          ]
                        }
                      }
                    }
                  },
                  "credit_amount": {
                    "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount"
                  },
                  "refund_amount": {
                    "$ref": "#/paths/~1v1~1refund-notifications/post/requestBody/content/application~1json/schema/properties/amount"
                  },
                  "handover": {
                    "title": "HandoverVerification",
                    "x-stoplight": {
                      "id": "4qcdizud3c6pk"
                    },
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "example": "42"
                      },
                      "attempts": {
                        "type": "array",
                        "items": {
                          "title": "HandoverVerificationAttempt",
                          "x-stoplight": {
                            "id": "w7dyyryu8ha4e"
                          },
                          "type": "object",
                          "properties": {
                            "provided_code": {
                              "type": "string",
                              "example": "42"
                            },
                            "attempt_number": {
                              "type": "integer",
                              "example": 0
                            },
                            "is_correct": {
                              "type": "boolean"
                            }
                          }
                        }
                      }
                    },
                    "examples": [
                      {
                        "code": "42",
                        "attempts": [
                          {
                            "provided_code": "13",
                            "attempt_number": 0,
                            "is_correct": false
                          },
                          {
                            "provided_code": "98",
                            "attempt_number": 1,
                            "is_correct": false
                          },
                          {
                            "provided_code": "42",
                            "attempt_number": 2,
                            "is_correct": true
                          }
                        ]
                      }
                    ]
                  },
                  "delivered_place": {
                    "title": "DeliveredPlace",
                    "x-stoplight": {
                      "id": "s6km7con0xijb"
                    },
                    "type": "object",
                    "properties": {
                      "description": {
                        "type": "string",
                        "enum": [
                          "CONCIERGE",
                          "RECEPTION",
                          "NEIGHBOUR",
                          "DOORSTOP",
                          "FRONT_GARDEN",
                          "OTHER",
                          "UNDELIVERED",
                          "REBOUND"
                        ]
                      },
                      "note": {
                        "type": "string"
                      }
                    },
                    "description": "Will be passed only when rider had problems delivering the order."
                  },
                  "delivery_eta": {
                    "title": "OrderDeliveryEstimates",
                    "x-stoplight": {
                      "id": "940qlvixmfz17"
                    },
                    "type": "object",
                    "properties": {
                      "lower": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "upper": {
                        "type": "string",
                        "format": "date-time"
                      }
                    },
                    "description": "Provides an estimated delivery window for the order"
                  },
                  "resolution_time": {
                    "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/created"
                  },
                  "prepare_for": {
                    "$ref": "#/paths/~1v1~1quotes/post/responses/200/content/application~1json/schema/properties/created"
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "$ref": "#/paths/~1v2~1orders/post/responses/200/content/application~1json/schema/properties/items/items"
                    }
                  }
                }
              },
              "examples": {}
            }
          },
          "description": ""
        },
        "responses": {
          "200": {
            "description": "Your server returns this code if it accepts the callback."
          },
          "4XX": {
            "description": "Your server can return 4XX codes to signal its issues with the request."
          },
          "5XX": {
            "description": "Your server can return 5XX codes to signal its internal issues."
          }
        },
        "operationId": "signature-order-status",
        "description": "This webhook is called when an order changes status or when the `prepare_for` field has changed."
      }
    }
  },
  "components": {
    "securitySchemes": {
      "OAuth2-Production": {
        "type": "oauth2",
        "description": "OAuth for Production",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://auth.developers.deliveroo.com/oauth2/token",
            "scopes": {}
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2-Production": []
    }
  ]
}
```