Table of Contents

Flight Booking API Documentation

Overview

This API enables flight booking confirmation with full itinerary details, passenger information, and payment preparation. It returns PNR details, fare rules, and order status.


API Endpoint

  • URL: {{host}}/hub/flight/book
  • Method: POST
  • Content-Type: application/json

Headers

Key Value Description
Authorization Bearer {token} Access token (Required)
Content-Type application/json Request/Response format

Request Body

{
  "Type": "ROUND_TRIP",
  "Adults": 1,
  "Children": 0,
  "Infants": 0,
  "solutions": [
    {
      "provider": "flight.provider2.1A",
      "solutionId": "a81ade09f74200b6264a5b1391845a4a442b3e7b081702602581fbc1a6eeb71e+QgHAWyLWSGSeDu7w5Z7YCQ+c61e8dee-1213-40c4-af4f-e4fa267a7f81+++1A|a81ade09f74200b6264a5b1391845a4a442b3e7b081702602581fbc1a6eeb71e+QgHAWyLWSGSeDu7w5Z7YCQ+c61e8dee-1213-40c4-af4f-e4fa267a7f81+++1A",
      "requireEnrichment": false,
      "allowPayLater": true,
      "isNDC": false,
      "fare": {
        "adultFare": {
          "fare": 9698000,
          "tax": 8690000,
          "fee": 0,
          "currency": "VND",
          "discountAmount": 0,
          "count": 1,
          "total": 18388000,
          "point": 0,
          "totalPoint": 0
        },
        "childFare": {
          "fare": 0,
          "tax": 0,
          "fee": 0,
          "currency": "USD",
          "discountAmount": 0,
          "count": 0,
          "total": 0,
          "point": 0,
          "totalPoint": 0
        },
        "infantFare": {
          "fare": 0,
          "tax": 0,
          "fee": 0,
          "currency": "USD",
          "discountAmount": 0,
          "count": 0,
          "total": 0,
          "point": 0,
          "totalPoint": 0
        },
        "totalFare": 9698000,
        "totalTax": 8690000,
        "totalFee": 0,
        "totalPrice": 18388000,
        "totalDiscountAmount": 0,
        "totalPoint": 0
      },
      "flights": [
        {
          "sequence": 1,
          "flightDuration": 940,
          "travelDuration": 1280,
          "journeyId": "00000000-0000-0000-0000-000000000000",
          "segments": [
            {
              "segmentId": "1",
              "sequence": 1,
              "bookingCode": "B",
              "cabinClass": "ECONOMY",
              "available": 9,
              "departureCode": "HAN",
              "departureName": "Hanoi",
              "departureDate": "2025-11-07",
              "departureTime": "02:45",
              "departureTerminal": "2",
              "arrivalCode": "PVG",
              "arrivalName": "Shanghai",
              "arrivalDate": "2025-11-07",
              "arrivalTime": "06:45",
              "arrivalTerminal": "1",
              "airlines": "MU",
              "airlinesName": "CHINA EASTERN AIRLINES",
              "equipment": "73L",
              "flightNumber": "5076",
              "flightTime": 180,
              "stopTime": 340,
              "baggageRules": {
                "adults": [
                  {
                    "baggageAmount": "1PC",
                    "carryOnAmount": "1PC"
                  }
                ]
              },
              "miniRules": {},
              "fareBasis": "VSE00CSF"
            },
            {
              "segmentId": "2",
              "sequence": 2,
              "bookingCode": "V",
              "cabinClass": "ECONOMY",
              "available": 9,
              "departureCode": "PVG",
              "departureName": "Shanghai",
              "departureDate": "2025-11-07",
              "departureTime": "12:25",
              "departureTerminal": "1",
              "arrivalCode": "CDG",
              "arrivalName": "Paris",
              "arrivalDate": "2025-11-07",
              "arrivalTime": "18:05",
              "arrivalTerminal": "2E",
              "airlines": "MU",
              "airlinesName": "CHINA EASTERN AIRLINES",
              "equipment": "77W",
              "flightNumber": "569",
              "flightTime": 760,
              "stopTime": 0,
              "baggageRules": {
                "adults": [
                  {
                    "baggageAmount": "1PC",
                    "carryOnAmount": "1PC"
                  }
                ]
              },
              "miniRules": {},
              "fareBasis": "VSE00CSF"
            }
          ]
        },
        {
          "sequence": 2,
          "flightDuration": 895,
          "travelDuration": 1420,
          "journeyId": "00000000-0000-0000-0000-000000000000",
          "segments": [
            {
              "segmentId": "3",
              "sequence": 1,
              "bookingCode": "T",
              "cabinClass": "ECONOMY",
              "available": 9,
              "departureCode": "CDG",
              "departureName": "Paris",
              "departureDate": "2025-11-29",
              "departureTime": "20:05",
              "departureTerminal": "2E",
              "arrivalCode": "PVG",
              "arrivalName": "Shanghai",
              "arrivalDate": "2025-11-30",
              "arrivalTime": "14:20",
              "arrivalTerminal": "1",
              "airlines": "MU",
              "airlinesName": "CHINA EASTERN AIRLINES",
              "equipment": "77W",
              "flightNumber": "570",
              "flightTime": 675,
              "stopTime": 525,
              "baggageRules": {
                "adults": [
                  {
                    "baggageAmount": "1PC",
                    "carryOnAmount": "1PC"
                  }
                ]
              },
              "miniRules": {},
              "fareBasis": "TSE00CSF"
            },
            {
              "segmentId": "4",
              "sequence": 2,
              "bookingCode": "B",
              "cabinClass": "ECONOMY",
              "available": 9,
              "departureCode": "PVG",
              "departureName": "Shanghai",
              "departureDate": "2025-11-30",
              "departureTime": "23:05",
              "departureTerminal": "1",
              "arrivalCode": "HAN",
              "arrivalName": "Hanoi",
              "arrivalDate": "2025-12-01",
              "arrivalTime": "01:45",
              "arrivalTerminal": "2",
              "airlines": "MU",
              "airlinesName": "CHINA EASTERN AIRLINES",
              "equipment": "73L",
              "flightNumber": "5075",
              "flightTime": 220,
              "stopTime": 0,
              "baggageRules": {
                "adults": [
                  {
                    "baggageAmount": "1PC",
                    "carryOnAmount": "1PC"
                  }
                ]
              },
              "miniRules": {},
              "fareBasis": "TSE00CSF"
            }
          ]
        }
      ]
    }
  ],
  "passengers": [
    {
      "Index": 1,
      "FirstName": "NGUYEN",
      "LastName": "THAI VAN",
      "Gender": "M",
      "Type": 1,
      "Nationality": "VN",
      "IdNumber": "1231ASD",
      "IdType": "passport",
      "IdExpiryDate": "2030-11-28",
      "DependantIndex": -1,
      "IdIssuedCountry": "EG"
    }
  ],
  "ContactInfo": {
    "PhoneNumber": "0123456789",
    "Email": "van.nguyen@tripdata.vn",
    "CountryTelCode": "84",
    "Name": "Nguyen Thai Van"
  }
}

