---
title: "Create an order of specific flight"
method: POST
path: "/orders"
tags: ["Orders"]
---

# Create an order of specific flight

`POST /orders`

Given information of specific `flights`, `customer` and `passengers`, an order with an unique `orderId` will be returned along with `totalAmount` in particular `currency`.

An optional map of `key:value` pairs can be passed to `extended`, to assoicate certain custom data with this particular order for future tracking. For example, it is recommended to pass a client side order ID to this `extended` map, so later when an order is returned it is convenient to identify the corresponding order at client side.

## Request body

- Order
  - `orderId` string
  - `createdAt` string, date-time — Creation date/time of the 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.
  - `flights` Flight[], required — A one-way trip consists of one flight. A round-trip consists of two flights going forth and back between two places.
    - `segments` Segment[] — A flight consists of one or more segments. For example, a direct flight from Toronto (YYZ) to London (LON) is a flight consists of exactly one flight segment.
      - `fareClass` 'Economy' | 'PremiumEconomy' | 'Business' | 'First' | 'All' — This is the fare class, which is one of `Economy`, `PremiumEconomy`, `Business`, `First` and `All`, where `All` means query for all fare classes.
      - `depDate` string — This is the departure date in `YYYYMMDD` format.
      - `depTime` string — This is the departure time in `HH:mm` format.
      - `depAirport` string — This is the departure airport specified using its IATA code.
      - `arrDate` string — This is the arrival date in `YYYYMMDD` format.
      - `arrTime` string — This is the arrival time in `HH:mm` format.
      - `arrAirport` string — This is the arrival airport specified using its IATA code.
      - `flightNo` string — This is the flight number starting with carrier IATA code.
      - `carrier` string — This is the 2-letter IATA carrier code
  - `customer` Customer, required — Customer information, including contact information for 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` object — Extended data from client side to associate with this particular order. 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 upon getting a order.

## Response `200`

OK

- Order
  - `orderId` string
  - `createdAt` string, date-time — Creation date/time of the 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.
  - `flights` Flight[], required — A one-way trip consists of one flight. A round-trip consists of two flights going forth and back between two places.
    - `segments` Segment[] — A flight consists of one or more segments. For example, a direct flight from Toronto (YYZ) to London (LON) is a flight consists of exactly one flight segment.
      - `fareClass` 'Economy' | 'PremiumEconomy' | 'Business' | 'First' | 'All' — This is the fare class, which is one of `Economy`, `PremiumEconomy`, `Business`, `First` and `All`, where `All` means query for all fare classes.
      - `depDate` string — This is the departure date in `YYYYMMDD` format.
      - `depTime` string — This is the departure time in `HH:mm` format.
      - `depAirport` string — This is the departure airport specified using its IATA code.
      - `arrDate` string — This is the arrival date in `YYYYMMDD` format.
      - `arrTime` string — This is the arrival time in `HH:mm` format.
      - `arrAirport` string — This is the arrival airport specified using its IATA code.
      - `flightNo` string — This is the flight number starting with carrier IATA code.
      - `carrier` string — This is the 2-letter IATA carrier code
  - `customer` Customer, required — Customer information, including contact information for 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` object — Extended data from client side to associate with this particular order. 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 upon getting a order.

## Other responses

- `400` — Bad Request

## Changes

- **2021-07-20** `704267da2188` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/newpathfly/apis/virtual-interlining-api/changes/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/704267da2188/schema)
