Skip to main content

Flight Booking Endpoints

Direct flight-only booking operations. These create and manage a PNR without going through the shared cart.

:::tip Which flow should I use? For a normal customer purchase use Checkout → Checkout Confirm. That path creates the booking, handles payment, issues confirmation email and gives you one booking number shared with any other products in the cart.

Use make-order only when you need a flight-only booking outside the unified cart. Note it routes FlightRoute solutions through the Fliggy booking path, so it is not a drop-in replacement for all three providers. :::

All endpoints share the standard headers:

HeaderValueRequiredDescription
Partner-Access-TokenBase64 StringYesYour encrypted AES-256 time-sensitive token.
X-CurrencyCurrency CodeOptionalDisplay currency.
Accept-LanguageLanguage CodeOptionale.g. en, th, my.
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Make Order​

Creates the booking (PNR) directly with the provider.

  • Endpoint: /api/v1/flights/bookings/make-order
  • Method: POST
  • Rate limit: 10 requests per minute.

Payload Parameters​

ParameterTypeRequiredDescription
solution_idStringYesThe session_id returned by Pricing.
trip_typeStringYes1 One Way, 2 Round Trip, 3 Multi City.
contact_first_nameStringYesContact person first name.
contact_last_nameStringYesContact person last name.
contact_emailStringYesValid email address.
contact_mobile_country_codeStringOptionalDial code, digits only, e.g. 66.
contact_mobile_phone_numberStringOptionalDigits only.
is_mm_nationalityBooleanOptionalMyanmar-national fare flag. Default false.
passengersArrayYesAt least one passenger. See below.
is_b2bBooleanOptionalDefault true.
user_idStringOptionalEnd-user identifier.
payment_methodStringOptionalDefault pay_later.
payment_optionStringOptionalDefault pay_later.

Passenger Object​

ParameterTypeRequiredDescription
first_nameStringYesAs printed in the travel document.
last_nameStringYesAs printed in the travel document.
birth_dateStringYesY-m-d.
typeStringYesadult, child or infant.
genderStringYesmale or female.
nationality_codeStringYes2-letter country code, e.g. TH.
document_typeStringYespassport or nrc.
document_numberStringYesFormat is validated — see below.
document_issue_place_codeStringYes2-letter country code.
document_expire_dateStringConditionalY-m-d. Required when document_type is passport.
mobile_country_codeStringOptionalDigits only.
mobile_phone_numberStringOptionalDigits only.
ancillaryObjectOptional{ "ancillary_id": "...", "session_id": "..." }. Both keys required together.
ancillariesObject/ArrayOptionalMultiple add-ons. See Ancillary.
selected_seatsArrayOptionalSee Seat Map.
seat_numberStringOptionalLegacy single-seat form.

Document number formats​

document_typePatternExample
passport5–15 alphanumeric charactersAB1234567
nrcMyanmar NRC format1/AhGaYa(N)123456

Sample Payload​

{
"solution_id": "HITIT_67f4c0a91e2b8d3a5c60f7b4",
"trip_type": "1",
"contact_first_name": "Alex",
"contact_last_name": "Doe",
"contact_email": "buyer@example.com",
"contact_mobile_country_code": "66",
"contact_mobile_phone_number": "800000001",
"passengers": [
{
"first_name": "John",
"last_name": "Doe",
"birth_date": "1990-05-14",
"type": "adult",
"gender": "male",
"nationality_code": "TH",
"document_type": "passport",
"document_number": "AB1234567",
"document_issue_place_code": "TH",
"document_expire_date": "2030-01-31",
"mobile_country_code": "66",
"mobile_phone_number": "800000000"
}
],
"payment_method": "pay_later",
"payment_option": "pay_later"
}

Sample Response​

{
"result": 1,
"message": "success",
"data": {
"booking_number": "650E23E81BFC54D8",
"pnr_code": "XY7Z2Q"
}
}

Issue Ticket​

Issues the ticket for an existing PNR.

  • Endpoint: /api/v1/flights/bookings/{booking_number}/issue-ticket
  • Method: POST
ParameterTypeRequiredDescription
booking_numberString (path)YesBooking number returned by make-order or checkout confirm.

The provider is resolved automatically from the booking number.


Cancel Booking​

Cancels an un-ticketed flight booking with the provider.

  • Endpoint: /api/v1/flights/bookings/cancel
  • Method: POST
ParameterTypeRequiredDescription
order_numberStringYesThe flight booking number.
out_order_numberStringOptionalExternal reference.
{
"order_number": "650E23E81BFC54D8"
}

Refund Booking​

Requests a refund for a ticketed booking.

  • Endpoint: /api/v1/flights/bookings/refund
  • Method: POST
ParameterTypeRequiredDescription
booking_numberStringYesThe flight booking number.
refund_type_idIntegerYesSee the refund type table below.
remarkStringOptionalFree-text reason.
file_attachmentsArrayOptionalSupporting documents.

Refund types​

ValueDescription
2Voluntary — the traveller changed or cancelled their plan.
5Involuntary — airline-caused (delay, cancellation, schedule change).
6Involuntary — health reasons, with a hospital certificate.

Attachments are not mandatory but materially improve the success rate of involuntary refunds.

Refunds are supported for Fliggy and Hitit bookings.


Change Detail​

Fetches rebooking options for a segment.

  • Endpoint: /api/v1/flights/bookings/change-detail
  • Method: GET
ParameterTypeRequiredDescription
order_numberString (query)YesThe flight booking number.
segment_indexInteger (query)YesIndex of the segment to change.

Supported for Fliggy bookings only. Hitit returns Change detail not supported for this provider.


Next Step​

For the recommended purchase path, see Checkout.