Request Body Description

The request body is a JSON object containing the following key-value pairs:

Field Type Required Description
Type String ✅ Yes The type of the trip. Example: "ROUND_TRIP"
Adults Integer ✅ Yes Number of adult passengers.
Children Integer ❌ No Number of child passengers. Defaults to 0 if not provided.
Infants Integer ❌ No Number of infant passengers. Defaults to 0 if not provided.
solutions Array ✅ Yes An array containing the selected flight solution. This array must contain exactly one object. See the solutions Array Structure.
ContactInfo Object ✅ Yes Contact information for the booking. See the ContactInfo Object Structure.
passengers Array ✅ Yes An array of passenger objects, each containing details for a single passenger. See the passengers Array Structure.
CallbackUrl String ❌ No (Optional) If provided, the system will use this URL to send booking order information to the client via HTTP callback after booking is processed.

CallbackUrl Usage

If the client includes the CallbackUrl field in the booking request payload, the system will perform an HTTP callback to the specified URL after the booking is completed. The callback payload will contain the order information for the booking. This allows the client to receive booking status and details asynchronously.


solutions Array Structure

The solutions array contains a single JSON object that represents the chosen flight solution for booking:

Field Type Required Description
provider String ✅ Yes The ID of the flight provider for this solution. Example: "flight.provider1"
solutionId String ✅ Yes A unique identifier for this particular flight solution. This ID is provided by the flight search API.
requireEnrichment Bool ✅ Yes Require enrich information for this flight solution.
If it's true, you must call Enrich API ({{host}}/hub/flight/enrich).
allowPayLater Bool ✅ Yes Allow to pay later.
isNDC Bool ✅ Yes Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel.
fare Object ✅ Yes Detailed fare information for this flight solution. See fare Object Structure.
flights Array ✅ Yes Array of objects detailing the flight legs. See flights Array Structure.

fare Object Structure

This object provides a detailed breakdown of the fare for the flight solution:

Field Type Required Description
adultFare Object ✅ Yes Contains fare breakdown specific to adult passengers. See the adultFare Object Structure below.
childFare Object ❌ No Contains fare breakdown specific to child passengers. Omitted if there are no child passengers. See the childFare Object Structure below.
infantFare Object ❌ No Contains fare breakdown specific to infant passengers. Omitted if there are no infant passengers. See the infantFare Object Structure below.
totalFare Number ✅ Yes The sum of the base fares for all passengers (excluding taxes and fees).
totalTax Number ✅ Yes The sum of the taxes for all passengers.
totalFee Number ✅ Yes The sum of the fees for all passengers.
totalPrice Number ✅ Yes The grand total price including base fare, taxes, and fees.
totalDiscountAmount Number ✅ Yes The sum of the discounts for all passengers.
totalPoint Number ✅ Yes The sum of the points for all passengers.

adultFare, childFare, infantFare Object Structure

These objects provide the specific fare breakdown for each passenger type:

Field Type Required Description
fare Number ✅ Yes The base fare for the passenger type.
tax Number ✅ Yes Taxes applicable to the passenger type.
fee Number ✅ Yes Fees applicable to the passenger type.
currency String ✅ Yes The currency code for the fare elements (e.g., "USD"). This is usually "USD" even when fareVND, taxVND, and feeVND are present.
discountAmount Number ✅ Yes The discount for the passenger type.
count Integer ✅ Yes The number of passengers of this type (e.g., 2 adults).
total Number ✅ Yes The total price for the passenger type (base (fare + taxes + fees) * count).
point Integer ✅ Yes Points of the voucher.
totalPoint Integer ✅ Yes The total points (point * count).

flights Array Structure

This array contains objects representing each leg of the flight itinerary.

Field Type Required Description
sequence Integer ✅ Yes Flight leg sequence. This number indicates the order of the flight leg within the itinerary. The sequence starts at 1 and increments for each subsequent flight leg in the itinerary.
flightDuration Integer ✅ Yes Total flight time in minutes for the entire leg.
travelDuration Integer ✅ Yes Total travel time in minutes for the entire leg (including layovers).
journeyId Guid ✅ Yes The journey object that groups all flight segments of a single trip.
segments Array ✅ Yes Array of flight segments. See segments Array Structure below.

