
In airline distribution, showing a price is easy.
Guaranteeing that price is sellable is where real engineering begins.
Between search and booking, inventory shifts, fare bases expire, ancillaries change, and payment restrictions apply. For Online Travel Agencies (OTAs), protecting revenue and preventing booking failures requires more than just displaying flight options — it requires real-time validation.
The Flight Offers Pricing API (/v1/shopping/flight-offers/pricing) inside the Amadeus Quick Connect API is the commercial safeguard of the booking journey.
For CTOs and engineers building a Flight booking API for OTA platforms, this endpoint transforms an indicative flight offer into a validated, bookable transaction.
If Search is the digital storefront, Pricing is the financial checkpoint.
In essence, this Amadeus flight booking API ensures that a selected flight offer is still available and correctly priced before booking.
It enables your platform to:
Unlike Search, which provides indicative pricing, the Pricing API provides the final commercial truth before booking.
Within an Amadeus AQC API integration, the Flight Offers Pricing API establishes transactional integrity.
It determines:
Search informs the user.
Pricing protects the agency.
The integration follows a clean and controlled validation path:
1. Flight Selection
User selects an offer from Flight Offers Search.
2. Authentication
Backend uses Amadeus OAuth2 authentication.
3. Pricing Call
Backend sends the complete flight-offer object to:
POST /v1/shopping/flight-offers/pricing
4. Recalculation
Amadeus:
5. Validation Output
The updated offer becomes the authoritative input for booking.
Critical rule:
Never reconstruct the flight-offer manually.
Always reuse the exact JSON returned from Search.
1POST /v1/shopping/flight-offers/pricing
1. Call Flight Offers Search and Persist the Full Offer
Before calling the Pricing API, your backend must:
Critical Integrity Rules:
Do NOT:
The search response becomes the base commercial object.
Most OTA pricing failures happen because developers partially rebuild the offer.
2. Allow User to Select Ancillaries (If Applicable)
If the traveler selects:
You must enrich the offer using the additionalServices field under the correct travelerPricing.
Example – Add Checked Bag
Inside travelerPricings:
additionalServices
Example – Add Seat
additionalServices
Modification Rules:
You may modify ONLY:
You must NOT modify:
Ancillaries must always be attached to the correct traveler.
3. Add Payment Context (Recommended)
If your OTA supports:
Include a payments object with:
This enables:
Skipping this step may result in booking rejection later.
4. Authenticate Using OAuth2
Before calling Pricing:
Handle:
OAuth2 authentication is mandatory for every API call.
5. Send the Pricing Request
Endpoint:
1POST /v1/shopping/flight-offers/pricing
Request must include:
6) What Happens Inside Pricing (Commercial Revalidation)
Behind the scenes, the API performs:
This step converts an indicative offer into a sellable, commercially validated offer.
Search is informational.
Pricing is transactional validation.
7) Receive the Validated Pricing Response
The response includes:
Important:
The Pricing response becomes the authoritative commercial truth.
Never use Search totals after Pricing.
8) Handle Pricing Outcomes
Scenario A – Price Confirmed
Scenario B – Price Changed
Scenario C – Inventory Lost
Scenario D – Ancillary Unavailable
Pricing must always be repeatable and idempotent.
9) Persist the Priced Offer
After successful Pricing:
This exact priced offer must be used for booking.
Below is a simplified example used in professional Flight booking API for OTA implementations.
Sample Request (POST)
1{2 "data": {3 "type": "flight-offers-pricing",4 "flightOffers": [5 {6 "type": "flight-offer",7 "id": "125"8 }9 ],10 "payments": [11 {12 "brand": "VISA",13 "flightOfferIds": ["125"]14 }15 ]16 }17}
Sample Response
1{2 "data": {3 "flightOffers": [4 {5 "price": {6 "currency": "USD",7 "base": "4300.00",8 "total": "5463.96",9 "grandTotal": "5463.96"10 }11 }12 ],13 "bookingRequirements": {14 "emailAddressRequired": true,15 "mobilePhoneNumberRequired": true16 }17 }18}
In real production environments, the response contains:
Paid Bags and Seat Handling
Unlike some systems, ancillaries are embedded directly in the flight offer.
Example:
1"additionalServices": {2 "chargeableSeatNumber": "8A",3 "chargeableCheckedBags": {4 "quantity": 15 }6}
During pricing:
Final calculation:
Base Fare
+ Taxes
+ Paid Bags
+ Paid Seats
+ Payment Fees
----------------
= Grand Total
Free seat assignments are not priced or returned.
Pricing Integrity
Offer Consistency
Payment Validation
If working with LCC or card-restricted fares:
Ancillary Repricing
If a user modifies:
You must reprice before booking.
Search vs Pricing Discrepancy
Offer Expiry
Payment Brand Rejection
Ancillary Availability
The Flight Offers Pricing API is the commercial gatekeeper of the Amadeus Quick Connect ecosystem.
It ensures that every booking request:
For travel tech teams building scalable, enterprise-grade flight booking systems, mastering this endpoint is essential.
Search drives discovery.
Pricing ensures transactional integrity.
Together, they form the backbone of a reliable, revenue-protected OTA platform.
Yes. Pricing is mandatory to ensure the offer is still valid and sellable.
Search provides indicative pricing. Pricing recalculates against live airline inventory.
Technically possible, but not recommended. Production always requires Pricing.
The request may fail or produce inconsistent pricing. Never modify structural fields.
Yes. Seat availability and fare validity must still be confirmed.