---
title: "Create a booking order of specific flight"
method: POST
path: "/booking/orders"
tags: ["Booking"]
---

# Create a booking order of specific flight

`POST /booking/orders`

An `OrderResponse` containing the booking `Order` with an unique `orderId` will be returned along with `totalAmount` in particular `currency`, given an booking `Order` including the `checkId` previously returned, and information of `Customer` and information of each `Passenger`.

An optional `extended` map of `key:value` pairs can be used to assoicate certain custom data with this particular request for future tracking.

> For example, it is recommended to pass a client side order ID to this `extended` map, so later when a response is returned it is convenient to identify the corresponding order at client side.

## Request body

- Order
  - `orderId` string — UUID
  - `createdAt` string, date-time — Creation date/time of the booking order in ISO 8601 format (UTC)
  - `currency` string — 3-letter currency code in ISO 4217 format
  - `totalAmount` number — Total price amount of all passengers for the flight, including tax and miscellaneous fees.
  - `checkId` string, required — UUID
  - `customer` Customer, required — Customer information, including contact information for booking order related issues
    - `firstName` string
    - `lastName` string
    - `phoneCountryCode` string — Country calling code defined by ITU, starting with international dialing prefix `+`
    - `phoneNumber` string — Phone number including area code without any punctuation
    - `email` string
  - `passengers` Passenger[], required
    - `firstName` string
    - `lastName` string
    - `type` 'ADT' | 'CHD' | 'INF' — - Adult - Child - Infant
    - `birthday` string, date — Passenger birthday in `YYYY-MM-DD` format
    - `gender` 'F' | 'M'
    - `travelDocument` TravelDocument — Passenger travel document
      - `type` 'DRIVER_LICENSE' | 'NATIONAL_ID' | 'PASSPORT' — Type of travel document
      - `number` string — Travel document number
      - `expiryDate` string, date — Travel document expiry date in `YYYY-MM-DD` format
      - `placeOfIssue` string — Place (e.g. country, province, city) where the travel document was issued
  - `extended` Extended — Extended data from client side to associate. This is useful for storing some information later needs to be retrieved, such as client side order ID. The data is in form of `key:value` pairs. All data will be returned in response.

## Response `200`

OK
> This is an `OrderResponse` containing the `Order` with a unique `orderId` that can be referred to when obtaining `OrderStatus`.

- OrderResponse
  - `message` string — message returned by server side if there is any

## Other responses

- `400` — Bad Request > Check if anything incorrect or missing in the given `Order`. See `message` for any error message.

## Changes

- **2021-11-12** `c3e56ec8db70` — 1 info
  - endpoint added
- **2021-07-20** `704267da2188` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/newpathfly/apis/virtual-interlining-api/changes/booking/orders/post.md)

---

[API](https://skmtc.dev/newpathfly/apis/virtual-interlining-api.md) · [All operations](https://skmtc.dev/newpathfly/apis/virtual-interlining-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/newpathfly/virtual-interlining-api/revisions/5e3990fa16fa/schema)