segments Array Structure

Each object represents a flight segment:

Field Type Required Description
segmentId String ✅ Yes Unique identifier for the segment.
sequence Integer ✅ Yes Segment order within the leg.
bookingCode String ✅ Yes Fare class code (e.g., "X"). This code represents the specific fare class that applies to this flight segment. Contact the airline for decode the real meaning of bookingCode.
cabinClass String ✅ Yes Cabin class for the segment (e.g., "ECONOMY").
available Integer ✅ Yes Number of seats available in this class.
departureCode String ✅ Yes IATA departure airport code (e.g., "SGN").
departureName String ✅ Yes Departure airport name (e.g., "Ho Chi Minh City").
departureDate String ✅ Yes Departure date (YYYY-MM-DD) (e.g., "2025-06-20").
departureTime String ✅ Yes Departure time (HH:mm) (e.g., "12:50").
departureTerminal String ✅ Yes Departure terminal (e.g., "1").
arrivalCode String ✅ Yes IATA arrival airport code (e.g., "HAN").
arrivalName String ✅ Yes Arrival airport name (e.g., "Hanoi").
arrivalDate String ✅ Yes Arrival date (YYYY-MM-DD) (e.g., "2025-06-20").
arrivalTime String ✅ Yes Arrival time (HH:mm) (e.g., "15:00").
arrivalTerminal String ✅ Yes Arrival terminal (e.g., "1").
airlines String ✅ Yes 2-letter airline code (e.g., "QH").
airlinesName String ✅ Yes Airline name (e.g., "BAMBOO AIRWAYS").
equipment String ✅ Yes Aircraft type (e.g., "320").
flightNumber String ✅ Yes Flight number (e.g., "242").
flightTime Integer ✅ Yes Flight time in minutes.
stopTime Integer ✅ Yes Layover time in minutes (0 for direct flights).
baggageRules Object ✅ Yes Baggage rules for the segment. See baggageRules Structure below.
miniRules Object ✅ Yes Penalty rules for the segment. See miniRules Structure below.
fareBasis String ❌ No Indicates the fare basis code that defines the fare type and rules applied to the ticket.

baggageRules Structure

Field Type Description
adults Array Baggage rules for adults
children Array Baggage rules for children
infants Array Baggage rules for infants

Baggage Rule Object:

Field Type Example Description
baggageAmount String "0PC" Checked baggage allowance (e.g., "0PC" = 0 pieces)
baggageWeight String "8KG" Checked baggage weight limit (e.g., "7KG" = 7 kilograms)
carryOnAmount String "1PC" Cabin baggage allowance (e.g., "1PC" = 1 piece)
carryOnWeight String "7KG" Cabin baggage weight limit (e.g., "7KG" = 7 kilograms)

miniRules Structure

Field Type Description
adults Array Change/refund rules for adults
children Array Change/refund rules for children
infants Array Change/refund rules for infants

Rule Object:

Field Type Example Description
miniruleText String "example rule" The text rule.
miniruleHtml String " example html rule " The html rule.
penaltyType String "REFUND" Fee type (REFUND, REISSUE).
allowRefund String "NOT_ALLOWED" Indicates if a refund is allowed (ALLOW, NOT_ALLOWED).
situation String "BEFORE_DEPARTURE" When the penalty applies (BEFORE_DEPARTURE, AFTER_DEPARTURE).
noShowTime String "BEFORE" No-show timing relative to departure.
noShowTimeUnit String "H" Time unit for the no-show period.
amount Number 0.0 Fee amount.
currency String "USD" The currency code.
percent Number 0.0 Fee percentage of the base fare.
baseType String "FARE" Fee calculation base (FARE = total fare).

ContactInfo Object Structure

Field Type Required Description
Name String ✅ Yes Full name of the contact person.
PhoneNumber String ✅ Yes Phone number of the contact person.
Email String ✅ Yes Email address of the contact person.
CountryTryCode String ✅ Yes The international telephone code of the contact's phone number (e.g., "84" for Vietnam).

passengers Array Structure

This array specifies information about each passenger for whom the booking is being made.

Field Type Required Description
Index Integer ✅ Yes A unique number identifier for the passenger, starting from 1.
FirstName String ✅ Yes Passenger's first name.
LastName String ✅ Yes Passenger's last name.
Gender String ✅ Yes Passenger's gender. Possible values: "M" (Male), "F" (Female)
Type Integer ✅ Yes Passenger Type. Possible values: 1 (Adult), 2 (Child), 3 (Infant)
DateOfBirth String ✅ Yes Passenger's date of birth (YYYY-MM-DD).
Nationality String ✅ Yes Passenger's nationality (ISO 3166-1 alpha-2 country code, e.g., "VN" for Vietnam).
IdNumber String ✅ Yes Passenger's ID card or Passport number.
IdType String ✅ Yes Type of ID used. Possible values: "passport", "idcard" etc.
IdExpiryDate String ✅ Yes Expiry date of the ID (YYYY-MM-DD).
Ancillaries Object ❌ No A empty Object of ancillary services selected for this passenger.

Sample Response

