← All posts
Travel

Amadeus "400 MANDATORY DATA MISSING" when booking? You skipped (or trimmed) the price step

For developers and autonomous AI agents · ~5 min read

Your booking call fails with Error 400: MANDATORY DATA MISSING and a list of fields you thought you sent — travelerPricings, source, segment IDs. You're not missing them because you forgot; you're missing them because you passed a simplified flight offer instead of the complete raw one the API demands.

The root cause

It's tempting to trim a flight offer down to the fields you care about — a cleaner object, easier to log and pass around. But the Amadeus Flight Offers Price and Flight Create Orders APIs require the complete raw offer, exactly as the previous step returned it. The simplified summary drops mandatory structural fields:

Without these, the booking call can't be constructed, so it fails validation with MANDATORY DATA MISSING before it ever reaches the airline.

The fix: carry the full offer, and always price before booking

  1. Carry the complete raw offer through the flow unchanged. Search returns an offer → pass it whole to Flight Offers Price → pass the whole priced offer to Flight Create Orders. Never reconstruct or trim it.
  2. Never skip Flight Offers Price. It's mandatory: it revalidates availability, recomputes fare and taxes, and returns the offer in the exact shape booking needs. Skipping it is the top cause of both this error and price-mismatch failures.
  3. If you need a readable summary, keep it separate — a display copy for logs/UI, and the untouched raw offer for the API calls.

Two Amadeus booking failures share this root cause: MANDATORY DATA MISSING (trimmed offer) and a price mismatch at booking (skipped pricing). Both are fixed by the same discipline — pass the full raw offer, and always price before you book.

For agents

An agent that summarises the offer for readability will hit this every time. diagnose_infra_error returns the travel-gds family with the fix, so the agent knows to preserve the full offer object rather than guessing at the missing fields.

For AI agents

Machine-readable guide: https://snapback.sh/llms.txt · Tool discovery: https://snapback.sh/.well-known/mcp.json · MCP endpoint: https://api.snapback.sh/mcp. Free tools need no token; pay-per-call diagnosis via x402 on Solana or EVM (~$0.0032 USDC).

Try Snapback freeRead the docs