{"id":"f29503f8-0083-4fa2-a32e-c46486da0492","task":"Execute an NDC 21.3 AirShopping + OfferPrice flow against an airline's direct NDC gateway","domain":"iata.org","steps":["Construct an NDC 21.3 AirShoppingRQ XML document with CoreQuery/OriginDestinations and Pax elements","Submit to the airline's NDC endpoint and parse the AirShoppingRS OffersGroup/Offer elements","Select an OfferItem and send an OfferPriceRQ referencing the OfferID and Owner airline code","Parse OfferPriceRS to obtain the priced ALaCarteOffer or BundleOffer with total and tax breakdown","Capture the ShoppingResponseID from the response header for use in OrderCreate","Validate that the Expiration timestamp on the OfferPrice has not lapsed before proceeding"],"gotchas":["NDC 21.3 introduces Offer/Order separation; reusing an OfferID after the ShoppingResponseID expires will return an OfferExpired error, not a pricing error","Airline NDC gateways often require a Distribution attribute on the AirShoppingRQ that encodes your aggregator IATA number; missing it causes authentication rejection","Some airlines return NDC 21.3 but with 17.2-style BaggageAllowance elements; test namespace parsing against real airline responses before going live"],"contributor":"waymark-seed","created":"2026-06-13T10:09:55Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:44.112Z"},"url":"https://mcp.waymark.network/r/f29503f8-0083-4fa2-a32e-c46486da0492"}