In the travel industry, there are typically three main steps: searching for flight availability, checking the price, and creating the booking. Within the booking creation process, there are usually two options: confirming the booking or holding the booking.

In the travel industry, this is the typical workflow: first, we search for a flight and cache the results for a set duration (usually n minutes) to reduce API costs and improve performance. After that, we verify the current price of the flight to check whether it has changed. If everything is in order—meaning the flight is still available and the price is acceptable—we proceed to the booking step.
In the booking process, there are two flows: hold and confirm. In the hold flow, a PNR (Passenger Name Record) is generated, but the booking is not yet confirmed. This PNR can be manually verified through the portal or via API before generating the final ticket. In the confirm flow, the ticket is issued immediately upon booking.
You can create your own API by using the free Amadeus API available on their portal. It's a limited quota API you get 2000 hits per month and for authentication there is another API from where you can create an access token that Is valid for 30. Download Amadeus Postman Collection for Better Clarity
✈️ Amadeus Flight Booking API Integration Flow
Amadeus provides a suite of RESTful APIs to enable flight search, pricing, booking, and optional services like fare upsells. Below is an overview of the key APIs involved in the end-to-end flight booking process:
🔍 1. Flight Offers Search API
Endpoint:
GET /v2/shopping/flight-offers
Function:
Search for available flight offers based on various criteria such as origin, destination, travel dates, passenger details, multicity options, nearby airports, and many other parameters supported by the API. You can also search for flights within a flexible time window of ±3 days from a specified date.
Find Amadeus Search Request Response
Use Case:
Initial flight search shown to users on your frontend UI.
💰 2. Flight Offers Price API
Endpoint:
POST /v1/shopping/flight-offers/pricing
Function:
Validates and recalculates the total price of a selected flight offer before booking, ensuring the price is still accurate and available.
Use Case:
Run this immediately before creating a booking to ensure price accuracy.
Find Amadeus Price Check Response.
🛫 3. Flight Create Orders API
Endpoint:
POST /v1/booking/flight-orders
Function:
Creates a booking (also called a flight order) using the validated offer. This can be used in two modes:
- Confirm Mode: Immediately issues a ticket.
- Hold Mode: Creates a PNR with a "ticketing pending" status.
Use Case:
Finalize the booking by confirming or holding the flight.
📥 4. Fare Upsell API (Optional)
Endpoint:
POST /v1/shopping/flight-offers/upsell
Function:
Retrieves better or enhanced flight options (e.g., higher fare classes, additional services) based on a selected offer.
Use Case:
Show upsell options like more baggage, better seat selection, or business class upgrade before booking.
✅ Confirm Booking Flow
There’s no separate endpoint named “Confirm Booking API” — it is handled within the Flight Create Orders API.
To confirm a booking:
- Use the POST /v1/booking/flight-orders endpoint.
- Ensure that the selected flight offer is priced and available.
- The API will return a confirmed booking with a ticket issued if successful.
To hold a booking instead:
- You need to include special parameters to request a delayed ticket issuance.
- In Amadeus, this is known as “ticketing on hold” (usually with "ticketingAgreement": "DELAY_TO_CONFIRM" in the request body).
If you want to integrate Amadeus, I’m here to help!
I have in-depth experience with the integration process and have worked extensively with all three major GDS systems — Amadeus, Travelport, and Sabre. I’ve also integrated various NDC (New Distribution Capability) versions.
With over 1.5 years of experience in the travel domain, I’ve successfully integrated almost every major supplier API during my journey. If anyone needs assistance, I’m more than happy to help you out!
If you need a Postman collection or help optimizing the structure of travel API responses, feel free to reach out!
Whether you're looking to understand technical terms like GDS, NDC, fare rules, or branded fares — I’ve got you covered. I have a strong understanding of APIs and how to present travel data effectively on the frontend.
📩 You can contact me at info@codewithdeepak.in — I’m happy to help!