Skip to content
BreezePro docs

AirShopping

IATA_AirShoppingRQ searches for flight offers and returns an IATA_AirShoppingRS. It is the XML counterpart of the JSON create offers flow.

POST /ndc/{version}/AirShopping with version one of v21.3, v24.1, v25.4, or v26.2.

AirShopping requires a bearer token from Authentication. Full transaction (book) permissions are not required.

Request > FlightRequest > FlightRequestOriginDestinationsCriteria must include at least one OriginDestCriteria with origin, destination, and departure date. Request > PaxList must include at least one passenger.

Supported request options include:

  • one or more origin-destination criteria, in travel-date order. A city-only code (one where no airport shares the code) in origin or destination automatically searches that metro’s airports; offers carry their real airports.

  • passenger types ADT, CHD, and INF

  • CabinType (one or more) on each OriginDestCriteria to filter by cabin. CabinTypeCode is a PADIS codeset-9873 numeric code: 1 First, 2 Business, 4 Premium Economy, 5 Economy. Each CabinType entry may carry a PrefLevel/PrefLevelCode:

    • Required (default when PrefLevel is absent) — only offers whose cabin matches one of the required codes are returned.
    • Preferred — prefers offers in those cabins; falls back to all offers when nothing matches.
    • Exclude — drops any offer whose cabin matches one of the excluded codes.

    To search for No Flex or Nice, use Economy (5); for Nicer, use Premium Economy (4); for Nicest, use Business (2).

  • ResponseParameters > CurParameter > CurCode for currency — USD only for now (see payments)

<?xml version="1.0" encoding="utf-8"?>
<IATA_AirShoppingRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersMessage">
<DistributionChain>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>1</Ordinal>
<OrgRole>Seller</OrgRole>
<ParticipatingOrg>
<Name>NDC Travel Agency</Name>
<OrgID>10123456</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
</DistributionChain>
<PayloadAttributes>
<VersionNumber xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">21.3</VersionNumber>
</PayloadAttributes>
<Request>
<FlightRequest xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<FlightRequestOriginDestinationsCriteria>
<OriginDestCriteria>
<DestArrivalCriteria>
<IATA_LocationCode>CHS</IATA_LocationCode>
</DestArrivalCriteria>
<OriginDepCriteria>
<Date>2026-05-12</Date>
<IATA_LocationCode>TPA</IATA_LocationCode>
</OriginDepCriteria>
</OriginDestCriteria>
<OriginDestCriteria>
<DestArrivalCriteria>
<IATA_LocationCode>TPA</IATA_LocationCode>
</DestArrivalCriteria>
<OriginDepCriteria>
<Date>2026-05-19</Date>
<IATA_LocationCode>CHS</IATA_LocationCode>
</OriginDepCriteria>
</OriginDestCriteria>
</FlightRequestOriginDestinationsCriteria>
</FlightRequest>
<PaxList xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Pax>
<PaxID>ADT0</PaxID>
<PTC>ADT</PTC>
</Pax>
<Pax>
<PaxID>ADT1</PaxID>
<PTC>ADT</PTC>
</Pax>
<Pax>
<PaxID>CHD2</PaxID>
<PTC>CHD</PTC>
</Pax>
<Pax>
<PaxID>CHD3</PaxID>
<PTC>CHD</PTC>
</Pax>
</PaxList>
<ResponseParameters xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<CurParameter>
<CurCode>USD</CurCode>
</CurParameter>
</ResponseParameters>
</Request>
</IATA_AirShoppingRQ>
<?xml version="1.0" encoding="utf-8"?>
<IATA_AirShoppingRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersMessage">
<DistributionChain>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>1</Ordinal>
<OrgRole>Seller</OrgRole>
<ParticipatingOrg>
<Name>NDC Travel Agency</Name>
<OrgID>10123456</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
</DistributionChain>
<PayloadAttributes>
<VersionNumber xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">21.3</VersionNumber>
</PayloadAttributes>
<Request>
<FlightRequest xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<FlightRequestOriginDestinationsCriteria>
<OriginDestCriteria>
<DestArrivalCriteria>
<IATA_LocationCode>CHS</IATA_LocationCode>
</DestArrivalCriteria>
<OriginDepCriteria>
<Date>2026-05-12</Date>
<IATA_LocationCode>TPA</IATA_LocationCode>
</OriginDepCriteria>
</OriginDestCriteria>
<OriginDestCriteria>
<DestArrivalCriteria>
<IATA_LocationCode>TPA</IATA_LocationCode>
</DestArrivalCriteria>
<OriginDepCriteria>
<Date>2026-05-19</Date>
<IATA_LocationCode>CHS</IATA_LocationCode>
</OriginDepCriteria>
</OriginDestCriteria>
</FlightRequestOriginDestinationsCriteria>
</FlightRequest>
<PaxList xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Pax>
<PaxID>ADT0</PaxID>
<PTC>ADT</PTC>
</Pax>
<Pax>
<PaxID>ADT1</PaxID>
<PTC>ADT</PTC>
</Pax>
</PaxList>
<ResponseParameters xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<CurParameter>
<CurCode>USD</CurCode>
</CurParameter>
</ResponseParameters>
</Request>
</IATA_AirShoppingRQ>