{
  "id": "74f2c086-fb93-4dd9-8024-10f91573c1ed",
  "readableId": "FGVSO6",
  "isInternational": false,
  "orderBaseInfo": {
    "providerCode": "flight.provider2.1A",
    "providerReferenceId": "9beb90ec-edfcf9e5-9cd68787-90878787-878787",
    "status": "TO_BE_PAID",
    "statusIsFinal": false,
    "bookingType": "flight",
    "totalAmount": 18388000,
    "totalSalesAmount": 0,
    "totalOriginalAmount": 18388000,
    "totalPriceModifier": 0,
    "totalServiceFee": 0,
    "refundAmount": 0,
    "refundFee": 0,
    "currency": "VND",
    "convertionRate": 1,
    "type": "ROUND_TRIP",
    "pnr": "FGVSO6",
    "airlinePNR": "",
    "orderType": "O",
    "bookingCode": "B",
    "isNeedRebookPNR": false,
    "passengerCount": 1,
    "totalAmountAtHotel": 0,
    "refunded": false
  },
  "orderFlightInfo": {
    "id": "78da141d-d446-4e0e-8f51-52bd0614f10b",
    "orderId": "74f2c086-fb93-4dd9-8024-10f91573c1ed",
    "flightJourneys": [
      {
        "id": "541034fe-4bcb-4f31-14a9-08de1cde858d",
        "flightBookingInfoId": "78da141d-d446-4e0e-8f51-52bd0614f10b",
        "sequence": 1,
        "arrivalDate": "2025-11-07T00:00:00:0000",
        "arrivalTime": "18:05",
        "arrivalCode": "CDG",
        "arrivalName": "Paris",
        "departureDate": "2025-11-07T00:00:00:0000",
        "departureTime": "02:45",
        "departureCode": "HAN",
        "departureName": "Hanoi",
        "travelTime": 1280,
        "isNDC": false,
        "isChange": false,
        "pnrNumber": "FGVSO6",
        "status": "TO_BE_PAID",
        "fareHoldTime": "2025-11-07T16:59:00:0000",
        "flightSegments": [
          {
            "id": "83d41cd8-dfae-4104-9b02-1923d2f3b7ec",
            "flightJourneyId": "541034fe-4bcb-4f31-14a9-08de1cde858d",
            "sequence": 1,
            "airlinesCode": "MU",
            "airlinesName": "CHINA EASTERN AIRLINES",
            "arrivalCode": "PVG",
            "arrivalName": "Shanghai",
            "arrivalDate": "2025-11-07T00:00:00:0000",
            "arrivalTime": "06:45",
            "departureCode": "HAN",
            "departureName": "Hanoi",
            "departureDate": "2025-11-07T00:00:00:0000",
            "departureTime": "02:45",
            "bookingCode": "B",
            "cabinClass": "ECONOMY",
            "equipment": "73L",
            "flightNumber": "5076",
            "flightTime": 180,
            "departureTerminal": "2",
            "arrivalTerminal": "1",
            "codeShare": false,
            "stopTime": 340,
            "hasStop": true,
            "operatingFlightAirlinesName": "CHINA EASTERN AIRLINES",
            "operatingFlightNumber": "5076",
            "operatingFlightAirlinesCode": "MU",
            "baggageRules": {
              "adults": [
                {
                  "baggageAmount": "1PC",
                  "carryOnAmount": "1PC"
                }
              ],
              "children": [],
              "infants": []
            },
            "miniRules": {
              "adults": [],
              "children": [],
              "infants": []
            },
            "fareBasis": "VSE00CSF"
          },
          {
            "id": "60f5c9d7-870d-42d6-9e6f-5881b3817289",
            "flightJourneyId": "541034fe-4bcb-4f31-14a9-08de1cde858d",
            "sequence": 2,
            "airlinesCode": "MU",
            "airlinesName": "CHINA EASTERN AIRLINES",
            "arrivalCode": "CDG",
            "arrivalName": "Paris",
            "arrivalDate": "2025-11-07T00:00:00:0000",
            "arrivalTime": "18:05",
            "departureCode": "PVG",
            "departureName": "Shanghai",
            "departureDate": "2025-11-07T00:00:00:0000",
            "departureTime": "12:25",
            "bookingCode": "V",
            "cabinClass": "ECONOMY",
            "equipment": "77W",
            "flightNumber": "569",
            "flightTime": 760,
            "departureTerminal": "1",
            "arrivalTerminal": "2E",
            "codeShare": false,
            "stopTime": 0,
            "hasStop": false,
            "operatingFlightAirlinesName": "CHINA EASTERN AIRLINES",
            "operatingFlightNumber": "569",
            "operatingFlightAirlinesCode": "MU",
            "baggageRules": {
              "adults": [
                {
                  "baggageAmount": "1PC",
                  "carryOnAmount": "1PC"
                }
              ],
              "children": [],
              "infants": []
            },
            "miniRules": {
              "adults": [],
              "children": [],
              "infants": []
            },
            "fareBasis": "VSE00CSF"
          }
        ]
      },
      {
        "id": "a1dfa208-96f9-4aee-14aa-08de1cde858d",
        "flightBookingInfoId": "78da141d-d446-4e0e-8f51-52bd0614f10b",
        "sequence": 2,
        "arrivalDate": "2025-12-01T00:00:00:0000",
        "arrivalTime": "01:45",
        "arrivalCode": "HAN",
        "arrivalName": "Hanoi",
        "departureDate": "2025-11-29T00:00:00:0000",
        "departureTime": "20:05",
        "departureCode": "CDG",
        "departureName": "Paris",
        "travelTime": 1420,
        "isNDC": false,
        "isChange": false,
        "pnrNumber": "FGVSO6",
        "status": "TO_BE_PAID",
        "fareHoldTime": "2025-11-07T16:59:00:0000",
        "flightSegments": [
          {
            "id": "cadba6f8-bdf1-4e52-9939-fd9347985ed1",
            "flightJourneyId": "a1dfa208-96f9-4aee-14aa-08de1cde858d",
            "sequence": 1,
            "airlinesCode": "MU",
            "airlinesName": "CHINA EASTERN AIRLINES",
            "arrivalCode": "PVG",
            "arrivalName": "Shanghai",
            "arrivalDate": "2025-11-30T00:00:00:0000",
            "arrivalTime": "14:20",
            "departureCode": "CDG",
            "departureName": "Paris",
            "departureDate": "2025-11-29T00:00:00:0000",
            "departureTime": "20:05",
            "bookingCode": "T",
            "cabinClass": "ECONOMY",
            "equipment": "77W",
            "flightNumber": "570",
            "flightTime": 675,
            "departureTerminal": "2E",
            "arrivalTerminal": "1",
            "codeShare": false,
            "stopTime": 525,
            "hasStop": true,
            "operatingFlightAirlinesName": "CHINA EASTERN AIRLINES",
            "operatingFlightNumber": "570",
            "operatingFlightAirlinesCode": "MU",
            "baggageRules": {
              "adults": [
                {
                  "baggageAmount": "1PC",
                  "carryOnAmount": "1PC"
                }
              ],
              "children": [],
              "infants": []
            },
            "miniRules": {
              "adults": [],
              "children": [],
              "infants": []
            },
            "fareBasis": "TSE00CSF"
          },
          {
            "id": "fc76f1b5-95fb-41f8-b4fa-4ed6d2e0d93f",
            "flightJourneyId": "a1dfa208-96f9-4aee-14aa-08de1cde858d",
            "sequence": 2,
            "airlinesCode": "MU",
            "airlinesName": "CHINA EASTERN AIRLINES",
            "arrivalCode": "HAN",
            "arrivalName": "Hanoi",
            "arrivalDate": "2025-12-01T00:00:00:0000",
            "arrivalTime": "01:45",
            "departureCode": "PVG",
            "departureName": "Shanghai",
            "departureDate": "2025-11-30T00:00:00:0000",
            "departureTime": "23:05",
            "bookingCode": "B",
            "cabinClass": "ECONOMY",
            "equipment": "73L",
            "flightNumber": "5075",
            "flightTime": 220,
            "departureTerminal": "1",
            "arrivalTerminal": "2",
            "codeShare": false,
            "stopTime": 0,
            "hasStop": false,
            "operatingFlightAirlinesName": "CHINA EASTERN AIRLINES",
            "operatingFlightNumber": "5075",
            "operatingFlightAirlinesCode": "MU",
            "baggageRules": {
              "adults": [
                {
                  "baggageAmount": "1PC",
                  "carryOnAmount": "1PC"
                }
              ],
              "children": [],
              "infants": []
            },
            "miniRules": {
              "adults": [],
              "children": [],
              "infants": []
            },
            "fareBasis": "TSE00CSF"
          }
        ]
      }
    ]
  },
  "orderESimInfos": [],
  "passengers": [
    {
      "flightBookingId": "74f2c086-fb93-4dd9-8024-10f91573c1ed",
      "index": 1,
      "type": 1,
      "dependantIndex": -1,
      "idIssuedCountry": "EG",
      "idIssueDate": "0001-01-01T00:00:00:0000",
      "idExpiryDate": "2030-11-28T00:00:00:0000",
      "frequentFlyerNumbers": [],
      "ticketList": [],
      "ancillaries": [],
      "seats": [],
      "id": "3a6458d9-3031-4811-94c7-06c8ea45d282",
      "firstName": "NGUYEN",
      "lastName": "THAI VAN",
      "gender": "M",
      "dateOfBirth": "0001-01-01T00:00:00:0000",
      "nationality": "VN",
      "idNumber": "1231ASD",
      "idType": "passport",
      "updatedUtc": "2025-11-06T07:01:58:1166",
      "deleted": false
    }
  ],
  "contactInfo": {
    "id": "03bdbe65-013c-40ea-bf7c-ef01bcaf0f99",
    "name": "Nguyen Thai Van",
    "countryTelCode": "84",
    "phoneNumber": "0123456789",
    "email": "van.nguyen@tripdata.vn",
    "flightBookingId": "74f2c086-fb93-4dd9-8024-10f91573c1ed",
    "deleted": false
  },
  "priceInfo": {
    "id": "3e79e664-8c9b-428b-924e-5307cc8b0064",
    "orderId": "74f2c086-fb93-4dd9-8024-10f91573c1ed",
    "pricingType": 1,
    "couponId": "00000000-0000-0000-0000-000000000000",
    "itemType": 0,
    "passengerTotalAmount": 18388000,
    "ancillaryTotalAmount": 0,
    "seatTotalAmount": 0,
    "ticketFeeAmount": 0,
    "totalAmount": 18388000,
    "totalOriginalAmount": 18388000,
    "priceModifier": 0,
    "couponAmount": 0,
    "handlingFee": 0,
    "totalFare": 9698000,
    "convertionRate": 1,
    "totalServiceFee": 0,
    "currency": "VND",
    "totalTax": 0,
    "surcharges": 0,
    "amount": 9698000,
    "numberOfRooms": 1,
    "averagePerNightAmount": 0,
    "numberOfNights": 0,
    "priceDetails": [
      {
        "id": "cd37f332-8254-48c3-92d7-9d5ef3bab819",
        "priceInfoId": "3e79e664-8c9b-428b-924e-5307cc8b0064",
        "count": 1,
        "type": 1,
        "amount": 9698000,
        "originalAmount": 9698000,
        "priceModifier": 0,
        "serviceFee": 0,
        "tax": 8690000,
        "fee": 0,
        "totalAmount": 18388000,
        "averagePerNightAmount": 0,
        "taxAmount": 0,
        "numberOfNights": 0,
        "surcharges": 0,
        "discount": 0,
        "hotelPricePerNights": [],
        "taxes": [],
        "discounts": []
      }
    ],
    "createdBy": "van.nguyen@tripdata.vn",
    "createdUtc": "2025-11-06T07:01:58:0923",
    "updatedUtc": "2025-11-06T07:01:58:0901",
    "refundable": false,
    "hasBreakfast": false,
    "extraBed": false,
    "nonSmoking": false
  },
  "createdBy": "van.nguyen@tripdata.vn",
  "createdUtc": "2025-11-06T07:01:58:1033",
  "updatedBy": "van.nguyen@tripdata.vn",
  "updatedUtc": "2025-11-06T07:02:35:7343",
  "agentPath": "NV9999"
}

