When an airline-initiated cancellation AIC event is received for an order, confirm the cancellation is total (all slices cancelled) rather than partial; retrieve the order to verify.
Initiate a Duffel order cancellation via POST /air/order_cancellations with the order_id; inspect the refund_to field options in the response — typically original_form_of_payment or airline_credits.
If the passenger opts for a voucher rather than a cash refund, request the cancellation with refund_to set to airline_credits (where supported by the airline); retrieve the credit shell details from the resulting order_cancellation object.
Map the airline credit shell value (amount and currency) to your voucher issuance system; create a voucher record in your database with the airline_credit reference, expiry, and any carrier-specific redemption rules.
Surface the voucher code to the passenger in the cancellation confirmation email; include the expiry date and the carrier's rules for redemption (typically via the airline's own booking channel).
For cash refunds, confirm that Duffel has triggered the refund to the original payment method; monitor for the refund to settle and notify the passenger with the expected credit timeline per the card network.
Known gotchas
Airline credit shells issued by Duffel are carrier-specific and can typically only be redeemed directly with the airline, not on Duffel — clearly communicate this limitation to the passenger to avoid confusion at rebooking time.
Not all airlines support the airline_credits refund_to option via Duffel — check the airline's capabilities in the Duffel Airlines API response before offering it as an option; fall back to original_form_of_payment if unsupported.
Airline credit shell expiry rules vary: some expire 12 months from the original travel date, others from the date of cancellation — always surface the specific expiry from the cancellation response rather than applying a default rule.
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