ServiceList Functional Capabilities
ServiceList Request
The ServiceListRQ service set returns a list of all applicable ancillary services that meet request qualifiers and flights. The message supports shopping for additional a la carte services (e.g., meal, lounge, etc.) to complement any selected Offer.
The ResponseID
, OfferID
, and OfferItemID
must be used in the ServiceListRQ from previous AirShoppingRS:
- /ServiceListRQ/ShoppingResponseID/ResponseID (retrieved from the previous response; for example: AirShoppingRS)
- /ServiceListRQ/Query/Offers/Offer/OfferID (retrieved from the previous response; for example: AirShoppingRS)
- /ServiceListRQ/Query/Offers/Offer/OfferID/@Owner
- /ServiceListRQ/Query/Offers/Offer/OfferItemIDs/OfferItemID (retrieved from the previous response; for example: AirShoppingRS)
- /ServiceListRQ/Query/Offers/Offer/OfferItemIDs/OfferItemID/@Owner
ServiceListRQ Modifiers and Details
Corporate Contract Number (CCN)It is not required to pass this in the request. This is processed internally and applied during itinerary pricing.
Normal Tariff Passenger (NTP)It is not required to pass this in the request. This is processed internally and applied during itinerary pricing.
FQTV Supported in NDC 2017.2 ServiceListRQ:
- /ServiceListRQ/DataLists/PassengerList/Passenger
- /ServiceListRQ/DataLists/PassengerList/Passenger/LoyaltyProgramAccount
When the ServiceListRQ has multiple travelers with different FQTV Tier levels, all passengers benefit from the benefits of the highest tier.
Language CodeProvide the language code in /ServiceListRQ/Parameters/Languages/LanguageCode. If a language code is not provided in the request, then English is the default language.
Passenger Type CodeADT, CHD, YTH, and INF passenger type codes are suppported.
<ServiceListRQ Version="17.2">
<Document>
<Name>NDC-Exchange</Name>
<ReferenceVersion>UAT-YY-EIP</ReferenceVersion>
</Document>
<Party>
<Sender>
<!--The Sender Type "EnabledSystemSend" will be used for users who do not use an IATA number-->
<!--<EnabledSystemSender>
<SystemID>SenderName</SystemID>
</EnabledSystemSender>-->
<!--The Sender Type "TravelAgencySender" will be used for users who use IATA number (Travel Agencies)-->
<TravelAgencySender>
<IATA_Number>0000000</IATA_Number>
<AgencyID>001</AgencyID>
</TravelAgencySender>
</Sender>
</Party>
<Parameters>
<Languages>
<LanguageCode>EN</LanguageCode>
</Languages>
</Parameters>
<ShoppingResponseID>
<!-- Pickup ResponseID from earlier response-->
<ResponseID>5fcf3507-b34f-44d5-acb2-67f22c1199df-8867.213716374781</ResponseID>
</ShoppingResponseID>
<Query>
<Offers>
<Offer>
<!-- OUTBOUND -->
<OfferID Owner="YY">NJJFBQ-OfferID-1</OfferID>
<OfferItemIDs>
<OfferItemID Owner="YY">ZIIVW4J8P9-OfferItemID-1</OfferItemID>
<OfferItemID Owner="YY">VJLK74V1AP-OfferItemID-2</OfferItemID>
</OfferItemIDs>
</Offer>
<Offer>
<!-- INBOUND -->
<OfferID Owner="YY">SYKPN8-OfferID-1</OfferID>
<OfferItemIDs>
<OfferItemID Owner="YY">IHW22E0ZNF-OfferItemID-1</OfferItemID>
<OfferItemID Owner="YY">TZ72BYI4FN-OfferItemID-2</OfferItemID>
</OfferItemIDs>
</Offer>
</Offers>
</Query>
</ServiceListRQ>
ServiceList Response
The ServiceListRS service includes a detailed price breakdown for each ancillary (i.e., meal, lounge, and seat) of the requested Offer in the request.
-
Each
ALaCarteOfferItem
(for each ancillary like the meal, lounge, and seat, etc.) is created in the response for all passengers. This section displays the price breakdown for the specific ancillary. /ServiceListRS/ALaCarteOffer/ALaCarteOfferItem -
An
ALaCarteOfferItem
is created for each flight segment (not for each bound) and each type of ancillary For example: ASPM, ASPW, ASPA, MEAL, MLLW (each of these types should create differentALaCarteOfferItem
to display the price details) - /ServiceListRS/ALaCarteOffer/ALaCarteOfferItem/Eligibility/PassengerRefs This includes all available passenger in the request. For multiple passenger scenarios, note that the ancillary should be assigned for each passenger in the OfferPriceRQ or OrderCreateRQ.
-
The ServiceListRS section display details about each ancillary type like ASTM, ASTW (standard Window seat), MLLW (maple leaf lounge):
- /ServiceListRS/DataLists/ServiceDefinitionList/ServiceDefinition
- /ServiceListRS/DataLists/ServiceDefinitionList/ServiceDefinition/Name
- /ServiceListRS/DataLists/ServiceDefinitionList/ServiceDefinition/Descriptions/Description
-
Seat Type Codes:
- ASPM - Preferred middle seat
- ASPA - Preferred aisle seat
- ASPW - Preferred window seat
- ASTM - Standard middle seat
- ASTA - Standard aisle seat
- ASTW - Standard
-
The below section connects with each
ALaCarteOfferItem
:- /ServiceListRS/DataLists/PassengerList (displays passneger type details; for example: ADT, CHD, INF)
- /ServiceListRS/DataLists/FlightSegmentList (displays flight segment details; for example: Org, Des, Date)
- /ServiceListRS/DataLists/OriginDestinationList (displays bound information)
-
PassengerRefs and
SegmentRefs
:- /ServiceListRS/ALaCarteOffer/ALaCarteOfferItem/Eligibility/PassengerRefs
- /ServiceListRS/ALaCarteOffer/ALaCarteOfferItem/Eligibility/SegmentRefs
<ALaCarteOffer OfferID="AG2BOCDYC0-SLRS-OfferID-1" Owner="YY">
<ALaCarteOfferItem OfferItemID="HVRTAH359H-SLRS-OfferItemID-1">
<Eligibility>
<PassengerRefs>DGIQQVMTOU-T1 DGIQQVMTOU-T2 DGIQQVMTOU-T3 DGIQQVMTOU-T4</PassengerRefs>
<SegmentRefs>ZSXY70Z3TA-SEG1</SegmentRefs>
</Eligibility>
<UnitPriceDetail>
<TotalAmount>
<DetailCurrencyPrice>
<Total Code="USD">11.01</Total>
</DetailCurrencyPrice>
</TotalAmount>
<BaseAmount>10.49</BaseAmount>
<Taxes>
<Total>0.50</Total>
<Breakdown>
<Tax>
<Amount>0.50</Amount>
<Nation>XX</Nation>
<TaxCode>XG</TaxCode>
</Tax>
</Breakdown>
</Taxes>
</UnitPriceDetail>
<Service ServiceID="QWS345RDE6ServiceID-001">
<ServiceDefinitionRef>QWS345RDE6-ServiceDefinition-001</ServiceDefinitionRef>
</Service>
</ALaCarteOfferItem>
-
For
SeatDefinitionID
, refer to theSeatDefinitionRefs
section:- /ServiceListRS/DataLists/ServiceDefinitionList/ServiceDefinition/SeatDefinitionRefs
- /ServiceListRS/DataLists/SeatDefinitionList/SeatDefinition/@SeatDefinitionID
- /ServiceListRS/DataLists/SeatDefinitionList/SeatDefinition/Description/Text
- /ServiceListRS/DataLists/SeatDefinitionList/SeatDefinition/Description/Text/@refs
- /ServiceListRS/DataLists/SeatDefinitionList/SeatDefinition/SeatCharacteristicCode
<ServiceDefinitionList>
<ServiceDefinition Owner="YY" ServiceDefinitionID="QWS345RDE6-ServiceDefinition-001"></ServiceDefinition>
<ServiceDefinition Owner="YY" ServiceDefinitionID="QWS345RDE6-ServiceDefinition-002">
<Name>Lounge Access</Name>
<SeatDefinitionRefs>QWS345RDE6-SeatCharacteristic-003</SeatDefinitionRefs>
<Encoding>
<Code>ASTW</Code>
</Encoding>
<Descriptions>
<Description>...</Description>
<Description>...</Description>
<Description>...</Description>
<Description>...</Description>
<Description>...</Description>
</Descriptions>
<BookingInstructions>
<Text>I want to select a Window seat in advance</Text>
</BookingInstructions>
</ServiceDefinition>
<ServiceDefinition Owner="YY" ServiceDefinitionID="QWS345RDE6-ServiceDefinition-003">...</ServiceDefinition>
<ServiceDefinition Owner="YY" ServiceDefinitionID="QWS345RDE6-ServiceDefinition-004">...</ServiceDefinition>
<ServiceDefinition Owner="YY" ServiceDefinitionID="QWS345RDE6-ServiceDefinition-005">...</ServiceDefinition>
<ServiceDefinition Owner="YY" ServiceDefinitionID="QWS345RDE6-ServiceDefinition-006">...</ServiceDefinition>
<ServiceDefinition Owner="YY" ServiceDefinitionID="QWS345RDE6-ServiceDefinition-007">...</ServiceDefinition>
</ServiceDefinitionList>
<SeatDefinitionList>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-001">...</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-002">...</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-003">
<Description>
<Text refs="ZSXY70Z3TA-SEG1">ASTW</Text>
</Description>
<Description>
<Text refs="ZSXY70Z3TA-SEG1">ASTA</Text>
</Description>
<SeatCharacteristicCode>CH</SeatCharacteristicCode>
</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-004">...</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-005">...</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-006">...</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-007">...</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-008">...</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-009">...</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-010">...</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-011">...</SeatDefinition>
<SeatDefinition SeatDefinitionID="QWS345RDE6-SeatCharacteristic-012">...</SeatDefinition>
</SeatDefinitionList>