Response Field Description

The response is a JSON object containing information about the flight booking:

Field Type Description
id String Unique identifier for the booking (UUID). Example: "fe05e6cd-c3d9-4cb9-9546-3ae648f0b723"
readableId String The readable id.
isInternational Bool Indicates whether the flight is international.
orderBaseInfo Object Basic information about the order. See orderBaseInfo Object Structure.
orderFlightInfo Object Information about the flights in the order. See orderFlightInfo Object Structure.
passengers Array Array containing passenger information. See passengers Array Structure.
contactInfo Object Contact information for the booking. See contactInfo Object Structure.
priceInfo Object Detailed pricing information. See priceInfo Object Structure.
createdBy String Email address of the user who created the booking. Example: "thanh.nguyen1@tripdata.vn"
createdUtc String Date and time the booking was created (UTC, ISO 8601 format). Example: "2025-06-05T08:38:19:4900"
updatedBy String Email address of the user who last updated the booking. Example: "thanh.nguyen1@tripdata.vn"
updatedUtc String Date and time the booking was last updated (UTC, ISO 8601 format). Example: "2025-06-05T08:38:21:7477"
agentPath String Path or identifier of the agent.

orderBaseInfo Object Structure

Field Type Description
providerCode String ID of the flight provider. Example: "flight.provider1"
providerReferenceId String Provider's unique identifier for the booking. Example: "917491127052815601"
status String Current status of the booking. Example: "TO_BE_PAID". Possible values depend on the system's workflow.
statusIsFinal Boolean Indicates if the current status is a final state (e.g., true if booked successfully).
bookingType String Type of booking. Example: "flight"
totalAmount Number Total amount for the booking. Example: 148.74
totalSaleAmount Number Total sale amount for booking.
totalOriginalAmount Number The originally requested total amount for the booking. This can differ from totalAmount after a price change. Example: 148.74
totalPriceModifier Number Amount the total price was modified (e.g., with a coupon). Example: 0
totalServiceFee Number Total service fee for booking.
refundAmount Number Refund amount for booking.
refundFee Number Refund fee for booking.
currency String Currency code used for the booking. Example: "USD"
convertionRate Number Conversion rate from USD to VND. Example: 26244
type String Trip type. Example: "ROUND_TRIP"
pnr String Passenger Name Record (PNR) code for the booking. Example: "WC2A6H"
airlinePNR String Airline PNR code (if different from pnr). Example: "" (empty string if same as pnr)
orderType String Order type. Example: "O" (May represent a standard order).
bookingCode String Fare class code (e.g., "T"). Contact the airline for decode the real meaning of bookingCode. Example: "T"
isNeedRebookPNR Boolean Indicates if it's need to rebook PNR. Example: false
passengerCount Integer Total number of passengers in the booking. Example: 1
totalAmountAtHotel Number Total amount for hotel or any other. Example: 0
refunded Boolean Is refunded or not. Example:false

