Last updated 8 minutes ago

NDC Exchange Workflows

Flow of Data Between Messages

A common problem for sellers is not including required information throughout the NDC Exchange flow.

  • Ensure you use the correct response IDs and OfferID throughout the flow. For example, if you get a message similar to “OfferID not found”, go back and check your RS and flow to ensure you have used the right ID’s.
  • For a specific account code, FQTV information, promotional code, or fare class you must carry this information from AirShopping through OderCreate.
  • Include any references specific to a passenger's eligibility for a fare from AirShopping to OrderCreate (especially if FQTV or corporate traveler eligible for free seat assignment) to ServiceList to OrderCreate etc. Your request will fail if you do not provide the information.
  • These flows will be updated as functionality becomes available for airlines in the exchange.
Workflow Scenarios Details Applicable Airline
1. AirShopping
2. OfferPrice
3. OrderCreate
The user should take all OFFER IDs from AirShoppingRS when executing OfferPriceRQ.
The OfferPrice step is mandatory before executing the OrderCreateRQ.
The user should take all required IDs from OfferPriceRS when executing OrderCreateRQ.
AC, WN
1. AirShopping
2. SeatAvailability
3. OfferPrice
4. OrderCreate
The user should take all OFFER IDs (Flight-related OFFERs) from AirShoppingRS when executing OfferPriceRQ.
The user should take all SEAT-related OFFER IDs from SeatAvaialabilityRS when executing OfferPriceRQ to quote price for FLIGHTS+SEAT.
The OfferPrice request is mandatory before executing the OrderCreateRQ.
The user should take all FLIGHT related OFFER IDs from OfferPriceRS and SEAT related OFFER IDs from SeatAvaialabilityRS when executing OrderCreateRQ.
AC
1. AirShopping
2. SeatAvailability for outbound
3. SeatAvailability for inbound
4. OfferPrice
5. OrderCreate
The user wants to select a seat for outbound and inbound itineraries. As per the IATA NDC 2017.2 schema standard, the multiple Offer cannot be included in the same SeatAvailabilityRQ. The user needs to execute two SeatAavailabilityRQ.
The user should take all OFFER IDs (Flight-related OFFERs) from AirShoppingRS when executing OfferPriceRQ.
The user should take all SEAT-related OFFER IDs from SeatAvaialabilityRS when executing OfferPriceRQ to quote price for FLIGHTS+SEAT.
The OfferPrice request is mandatory before executing the OrderCreateRQ.
The user should take all FLIGHT related OFFER IDs from OfferPriceRS and SEAT related OFFER IDs from SeatAvaialabilityRS when executing OrderCreateRQ.
AC
1. AirShopping
2. ServiceList
3. OfferPrice
4. OrderCreate
The user should take all OFFER IDs (Flight-related OFFERs) from AirShoppingRS when executing OfferPriceRQ.
The user should take all Service-related OFFER IDs from ServiceListRS when executing OfferPriceRQ to quote price for FLIGHTS+ANCILLARIES.
The OfferPrice request is mandatory before executing the OrderCreateRQ.
The user should take all FLIGHT related OFFER IDs from OfferPriceRS and ANCILLARY related OFFER IDs from ServiceListRS when executing OrderCreateRQ.
AC, WN
1. AirShopping
2. SeatAvailability
3. ServiceList
4. OfferPrice
5. OrderCreate
The user should take OFFER IDs (Flight-related OFFERs) from AirShoppingRS when executing OfferPriceRQ.
The user should take all SEAT-related OFFER IDs from SeatAvaialabilityRS and Service-related OFFER IDs from ServiceListRS when executing OfferPriceRQ to quote price for FLIGHTS+SEAT+ANCILLARIES.
The OfferPrice request is mandatory before executing the OrderCreateRQ.
The user should take all FLIGHT-related OFFER IDs from OfferPriceRS, SEAT-related OFFER IDs from SeatAvaialabilityRS, and ANCILLARY-related OFFER IDs from ServiceListRS when executing OrderCreateRQ.
AC
1. AirShopping
2. SeatAvailability
3. ServiceList
4. OfferPrice
5. OrderCreate
6. OrderReshop
7. OrderCancel
The user will get OrderID when Order is created successfully. The user can get the cancellation details and cancel the Order by using the below two steps.
OrderReshopRQ/RS – It provides details about cancellation like forfeit and retains, refund, etc.
OrderCancelRQ/RS – It cancels the existing reservation.
AC
OrderRetrieve The user can retrieve the Order Details using OderRetrieve transaction in the various stage of the workflow when OrderID is available. AC, WN
1. AirShopping
2. OfferPrice
3. OrderCreate
4. OfferPrice
Price Change during OrderCreate.
When the OrderCreateRQ is submitted, the carrier may return an intermittent error message in the OrderViewRS when the price that was initially quoted (Price from OfferPriceRS) is no longer available.
The user should execute the OfferPriceRQ again to get an updated price. Then the user needs to execute OrderCreateRQ again taking the updated OfferIDs and OfferItemIDs from the most current OfferPriceRS. Note that these are for Flights related Offer only. The Seat and ancillary-related OFFER should be taken from SeatAavailability and ServiceListRS.
AC, WN
OrderCancel Canceling an order is a two steps process for AC in the NDC 2017.2
1. NDC 2017.2 OrderReshopRQ/RS – It provides details about cancellation like forfeit and retain, refund, etc.
2. NDC 2017.2 OrderCancelRQ/RS – It cancels the existing reservation.
AC, WN
OrderReshop NDC 2017.2 OrderReshopRQ/RS is only implemented for Cancel flow. AC

