---
title: "Order ready for preparation (async)"
method: POST
path: "/order-ready-for-preparation-async"
tags: ["Order Webhooks", "publicly-accessible"]
---

# Order ready for preparation (async)

`POST /order-ready-for-preparation-async`

This webhook will be invoked when we have determined that an order is ready for preparation. Upon receiving the request, you should perform any preparation-related activities, such as sending the order to the POS system / kitchen screen.
**NOTE:** This version of the webhook is asynchronous, and we expect a response in two parts:
  1. We expect an immediate `202` response from this webhook to denote that you have received the request;
  2. Following that, we expect an [async callback](#section/Async-Webhooks) - indicating either success or failure of the operation. The body for the async callbacks are as below:
  
  **Success callback**
  ```
  {
        "status": "Success",
        "message": "Order successfully sent to POS",
        "data": {}
  }
  ```
  **Failure callback**
  ```
  {
        "status": "Failure",
        "message": "{errorMessage}",   // e.g. "The POS is currently in use"
        "data": {}
  }
  ```

## Request body

- OrderReadyForPreparation
  - `Currency` string
  - `Customer` object
    - `Id` string
    - `Name` string
  - `CustomerNotes` object
  - `Fulfilment` object
    - `Address` object
      - `City` string
      - `Geolocation` Location — GeoLocation object containing latitude and longitude values.
        - `Accuracy` number, double — This should represent the accuracy of driver's location.
        - `Heading` number, double — This should represent the degree of heading direction, for example, 0 is north, 90 is east.
        - `Latitude` number, double, required — This should represent the latitude of the driver's location.
        - `Longitude` number, double, required — This should represent the longitude of the driver's location.
        - `Speed` number, double — This should represent the travel speed of the driver.
      - `Lines` string[]
      - `PostalCode` string
    - `CustomerDueAsap` boolean
    - `CustomerDueDate` string, date-time
    - `Method` 'Delivery' | 'Collection'
    - `PhoneNumber` string
    - `PreparationTime` string, timespan
    - `PrepareFor` string, date-time
  - `IsTest` boolean
  - `Items` ItemV2[]
    - `Items` ItemV2[]
    - `Name` string
    - `Quantity` integer
    - `Reference` string
    - `UnitPrice` integer
  - `OrderId` string
  - `Payment` object
    - `Lines` object[]
      - `Paid` boolean
      - `Type` 'card' | 'cash' | 'credit' | 'other'
      - `Value` number
  - `PlacedDate` string, date-time
  - `PriceBreakdown` object
    - `Discount` number
    - `Fees` object
      - `Delivery` number
      - `Other` number
      - `ServiceCharge` number
    - `Items` number
    - `Taxes` number
    - `Tips` number
  - `Restaurant` object
    - `Address` object
      - `City` string
      - `Geolocation` Location — GeoLocation object containing latitude and longitude values.
        - `Accuracy` number, double — This should represent the accuracy of driver's location.
        - `Heading` number, double — This should represent the degree of heading direction, for example, 0 is north, 90 is east.
        - `Latitude` number, double, required — This should represent the latitude of the driver's location.
        - `Longitude` number, double, required — This should represent the longitude of the driver's location.
        - `Speed` number, double — This should represent the travel speed of the driver.
      - `Lines` string[]
      - `PostalCode` string
    - `Id` string
    - `Name` string
    - `PhoneNumber` string
    - `Reference` string
  - `TotalPrice` number

## Response `202`

Upon successful receipt of this event, a `202` status code should be returned, indicating the request has been accepted. You should then later respond with the result of processing this request, via the [callback URL](#section/Async-Webhooks) endpoint.

## Other responses

- `400` — Should the initial validation of the order fail, return a `400` status code. NOTE: In this instance we do not also expect a failure callback via the async callback URL.

---

[API](https://skmtc.net/justeat/apis/just-eat.md) · [All operations](https://skmtc.net/justeat/apis/just-eat/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/justeat/just-eat/versions/49ff8eb806d9/schema)