orderFlightInfo Object Structure

Field Type Description
id String Unique identifier for the flight information (UUID). Example: "cae6e870-6204-48c7-a008-e6459804e47f"
orderId String ID of the associated order (matches the top-level id field). Example: "fe05e6cd-c3d9-4cb9-9546-3ae648f0b723"
flightJourneys Array Array of flight journey objects, detailing each flight leg. See flightJourneys Array Structure.

flightJourneys Array Structure

Each object represents a leg of the flight itinerary:

Field Type Description
id String Unique identifier for this flight journey (UUID). Example: "2b2c6be2-7068-4fac-9098-4e6574ed6a66"
flightBookingInfoId String ID of the flight booking information (matches orderFlightInfo.id). Example: "cae6e870-6204-48c7-a008-e6459804e47f"
sequence Integer Sequence number of the flight journey (1, 2, ...). Starts from 1. Example: 1
arrivalDate String Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: "2025-07-08T00:00:00:0000"
arrivalTime String Arrival time (HH:mm). Example: "07:55"
arrivalCode String IATA code of the arrival airport. Example: "HAN"
arrivalName String Name of the arrival airport. Example: "Hanoi"
departureDate String Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: "2025-07-08T00:00:00:0000"
departureTime String Departure time (HH:mm). Example: "05:45"
departureCode String IATA code of the departure airport. Example: "SGN"
departureName String Name of the departure airport. Example: "Ho Chi Minh City"
travelTime Integer Total travel time in minutes. Example: 130
isNDC Bool Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel.
isChange Boolean Check if flight have change or not. Example: false
pnrNumber String The pnr number.
status String The status of journey.
fareHoldTime String The time can hold fare.
flightSegments Array Array of flight segment objects. See flightSegments Array Structure.
fare Object The detailed pricing and cost information for this journey. See Journey Fare Object Structure.

Journey Fare Object Structure