OrderCreate Flights Only Workflow

OrderCreate Flights only workflow with Single or Multi-Passenger_ FLIGHTS ONLY (Any Itinerary- DOM, INTL, TB, MC, SUN)

Step 1: AirShopping

  • AirShopping RQ – Submit Shopping RQ for ADT, YTH, CHD, INF
  • AirShopping RS

    • SINGLE AirShoppingRS/ShoppingResponseID/ResponseID
    • MULTIPLE AirShoppingRS/OffersGroup/AirlineOffers/Offer/@OfferID.
    • Within these Offers, you will see

      • ONE AirShoppingRS/OffersGroup/AirlineOffers/Offer/OfferItem/@OfferItemID { for PTC Type: ADT }
      • ONE AirShoppingRS/OffersGroup/AirlineOffers/Offer/OfferItem/@OfferItemID { for PTC Type: YTH }
      • ONE AirShoppingRS/OffersGroup/AirlineOffers/Offer/OfferItem/@OfferItemID { for PTC Type: CHD }
      • ONE AirShoppingRS/OffersGroup/AirlineOffers/Offer/OfferItem/@OfferItemID { for PTC Type: INF }

NDCx Workflows 01

Step 2: OfferPrice

OfferPriceRQ

Select the Offer of your choice and submit the keys only as shown in the below example.

NDCx Workflows 02

OfferPriceRS

Returns:

  • OfferPriceRS/PricedOffer/@OfferID

    • OfferPriceRS/PricedOffer/TotalPrice/DetailCurrencyPrice/Total
  • OfferPriceRS/PricedOffer/OfferItem/@OfferItemID with PassengerFare details for ADT
  • OfferPriceRS/PricedOffer/OfferItem/@OfferItemID with PassengerFare details for YTH
  • OfferPriceRS/PricedOffer/OfferItem/@OfferItemID with PassengerFare details for CHD
  • OfferPriceRS/PricedOffer/OfferItem/@OfferItemID with PassengerFare details for INF
  • OfferPriceRS/OtherOffers/ALaCarteOffer/@OfferID
  • OfferPriceRS/OtherOffers/ALaCarteOffer/ALaCarteOfferItem/@OfferItemID

NDCx Workflows 03

Step 3: OrderCreate

Take the OfferID, OfferItemID, ResponseID, Total from OfferPriceRS and construct the OrderCreateRQ as shown in the below example.

NDCx Workflows 04

OrderCreate Flights Seat and Ancillaries Workflow

OrderCreate Flights Seat and Ancillaries workflow for single or Multi-Passenger (Any Itinerary- DOM, INTL, TB, MC, SUN)

