POST the full, unmodified FlightOffer object (from the search step) to /v1/shopping/flight-offers/pricing; include x-payment-type header if required and set include=bags,detailed-fare-rules as query params to get ancillary and fare rule data.
The pricing response returns a new FlightOffer with an updated price — treat this as the authoritative price; the search price is indicative only.
Check that flightOffers[0].price.grandTotal matches your expected amount and review fareDetailsBySegment for any fare basis codes or restrictions that affect the booking decision.
Build the order payload: POST to /v1/booking/flight-orders with the priced FlightOffer plus travelers[] array containing firstName, lastName, dateOfBirth, gender, contact.emailAddress, contact.phones[], and documents[] (passport info for international).
On success (HTTP 201) you receive an order object with id (the Amadeus booking reference) and associatedRecords[] which contains the airline PNR (the GDS or airline locator your passenger needs at the airport).
In test, use Amadeus-provided test traveler data; the test environment will reject bookings with random names or invalid passport numbers, returning a 400 with an error code in errors[].
Known gotchas
The priced offer is only valid for a short window (often a few minutes); if you delay between pricing and order creation, the price may change or the offer may expire, returning a 400 OFFER_EXPIRED error — you must re-price before retrying.
Test and production use separate credentials and separate base URLs; a token issued against the test endpoint will be rejected by the production endpoint.
associatedRecords[].reference is the airline PNR — store it separately from the Amadeus order id; passengers and airport staff look up bookings by PNR, not by Amadeus internal id.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp