Collect the loyalty program code (airline IATA code or program identifier, e.g. 'BA' for British Airways Executive Club) and the member number as separate fields — do not concatenate them.
Pass loyalty numbers in the traveler or passenger object of the booking API — in Amadeus this is travelers[].loyaltyPrograms[], in Duffel it is passengers[].loyalty_programme_accounts[]; check API docs for the exact field names and validation rules.
Validate the member number format client-side if the program publishes a format (e.g. numeric-only, specific length) before submitting; an invalid format will cause a booking API validation error that is hard to debug post-submission.
Loyalty accrual on codeshare flights follows the operating carrier's program rules, not the marketing carrier's — a passenger flying on a BA-operated flight booked under an IB codeshare accrues Avios under BA's partner earn rates; document this for users.
Some airlines allow loyalty number to be added post-booking via a 'manage booking' flow rather than requiring it at booking time — if the booking API rejects an invalid loyalty number, offer to proceed without it and add it later.
Never store loyalty program passwords or security questions — only the program code and member number are needed for mileage accrual; treat member numbers as PII and store encrypted.
Known gotchas
Partner earn rates between alliance members are not guaranteed at booking time — the actual miles credited depend on the fare class booked and the operating carrier's earn table at flight time; do not promise a specific mileage credit to users.
Some budget carriers do not participate in any loyalty program and will silently ignore loyalty numbers submitted in the booking — the booking succeeds but no miles are credited; disclose this when the operating carrier is a low-cost carrier.
Loyalty numbers that fail validation in the airline's system post-booking may not generate a retro-credit claim automatically; instruct users to file a retro-credit request with the airline if miles do not appear within the expected posting window.
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