SeatAvailability
IATA_SeatAvailabilityRQ returns the seat map and priced, selectable seats for a cached offer or an existing order. It is the XML counterpart of the JSON offer ancillaries and order ancillaries seat endpoints.
POST /ndc/{version}/SeatAvailability with version one of v21.3, v24.1, v25.4, or v26.2.
Post-booking, seats follow the quote-then-change pattern: SeatAvailability with an OrderID → OrderChange accepting the returned OFI-ST-* offer items.
Request
Section titled “Request”SeatAvailCoreRequest takes either an OfferRequest (pre-booking, referencing an AirShopping or OfferPrice offer) or an OrderRequest (post-booking, referencing the order ID / record locator).
For an offer
Section titled “For an offer”<?xml version="1.0" encoding="UTF-8"?><IATA_SeatAvailabilityRQ 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> <OrgID>BZ</OrgID> </ParticipatingOrg> </DistributionChainLink> <DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes"> <Ordinal>2</Ordinal> <OrgRole>Carrier</OrgRole> <ParticipatingOrg> <OrgID>MX</OrgID> </ParticipatingOrg> </DistributionChainLink> </DistributionChain> <Request> <Pax xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes"> <PaxID>ADT-1</PaxID> <PTC>ADT</PTC> </Pax> <SeatAvailCoreRequest xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes"> <OfferRequest> <Offer> <OfferID>OF-25a8bea9-89f5-41ea-98be-25340131a18b</OfferID> <OfferItem> <OfferItemID>OFI-25a8bea9-89f5-41ea-98be-25340131a18b-0</OfferItemID> <PaxRefID>ADT-1</PaxRefID> </OfferItem> <OwnerCode>MX</OwnerCode> </Offer> </OfferRequest> </SeatAvailCoreRequest> </Request></IATA_SeatAvailabilityRQ>For an existing order
Section titled “For an existing order”<?xml version="1.0" encoding="UTF-8"?><IATA_SeatAvailabilityRQ 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> <OrgID>BZ</OrgID> </ParticipatingOrg> </DistributionChainLink> <DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes"> <Ordinal>2</Ordinal> <OrgRole>Carrier</OrgRole> <ParticipatingOrg> <OrgID>MX</OrgID> </ParticipatingOrg> </DistributionChainLink> </DistributionChain> <Request> <Pax xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes"> <PaxID>ADT-1</PaxID> <PTC>ADT</PTC> </Pax> <SeatAvailCoreRequest xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes"> <OrderRequest> <Order> <OrderID>ABC123</OrderID> <OwnerCode>MX</OwnerCode> </Order> </OrderRequest> </SeatAvailCoreRequest> </Request></IATA_SeatAvailabilityRQ>Response
Section titled “Response”ALaCarteOffer lists one OfferItem per assignable open seat and passenger, each with a BOO-generated OfferItemID prefixed OFI-ST-. These IDs carry identity only (segment, passenger, seat designator), never price; amounts are recomputed from live booking state when the seat is accepted. Only those generated IDs are valid inside an OrderChange AcceptSelectedQuotedOfferList.
SeatMap renders the cabin per segment: CabinCompartment → SeatRow → Seat with OccupationStatusCode (A available, U unavailable) and SeatCharacteristicCode values.
<?xml version="1.0" encoding="UTF-8"?><IATA_SeatAvailabilityRS xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersMessage"> <Response> <ALaCarteOffer xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes"> <OfferID>ALC-ST-example</OfferID> <OfferItem> <Eligibility> <OfferFlightAssociations> <PaxSegmentReferences> <PaxSegmentRefID>SEG-example</PaxSegmentRefID> </PaxSegmentReferences> </OfferFlightAssociations> <PaxRefID>ADT-1</PaxRefID> </Eligibility> <OfferItemID>OFI-ST-example</OfferItemID> <Service> <ServiceDefinitionRefID>SD-ST-example</ServiceDefinitionRefID> <ServiceID>SVC-ST-example</ServiceID> </Service> <UnitPrice> <TotalAmount CurCode="USD">25</TotalAmount> </UnitPrice> </OfferItem> <!-- one OfferItem per assignable open seat and passenger --> <OwnerCode>MX</OwnerCode> </ALaCarteOffer> <DataLists xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes"> <PaxList> <Pax> <PaxID>ADT-1</PaxID> <PTC>ADT</PTC> </Pax> </PaxList> <PaxSegmentList> <PaxSegment> <DatedMarketingSegmentRefId>DMS-example</DatedMarketingSegmentRefId> <PaxSegmentID>SEG-example</PaxSegmentID> </PaxSegment> </PaxSegmentList> <ServiceDefinitionList> <ServiceDefinition> <Name>Seat 10A</Name> <OwnerCode>MX</OwnerCode> <ServiceCode>SEAT</ServiceCode> <ServiceDefinitionID>SD-ST-example</ServiceDefinitionID> </ServiceDefinition> </ServiceDefinitionList> </DataLists> <SeatMap xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes"> <CabinCompartment> <CabinCompartmentID>Y</CabinCompartmentID> <DeckCode>Main</DeckCode> <SeatRow> <RowNumber>10</RowNumber> <Seat> <ColumnID>A</ColumnID> <OccupationStatusCode>A</OccupationStatusCode> <RowNumber>10</RowNumber> <SeatCharacteristicCode>WINDOW</SeatCharacteristicCode> </Seat> <!-- ...more Seat elements... --> </SeatRow> <!-- ...more SeatRow elements... --> </CabinCompartment> <PaxSegmentRefID>SEG-example</PaxSegmentRefID> </SeatMap> </Response></IATA_SeatAvailabilityRS>SeatAvailability errors
Section titled “SeatAvailability errors”| Code | HTTP status | Cause |
|---|---|---|
ERR-1000 | 400 | Malformed XML. |
ERR-1002 | 404 | Unsupported version segment in the path. |
ERR-1003 | 400 | Missing required element. |
ERR-1004 | 400 | Invalid field value. |
ERR-3000 | 404 | Referenced offer could not be found. |
ERR-3001 | 404 | Referenced offer has expired. |
ERR-3002 | 400 | One or more offer items not found on the offer. |
ERR-4000 | 404 | Referenced order not found. |
ERR-8000 | 401 | Missing or invalid API key or bearer token. |
ERR-8001 | 403 | API key not authorized for this request. |
ERR-8002 | 503 | Authentication store unavailable. |
ERR-9003 | 500 | Seat lookup failed upstream. |