An Offer is either a plain fare or a branded bundle. Bundles add PriceClassRefID and Fee to the price, and each included ancillary shows up as its own Service block referencing ServiceDefinitionList. Ancillary ServiceIDs are prefixed SVC-BD (bundle-defined); a plain fare’s single Service references the PaxJourney directly and is prefixed SVC-FL (flight-level).

No PriceClassRefID, no Fee, one SVC-FL service tied to the journey.

<Offer>
<OfferID>OF-base-fare</OfferID>
<OfferItem>
<FareDetail>
<FareComponent>
<PaxSegmentRefID>SEG-outbound</PaxSegmentRefID>
</FareComponent>
<PaxRefID>PX1</PaxRefID>
</FareDetail>
<OfferItemID>OFI-OF-base-fare-0</OfferItemID>
<Price>
<BaseAmount CurCode="USD">18.23</BaseAmount>
<TaxSummary>
<TotalTaxAmount CurCode="USD">30.77</TotalTaxAmount>
</TaxSummary>
<TotalAmount CurCode="USD">49</TotalAmount>
</Price>
<Service>
<OfferServiceAssociation>
<PaxJourneyRef>
<PaxJourneyRefID>JOU-outbound</PaxJourneyRefID>
</PaxJourneyRef>
</OfferServiceAssociation>
<PaxRefID>PX1</PaxRefID>
<ServiceID>SVC-FL-OF-base-fare-0</ServiceID>
</Service>
</OfferItem>
<TotalPrice>
<BaseAmount CurCode="USD">18.23</BaseAmount>
<TaxSummary>
<TotalTaxAmount CurCode="USD">30.77</TotalTaxAmount>
</TaxSummary>
<TotalAmount CurCode="USD">49</TotalAmount>
</TotalPrice>
</Offer>

PriceClassRefID + Fee added to the price, one SVC-BD service per bundled ancillary.

<Offer>
<OfferID>OF-branded-fare</OfferID>
<OfferItem>
<FareDetail>
<FareComponent>
<PaxSegmentRefID>SEG-outbound</PaxSegmentRefID>
<PriceClassRefID>BZU</PriceClassRefID>
</FareComponent>
<PaxRefID>PX1</PaxRefID>
</FareDetail>
<OfferItemID>OFI-OF-branded-fare-0</OfferItemID>
<Price>
<BaseAmount CurCode="USD">18.23</BaseAmount>
<Fee>
<Amount CurCode="USD">65</Amount>
<DesigText>BUNDLE:BZU</DesigText>
</Fee>
<TaxSummary>
<TotalTaxAmount CurCode="USD">30.77</TotalTaxAmount>
</TaxSummary>
<TotalAmount CurCode="USD">114</TotalAmount>
</Price>
<Service>
<OfferServiceAssociation>
<ServiceDefinitionRef>
<ServiceDefinitionRefID>SD-BD-BZU-COB</ServiceDefinitionRefID>
</ServiceDefinitionRef>
</OfferServiceAssociation>
<PaxRefID>PX1</PaxRefID>
<ServiceID>SVC-BD-OF-branded-fare-COB</ServiceID>
</Service>
<Service>
<OfferServiceAssociation>
<ServiceDefinitionRef>
<ServiceDefinitionRefID>SD-BD-BZU-PRTY</ServiceDefinitionRefID>
</ServiceDefinitionRef>
</OfferServiceAssociation>
<PaxRefID>PX1</PaxRefID>
<ServiceID>SVC-BD-OF-branded-fare-PRTY</ServiceID>
</Service>
<Service>
<OfferServiceAssociation>
<ServiceDefinitionRef>
<ServiceDefinitionRefID>SD-BD-BZU-CB1</ServiceDefinitionRefID>
</ServiceDefinitionRef>
</OfferServiceAssociation>
<PaxRefID>PX1</PaxRefID>
<ServiceID>SVC-BD-OF-branded-fare-CB1</ServiceID>
</Service>
<Service>
<OfferServiceAssociation>
<ServiceDefinitionRef>
<ServiceDefinitionRefID>SD-BD-BZU-WIFI</ServiceDefinitionRefID>
</ServiceDefinitionRef>
</OfferServiceAssociation>
<PaxRefID>PX1</PaxRefID>
<ServiceID>SVC-BD-OF-branded-fare-WIFI</ServiceID>
</Service>
</OfferItem>
<TotalPrice>
<BaseAmount CurCode="USD">18.23</BaseAmount>
<Fee>
<Amount CurCode="USD">65</Amount>
<DesigText>BUNDLE:BZU</DesigText>
</Fee>
<TaxSummary>
<TotalTaxAmount CurCode="USD">30.77</TotalTaxAmount>
</TaxSummary>
<TotalAmount CurCode="USD">114</TotalAmount>
</TotalPrice>
</Offer>