This object provides detailed pricing and cost information for a specific journey. The structure matches the sample fare model from booking/order response.

Field Type Description
id String Unique identifier for the fare info (UUID).
orderId String ID of the order this fare info belongs to.
couponId String ID of the coupon applied to the booking.
itemType Integer Type of item being priced (e.g., flight, ancillary, etc.).
passengerTotalAmount Number Total amount for all passengers in this journey.
ancillaryTotalAmount Number Total amount for ancillary services in this journey.
seatTotalAmount Number Total amount for seat reservations in this journey.
ticketFeeAmount Number Total amount for ticket issuance fees.
totalAmount Number The final total amount for the journey.
couponAmount Number Amount reduced due to coupons.
handlingFee Number Handling fee.
totalFare Number Total fare excluding tax and fee.
totalTax Number Total tax.
amount Number Total amount.
priceDetails Array Array of ticket price details. Each item includes a type field: 1 = Adult, 2 = Children, 3 = Infant.
createdBy String Creator of this fare info.
createdUtc String Created datetime.
updatedUtc String Updated datetime.
refundable Boolean Indicates if the journey is refundable.

Notes

  • The fare field is only present in each journey if the booking/order returns journey-level pricing.
  • The structure and fields are similar to the top-level priceInfo object, but scoped to the specific journey.
  • If journey-level pricing is not available, the fare field will be omitted or null.

Example

"flightJourneys": [
  {
    "id": "2b2c6be2-7068-4fac-9098-4e6574ed6a66",
    "sequence": 1,
    // ...existing fields...,
    "fare": {
        "id": "088b8ab3-f09c-4860-b9ee-39ef662d610a",
        "orderId": "bf20f9e9-f5f2-4587-9aa4-9bb746fd2e62",
        "flightJourneyId": "643d8c99-1656-452d-8442-03d29d186c31",
        "pricingType": 2,
        "couponId": "00000000-0000-0000-0000-000000000000",
        "itemType": 0,
        "passengerTotalAmount": 2128000.0,
        "ancillaryTotalAmount": 0.0,
        "seatTotalAmount": 0.0,
        "ticketFeeAmount": 0.0,
        "totalAmount": 2128000.0,
        "totalOriginalAmount": 2128000.0,
        "priceModifier": 0.0,
        "couponAmount": 0.0,
        "handlingFee": 0.0,
        "totalFare": 1419000.0,
        "convertionRate": 1.0,
        "totalTax": 0.0,
        "amount": 1419000.0,
        "priceDetails": [
            {
                "id": "74e9eb8d-7ec1-48a8-9705-62632225cf6d",
                "priceInfoId": "088b8ab3-f09c-4860-b9ee-39ef662d610a",
                "count": 1,
                "type": 1,
                "amount": 1419000.0,
                "originalAmount": 1419000.0,
                "priceModifier": 0.0,
                "tax": 709000.0,
                "fee": 0.0,
                "totalAmount": 2128000.0,
                "taxAmount": 0.0,
            }
        ],
        "createdBy": "694E6C9E-ED3C-43EB-A50F-389ADE398E85",
        "createdUtc": "0001-01-01T00:00:00:0000",
        "updatedUtc": "2025-07-15T19:43:08:7959",
    },
  }
]

flightSegments Array Structure

Each object represents a segment within a flight journey:

Field Type Description
id String Unique identifier for the flight segment (UUID). Example: "f95a2ce8-baa2-41c2-a9c6-543ecca78e4a"
flightJourneyId String ID of the flight journey this segment belongs to (matches flightJourneys.id). Example: "2b2c6be2-7068-4fac-9098-4e6574ed6a66"
sequence Integer Segment order within the leg (starting from 1). Example: 1
airlinesCode String 2-letter airline code. Example: "VU"
airlinesName String Airline name. Example: "VIETRAVEL AIRLINES"
arrivalCode String IATA arrival airport code. Example: "HAN"
arrivalName String Arrival airport name. Example: "Hanoi"
arrivalDate String Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: "2025-07-08T00:00:00:0000"
arrivalTime String Arrival time (HH:mm). Example: "07:55"
departureCode String IATA departure airport code. Example: "SGN"
departureName String Departure airport name. Example: "Ho Chi Minh City"
departureDate String Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: "2025-07-08T00:00:00:0000"
departureTime String Departure time (HH:mm). Example: "05:45"
bookingCode String Fare class code. Example: "T". Contact the airline to decode the real meaning of bookingCode.
cabinClass String Cabin class. Example: "ECONOMY"
equipment String Aircraft type. Example: "32S"
flightNumber String Flight number. Example: "750"
flightTime Integer Flight time in minutes. Example: 130
departureTerminal String Departure Terminal. Example: 1
arrivalTerminal String Arrival Terminal. Example: 1
codeShare Boolean Check if the the flights segments have code share,Example: false
stopTime Integer Layover time in minutes (0 for direct flights). Example: 0
hasStop Boolean hasStop check the the flights segments have stop,Example: false
operatingFlightAirlinesName String Name of the operating airline.
operatingFlightNumber String Flight number operated by the airline.
operatingFlightAirlinesCode String Airline code.
baggageRules Object Baggage allowance rules for the segment. See baggageRules Structure.
miniRules Object Rules regarding penalties, refunds, and reissues for the segment. See miniRules Structure.

baggageRules Structure

This object specifies baggage allowances for adults, children, and infants.

Field Type Description
adults Array Array of baggage rule objects for adults. See Baggage Rule Object.
children Array Array of baggage rule objects for children (if any).
infants Array Array of baggage rule objects for infants (if any).

Baggage Rule Object

