Determine the display currency (what the user sees) vs the settlement currency (what is actually charged) early in the flow — these may differ, especially when booking across borders.
Most travel APIs return prices in a base currency defined by the content source (e.g. Amadeus returns in the currency of the point-of-sale or the fare currency); request the user's preferred display currency explicitly if the API supports it, otherwise convert client-side.
Use a reliable FX rate source (e.g. European Central Bank daily rates, Open Exchange Rates) for display conversion; clearly label converted prices as 'approximate' and show the base currency price too for transparency.
At checkout, pass the settlement currency to the payment processor — do not pass a display-converted amount; let the payment processor or the API handle the definitive currency conversion to avoid double-conversion errors.
Store the booked price in both the API's returned currency and the user's display currency with the exchange rate and timestamp — you will need this for refund calculations and customer service.
Be aware that airline ticket prices are often filed in USD internally (especially IATA BSP settlements) and converted to local currency by the GDS — a small rounding difference between displayed price and charged price is normal and should be disclosed.
Known gotchas
Dynamic currency conversion (DCC) at payment — where a non-local card is charged in its home currency by the merchant — is almost always worse for the customer than paying in the local currency; never enable DCC by default in a travel payment flow.
Tax amounts in travel bookings are often currency-locked (e.g. airport taxes filed in local currency) — converting them with a display FX rate can produce totals that do not match the actual charge; always use the API's returned total as the authoritative amount.
Some travel APIs return amounts as strings (e.g. '1234.50') and some as integers in minor units (e.g. 123450 for $1234.50); check the API spec carefully to avoid off-by-100 pricing errors.
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