Same shape as the branded bundle, higher tier: more ancillaries, higher fee.

<Offer>
<OfferID>OF-premium-fare</OfferID>
<OfferItem>
<FareDetail>
<FareComponent>
<PaxSegmentRefID>SEG-outbound</PaxSegmentRefID>
<PriceClassRefID>AZU</PriceClassRefID>
</FareComponent>
<PaxRefID>PX1</PaxRefID>
</FareDetail>
<OfferItemID>OFI-OF-premium-fare-0</OfferItemID>
<Price>
<BaseAmount CurCode="USD">18.23</BaseAmount>
<Fee>
<Amount CurCode="USD">109</Amount>
<DesigText>BUNDLE:AZU</DesigText>
</Fee>
<TaxSummary>
<TotalTaxAmount CurCode="USD">30.77</TotalTaxAmount>
</TaxSummary>
<TotalAmount CurCode="USD">158</TotalAmount>
</Price>
<Service>
<OfferServiceAssociation>
<ServiceDefinitionRef>
<ServiceDefinitionRefID>SD-BD-AZU-COB</ServiceDefinitionRefID>
</ServiceDefinitionRef>
</OfferServiceAssociation>
<PaxRefID>PX1</PaxRefID>
<ServiceID>SVC-BD-OF-premium-fare-COB</ServiceID>
</Service>
<Service>
<OfferServiceAssociation>
<ServiceDefinitionRef>
<ServiceDefinitionRefID>SD-BD-AZU-CB1</ServiceDefinitionRefID>
</ServiceDefinitionRef>
</OfferServiceAssociation>
<PaxRefID>PX1</PaxRefID>
<ServiceID>SVC-BD-OF-premium-fare-CB1</ServiceID>
</Service>
<Service>
<OfferServiceAssociation>
<ServiceDefinitionRef>
<ServiceDefinitionRefID>SD-BD-AZU-CB2</ServiceDefinitionRefID>
</ServiceDefinitionRef>
</OfferServiceAssociation>
<PaxRefID>PX1</PaxRefID>
<ServiceID>SVC-BD-OF-premium-fare-CB2</ServiceID>
</Service>
<Service>
<OfferServiceAssociation>
<ServiceDefinitionRef>
<ServiceDefinitionRefID>SD-BD-AZU-WIFI</ServiceDefinitionRefID>
</ServiceDefinitionRef>
</OfferServiceAssociation>
<PaxRefID>PX1</PaxRefID>
<ServiceID>SVC-BD-OF-premium-fare-WIFI</ServiceID>
</Service>
<Service>
<OfferServiceAssociation>
<ServiceDefinitionRef>
<ServiceDefinitionRefID>SD-BD-AZU-BZBY</ServiceDefinitionRefID>
</ServiceDefinitionRef>
</OfferServiceAssociation>
<PaxRefID>PX1</PaxRefID>
<ServiceID>SVC-BD-OF-premium-fare-BZBY</ServiceID>
</Service>
</OfferItem>
<TotalPrice>
<BaseAmount CurCode="USD">18.23</BaseAmount>
<Fee>
<Amount CurCode="USD">109</Amount>
<DesigText>BUNDLE:AZU</DesigText>
</Fee>
<TaxSummary>
<TotalTaxAmount CurCode="USD">30.77</TotalTaxAmount>
</TaxSummary>
<TotalAmount CurCode="USD">158</TotalAmount>
</TotalPrice>
</Offer>
CodeHTTP statusCause
ERR-1000400Malformed XML.
ERR-1002404Unsupported version segment in the path.
ERR-1003400Missing required element.
ERR-1004400Invalid field value, unsupported passenger type, invalid cabin code, duplicate passenger ID, unsupported currency, or two criteria that search the same airports on the same date.
ERR-1006422Invalid origin or destination.
ERR-3008409The seller’s contracted fare for this market has not completed pricing verification.
ERR-7003422Infants exceed adults.
ERR-8000401Missing or invalid API key or bearer token.
ERR-8001403API key not authorized for this request.
ERR-8002503Authentication store unavailable.
ERR-9002503Offer cache unavailable.
ERR-2002500Availability processing failed.