Retrieve the existing order via GET /air/orders/{order_id} to confirm its current status and identify whether change or cancellation is available based on the slices and conditions fields
For a change: call POST /air/order_change_requests with the order_id and desired new slice parameters to get a list of repriced change offers
Review the order change offers for any change penalties and total cost, select the best offer, and confirm it via POST /air/order_change_confirmations
For a cancellation: call POST /air/order_cancellations with the order_id to create a cancellation object, review the refund_to and refund_amount fields, then confirm via POST /air/order_cancellations/{id}/actions/confirm
Monitor the resulting order or cancellation object status via webhook or polling; for refunds, track the refund_to field to determine whether the refund goes to original payment or a Duffel travel credit
Known gotchas
Duffel change and cancellation availability depends entirely on the airline's fare rules surfaced in the order — always check the available_actions array on the order before presenting change/cancel options to the user
Confirming an order change or cancellation is irreversible; present the fee and refund amount to the user for explicit approval before calling the confirm action
Refunds may be credited to the original payment source or as airline credit depending on the carrier and fare; do not promise a cash refund without inspecting the refund_to field
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