OfferPrice Functional Capabilities
OfferPrice Request
The IATA NDC 2017.2 OfferPriceRQ provides the ability to quote (price) for flights for the selected itinerary. The user needs to provide ResponseID, OfferID, OfferItemID, and PassengerRefs in the OfferPriceRQ to get a price quote for the selected flights in the OfferPriceRS.
📝 The OfferPriceRQ is a mandatory step before creating an Order using OrderCreateRQ.
NDC 2017.2 OfferPriceRQ supports the below modifiers:
OfferPriceRQ Input 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 NDC2017.2 OfferPriceRQ.
/OfferPriceRQ/DataLists/PassengerList/Passenger/LoyaltyProgramAccount
Language Code
Provide the language code in /OfferPriceRQ/Parameters/Languages/LanguageCode. If the language code is not provided in the request, then English is the default language.
Country Code
Provide the country code in /OfferPriceRQ/PointOfSale/Location/CountryCode.
Currency Code
Provide the currency code in /OfferPriceRQ/Parameters/CurrCodes/FiledInCurrency/CurrCode.
Number Of Passengers
A maximum of 9 passengers is supported and the request needs at least 1 ADT passenger. The number of infants cannot be greater than adult passengers.
Passenger Type Code (PTC)
ADT, CHD, YTH, and INF are supported.
Offer and OfferItem
The requested Offer and OfferItem should be from earlier AirShopping and/or SeatAvailability and/or ServiceList response.
Some important elements or attributes in the NDC 2017.2 OfferPriceRQ
- /OfferPriceRQ/Query/Offer/@ResponseID (retrieved from the previous response; for example: AirShoppingRS ShoppingResponseID/ResponseID)
- /OfferPriceRQ/Query/Offer/OfferID (retrieved from the previous response; for example: AirShoppingRS)
- /OfferPriceRQ/Query/Offer/OfferID/@Owner
- /OfferPriceRQ/Query/Offer/OfferItem/@OfferItemID (retrieved from the previous response; for example: AirShoppingRS)
- /OfferPriceRQ/Query/Offer/OfferItem/PassengerRefs
- /OfferPriceRQ/DataLists/PassengerList/Passenger
OfferPriceRQ has various use cases with/without Seat and Ancillaries (e.g., meal, lounge, etc.):
1. OfferPriceRQ without Seat and Ancillaries
- The
OfferID,OfferItemID, andPassengerRefsshould be used in the OfferPriceRQ (PassengerRefsis mandatory as per the IATA schema) - The user should take
OfferIDandOfferItemIDfrom the earlier AirShoppingRS
     From SeatAvailabilityRS
- Each
ALaCarteOfferItem(for each specific seat like 12C, 15A) is created in the response for all passengers
/SeatAvailabilityRS/ALaCarteOffer/ALaCarteOfferItem - The
ALaCarteOfferItemis created for each flight segment (not for each bound) and for each type of seat
For example: ASPM, ASPW, ASPA (each of these types should create a differentALaCarteOfferItemto display the price details)
     From ServiceListRS
- Each
ALaCarteOfferItemis created in the response for all passengers
/ServiceListRS/ALaCarteOffer/ALaCarteOfferItem - The
ALaCarteOfferItemis created for each Flight segment (not for each bound) and each type of specific service
Example: ASPM, ASPW, ASPA, MEAL, MLLW (each of these types should create a differentALaCarteOfferItemto display the price details)
2. OfferPriceRQ with Seat and Ancillaries
- Flights Only - Select
OfferID,OfferItemIDfrom AirShoppingRS and provide in the /OfferPriceRQ/Query/Offer[1] - Seat and Ancillaries from ServiceListRS - Select /ALaCarteOffer/OfferID and /ALaCarteOfferItem/OfferItemID from the ServiceListRS and provide in the /OfferPriceRQ/Query/Offer[2]
- Seat from SeatAvailabilityRS - Select /ALaCarteOffer/OfferID and /ALaCarteOfferItem/OfferItemID from the SeatAvailabilityRS and provide in the /OfferPriceRQ/Query/Offer[3]
📝 Multiple offers should be included to accommodate multiple offers from the earlier responses (AirShoppingRS, SeatAvailabilityRS, and ServiceListRS) as required.
📝 Baggage information is returned in the AirShoppingRS and ServiceListRS. The user cannot request to quote a baggage price in the OfferPriceRQ.
- /AirShoppingRS/DataLists/TermsList/Term/Descriptions/Description
- /ServiceListRS/DataLists/BaggageAllowanceList/BaggageAllowance
OfferPrice Response
The OfferPriceRS service includes a detailed fare and tax breakdown per passenger type for the requested Offer based on availability.
The ResponseID, OfferID, OfferItemID, and ALaCarteOffer (for seat and ancillaries) are created in the OfferPriceRQ. These details are required for the follow-up transactions. The PricedOffer section displays the fare and tax breakdown excluding seat and ancillary price breakup. One or more OfferItem(s) are included in a PricedOffer and each OfferItem is unique with detailed fare and tax breakdown per PTC.
- /OfferPriceRS/PricedOffer
- /OfferPriceRS/PricedOffer/OfferItem/@OfferItemID
- /OfferPriceRS/ShoppingResponseID/ResponseID
The OfferItemID is created per PTC type. There will be a single OfferItem for the same type of PTC (e.g., 2 ADTs).
ALaCarteOfferItem displays the fare and tax breakdown for seat and ancillary if the user selected in the OfferPriceRQ.
- /OfferPriceRS/OtherOffers/ALaCarteOffer
- /OfferPriceRS/OtherOffers/ALaCarteOffer/ALaCarteOfferItem
- /OfferPriceRS/OtherOffers/ALaCarteOffer/ALaCarteOfferItem/@OfferItemID
The fare family details display in the PriceClass section.
/OfferPriceRS/DataLists/PriceClassList/PriceClass
The seat and ancillaries’ descriptions display in the ServiceDefinition section.
/OfferPriceRS/DataLists/ServiceDefinitionList/ServiceDefinition
The SeatCharacteristicCode displays in the SeatDefinition section.
/OfferPriceRS/DataLists/SeatDefinitionList/SeatDefinition
OfferPriceRS with PricedOffer and OtherOffers:
- /OfferPriceRS/PricedOffer/TotalPrice/DetailCurrencyPrice/Details/Detail[1]/SubTotal
- /OfferPriceRS/PricedOffer/TotalPrice/DetailCurrencyPrice/Details/Detail[1]/Application = "ItinTotalFare"
- /OfferPriceRS/PricedOffer/TotalPrice/DetailCurrencyPrice/Details/Detail[2]/SubTotal
- /OfferPriceRS/PricedOffer/TotalPrice/DetailCurrencyPrice/Details/Detail[2]/Application = "AncillaryTotalFare"
OfferPriceRS with PricedOffer and ALaCarteOfferItem