Field Type Example Description
baggageAmount String "0PC" Checked baggage allowance (e.g., "0PC" = 0 pieces)
baggageWeight String "8KG" Checked baggage weight limit (e.g., "7KG" = 7 kilograms)
carryOnAmount String "1PC" Cabin baggage allowance (e.g., "1PC" = 1 piece)
carryOnWeight String "7KG" Cabin baggage weight limit (e.g., "7KG" = 7 kilograms)

miniRules Structure

Field Type Description
adults Array Array of penalty rule objects for adults. See Rule Object.
children Array Array of penalty rule objects for children (if any).
infants Array Array of penalty rule objects for infants (if any).

Rule Object

Field Type Example Description
miniruleText String "example rule" The text rule.
miniruleHtml String " example html rule " The html rule.
penaltyType String "REFUND" Fee type (REFUND, REISSUE).
allowRefund String "NOT_ALLOWED" Indicates if a refund is allowed (ALLOW, NOT_ALLOWED).
situation String "BEFORE_DEPARTURE" When the penalty applies (BEFORE_DEPARTURE, AFTER_DEPARTURE).
noShowTime String "BEFORE" No-show timing relative to departure.
noShowTimeUnit String "H" Time unit for the no-show period.
amount Number 0.0 Fee amount.
penaltyPercent Number 0.0 Fee percentage of the base fare.
baseType String "FARE" Fee calculation base (FARE = total fare).

ContactInfo Object Structure

Field Type Description
id String Unique identifier for contact (UUID). Example: "41b419aa-e9c0-4bc0-95f2-f1b9710dd578"
Name String Full name of the contact person. Example: "NGUYEN CONG THANH"
PhoneNumber String Phone number of the contact person. Example: "2929292929"
Email String Email address of the contact person. Example: "thanh.nguyen1@tripdata.vn"
CountryTelCode String International telephone code of the contact's phone number. Example: "84"
flightBookingId String Flight booking unique identification. Example:"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723"
deleted Boolean Check if contact info is deleted or not. Example:false

passengers Array Structure

This array specifies information about each passenger for whom the booking is being made.

Field Type Description
flightBookingId String Id of the flight booking unique. Example: "fe05e6cd-c3d9-4cb9-9546-3ae648f0b723"
index Integer A unique number identifier for the passenger, starting from 1. Example: "1"
type Integer Passenger Type. Possible values: 1 (Adult), 2 (Child), 3 (Infant) Example: "1"
idIssueDate String Unknow data. Example: "0001-01-01T00:00:00:0000"
idExpiryDate String Expiry date of the ID (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: "2026-08-19T00:00:00:0000"
ticketList Object List of ticket associated. Example:[]
ancillaries Object Object contains ancillary services. Example:[]
seats Array object contains passenger seats. Example:[]
id String unique passenger ID. Example: "785c1ff9-4b36-4cf8-9025-85ae5e345d60"
firstName String Passenger's first name. Example: "CONG THANH"
lastName String Passenger's last name. Example: "NGUYEN"
gender String Passenger's gender. Possible values: "M" (Male), "F" (Female). Example: "M"
dateOfBirth String Passenger's date of birth (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: "1993-08-19T00:00:00:0000"
nationality String Passenger's nationality (ISO 3166-1 alpha-2 country code). Example: "VN"
idNumber String Passenger's ID card or Passport number. Example: "123456789"
idType String Type of ID used. Possible values: "passport".Example: "passport"
updatedUtc String update time. Example: "2025-06-05T08:38:19:5033"
deleted Boolean check if it deleted or not. Example: false

priceInfo Object Structure

This object provides detailed pricing and cost information.

Field Type Description
id String Unique identifier for the price information (UUID). Example: "9fab6075-8b22-4e7d-aa1d-2813d6ecc2e9"
orderId String ID of the order this price information belongs to (matches the top-level id field). Example: "fe05e6cd-c3d9-4cb9-9546-3ae648f0b723"
pricingType Integer Type of pricing.
couponId String ID of the coupon applied to the booking. Example: "00000000-0000-0000-0000-000000000000" (all zeros indicates no coupon)
itemType Integer Type of item being priced (e.g., might represent a flight, ancillary service, etc.). Example: 0
passengerTotalAmount Number Total amount for all passengers. Example: 148.74
ancillaryTotalAmount Number Total amount for ancillary services. Example: 0
seatTotalAmount Number Total amount for seat reservations. Example: 0
ticketFeeAmount Number Total amount for ticket issuance fees. Example: 0
totalAmount Number The final total amount for the booking. Example: 148.74
couponAmount Number Amount reduced due to coupons. Example: 0
handlingFee Number Handling fee. Example: 0
totalFare Number Total Fare exclude tax and fee. Example: 92.48
convertionRate Number Conversion rate from USD to VND. Example: 26244
currency String Currency code for the amounts (e.g., "USD"). Example: "USD"
totalTax Number Total tax. Example: 0
surcharges Number More expense if have.
amount Number Total Amount
numberOfRooms Number Number of rooms for hotel information
averagePerNightAmount Number Per night amount.
numberOfNights Number Number of nights.
priceDetails Object Object contains ticket price details.
createdBy String Person create for these price. Example: "thanh.nguyen1@tripdata.vn"
createdUtc String Created Datetime . Example: "0001-01-01T00:00:00:0000"
updatedUtc String Update Datetime. Example: "2025-06-05T08:38:19:2970"
refundable Boolean Check this conditions or not.
hasBreakfast Boolean Check this if have breakfast or not.
extraBed Boolean check if have extra bed or not.
nonSmoking Boolean check non smoking or not