Step 1: AirShopping

  • AirShopping RQ – Submit Shopping RQ for ADT, YTH, CHD, INF
  • AirShopping RS

    • SINGLE /AirShoppingRS/ShoppingResponseID/ResponseID
    • MULTIPLE /AirShoppingRS/OffersGroup/AirlineOffers/Offer[1]/@OfferID.
    • Within these Offers, you will see

      • ONE AirShoppingRS/OffersGroup/AirlineOffers/Offer/OfferItem/@OfferItemID { for PTC Type: ADT }
      • ONE AirShoppingRS/OffersGroup/AirlineOffers/Offer/OfferItem/@OfferItemID { for PTC Type: YTH }
      • ONE AirShoppingRS/OffersGroup/AirlineOffers/Offer/OfferItem/@OfferItemID { for PTC Type: CHD }
      • ONE AirShoppingRS/OffersGroup/AirlineOffers/Offer/OfferItem/@OfferItemID { for PTC Type: INF }

NDCx Workflows 05

Step 2: ServiceList

ServiceListRQ

Select the Offer of your choice and submit the keys only as shown in the below example.

NDCx Workflows 06

ServiceListRS

Returns:

  • ServiceListRS/ALaCarteOffer/@OfferID
  • ServiceListRS/ALaCarteOffer/ALaCarteOfferItem/@OfferItemID

NDCx Workflows 07

Step 3: SeatAvailability

SeatAvailabilityRQ

Submit the OfferID and ResponseID in the SeatAvailabilityRQ.

NDCx Workflows 08

SeatAvailabilityRS

  • SeatAvailabilityRS/ALaCarteOffer/@OfferID
  • SeatAvailabilityRS/ALaCarteOffer/ALaCarteOfferItem/@OfferItemID
  • SeatAvailabilityRS/ShoppingResponseID/ResponseID

NDCx Workflows 09

Step 4: OfferPrice

OfferPriceRQ

Select the Offer of your choice and submit the keys only as shown in the below example.

NDCx Workflows 10

OfferPriceRS

NDCx Workflows 11

Step 5: OrderCreate

OrderCreateRQ

Select the IDs from the earlier response and submit the IDs with other details as shown in the below example.

NDCx Workflows 12

OrderCreate Price Change Workflow

When the OrderCreateRQ is submitted, the carrier may return an intermittent error message in the OrderViewRS when the price that was initially quoted (Price from OfferPriceRS) is no longer available. The user should execute the OfferPriceRQ again to get an updated price.

OrderCreate

The user receives one of the below error messages in the OrderViewRS when there is any price change from the earlier OfferPriceRS price.

Itinerary Pricing Change ErrorAncillary Pricing Change Error
<OTA_AirBookRS xmlns="http://www.iata.org/IATA/EDIST/2017.2" EchoToken="ET" SequenceNmbr="1" TimeStamp="2021-09-15T09:55:23.678-04:00" TransactionIdentifier="1" Version="2017.2">
   <Errors>
      <Error Language="en-US" ShortText="Itinerary pricing change(increase or decrease).New itinerary total:370.78" Status="99944"/>
   </Errors>
</OTA_AirBookRS>
<OrderViewRS xmlns="http://www.iata.org/IATA/EDIST/2017.2" EchoToken="ET" SequenceNmbr="1" TimeStamp="2021-09-15T11:00:51.467-04:00" TransactionIdentifier="1" Version="2017.2">
   <Errors>
      <Error Language="en-US" ShortText="Ancillary pricing change(increase or decrease).New Ancillary total:21.00" Status="99943"/>
   </Errors>
</OrderViewRS>

The user should execute the OfferPriceRQ again to get an updated price. Then the user needs to execute OrderCreateRQ again taking the updated OfferIDs and OfferItemIDs from the most current OfferPriceRS. Note that these are for Flights related Offer only. The Seat and ancillary-related OFFER should be taken from SeatAavailability and ServiceListRS.

OrderCancel Workflow

Canceling an order is a two steps process for AC in the NDC 2017.2:

  1. NDC 2017.2 OrderReshopRQ/RS – It provides details about cancellation like forfeit and retain, refund, etc.
  2. NDC 2017.2 OrderCancelRQ/RS – It cancels the existing reservation.

Step 1: OrderReshop

Currently, the OrderReshopRQ use only for the first step of cancellation.

Step 2: OrderCancel

The OrderCancel service provides the ability to cancel the booking. The service cancels the booking and refunds the refundable amount to the original form of payment if applicable.