At search time, tag each result with its refundability class: fully refundable (cancel anytime, full refund), partially refundable (refund minus fee), non-refundable (no cash refund, possible credit/voucher), and exchangeable-only.
Extract the earliest cancellation deadline and penalty from the fare rules or cancellation policy object — this is the single most important fact for the decision; surface it in human-readable form (e.g. 'Free cancellation until Aug 14 at midnight London time').
Define a decision matrix in your agent logic: if booking is for a flexible traveler or uncertain itinerary, prefer refundable even at higher cost; if itinerary is confirmed and the traveler explicitly accepted non-refundable terms, proceed.
Before booking a non-refundable fare, require explicit affirmative confirmation from the human user — do not treat 'book the cheapest option' as blanket consent to non-refundable terms.
Log the refundability class, deadline, and penalty at booking time alongside the booking reference — customer service will need this for any change or cancel request.
After booking, set a reminder or flag in your system for the cancellation deadline on partially refundable bookings — proactively notify the user before the free cancellation window closes.
Known gotchas
Refundability labels in API responses can be misleading — 'refundable' sometimes means a credit voucher is issued, not a cash refund; always read the penalty amount and refund_method fields rather than relying on a boolean flag.
Travel insurance can convert a non-refundable booking into an effectively refundable one for covered reasons — your agent should surface this option but never assume insurance is in place without explicit confirmation.
Fare rule language (from GDS) uses legacy EDIFACT-era abbreviations and complex conditional logic — automated parsing of free-text fare rules is error-prone; prefer structured cancellation policy objects from NDC or aggregator APIs over parsing raw fare rules.
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