Exchange Shopping Response XML
This section describes the itinerary options returned in the Exchange Shopping response. The Exchange Shopping response (ExchangeShoppingRS) consists of the following attributes and elements.
Response Attributes
|Attribute| Description| Exchange Shopping Path| |XML version| Required in the XML schema.| ExchangeShoppingRS/@Version| |Number of exchange solutions returned| Required in the XML schema.| ExchangeShoppingRS/@solutions|
Response Elements
|Element| Description| Exchange Shopping Path| |Solutions information| Detailed information about exchange itinerary options found based on input search criteria. Optional element, will be populated when at least one exchange itinerary solution is found.| ExchangeShoppingRS/Solution|
Solutions Returned
Note: This section highlights some of the elements and attributes returned in the Exchange Shopping response and should not intended to be a comprehensive list.
Solution Attributes
Attribute | Description | Exchange Shopping Path |
---|---|---|
Sequence number | Number assigned to each solution. Solutions are ordered from lowest to highest total price difference (price for all passengers). | ExchangeShoppingRS/Solution/@sequence |
Pricing sequence | Pricing sequence number assigned by one of the Exchange Shopping Subsystems. Used for troubleshooting. | ExchangeShoppingRS/Solution/@pricingSequence |
Required PNR split indicator | Indicates if the PNR must be split due to different passenger types (PTC) resulting in solutions in different booking Classes. | ExchangeShoppingRS/Solution/Fare/requireSplitPNR |
Passengers booked in different cabins indicator | Indicates if the solutions returned for the different PTC in the request are in different cabins of service. This attribute will be returned together with the Required Split PNR indicator | ExchangeShoppingRS/Solution/Fare/passengersInDifferentCabins |
Passengers priced in different currencies | Indicates that the exchange cost for different passengers were calculated in different currencies and total price difference element cannot be built for the request. | ExchangeShoppingRS/Solution/Fare@passengersPricedInDifferentCurrencies |
Valid | Indicates whether valid fare was found | ExchangeShoppingRS/Solution/Fare/valid |
Brand | Adds the brand name of the brand in which the price has been calculated | ExchangeShoppingRS/Solution/Fare/brand |
Branding Program | Adds branding program ID (up to 10 characters) | ExchangeShoppingRS/Solution/Fare/BrandingProgram |
Mixed Brands | Indicates whether the itinerary was prices in mixed brands | ExchangeShoppingRS/Solution/Fare/mixedBrands |
Solution Elements
Element | Description | Exchange Shopping Path |
---|---|---|
Details about the itinerary options booked | Information about the itinerary to be booked. | ExchangeShoppingRS/Solution/BookItinerary and ExchangeShoppingRS/Solution/Fare/ReservationSegmentDetails |
Exchange price difference information per passenger | Exchange price difference information per passenger. | ExchangeShoppingRS/Solution/FarePassengerPriceInformation |
Total exchange price difference information | Total exchange price difference information. | ExchangeShoppingRS/Solution/Fare/TotalPriceDifference |
Information about Itinerary to be Booked
Itinerary information is split into legs, and the details are returned in the same order and number as requested in the Exchange Shopping request XML.
Note: If the new itinerary contains a surface sector (ARNK) between two portions of travel (e.g. one leg ends in JFK and the next leg starts in BOS), no information about the surface sector (ARNK) will be included in the Exchange Shopping response.
Any flown ticket coupons (i.e. partially used tickets) will be taken into consideration for re-pricing purposes, but no information about these used segments will be included in the Exchange Shopping response.
Exchange Shopping Xpath ExchangeShoppingRS/Solution/BookItinerary/OriginDestination ExchangeShoppingRS/Solution/Fare/ReservationSegmentDetails
The following details are included for each leg:
Element | Description | Exchange Shopping Path |
---|---|---|
Details of each flight segment pertaining to the leg | The reservation segments that must be booked, priced, and fulfilled if the passenger decides to exchange his/her ticket for this itinerary. | ExchangeShoppingRS/Solution/BookItinerary/OriginDestination/ReservationSegment |
Flight segment details for each passenger | Place where the booking class and fare basis applicable for a given passenger is presented. All passengers are listed in same order as in the PassengerPriceInformation section of the XML response. The document number is used to uniquely identify the passenger and his/her booking and price information. | ExchangeShoppingRS/Solution/Fare/ReservationSegmentDetails/PassengerBookingDetails |
Exchange Cost Breakdown per Each Passenger for Returned Itinerary
Passengers (up to nine) may be in a different order than listed in the Exchange Shopping request.
Each passenger is identified by following information:
Element | Description | Exchange Shopping Path |
---|---|---|
Passenger Type Code | The response will reflect the true passenger type for the solution returned. If the request included passenger type code YTH, but no applicable youth fare was found and an adult fare was returned instead, the PTC returned would be ADT. | ExchangeShoppingRS/Solution/FarePassengerPriceInformation/Passenger/@type |
Passenger’s first and last name | For requests with an active PNR, the name is the same as passed in Exchange Shopping request. For requests without an active PNR, the name passed in the response is taken from the ticket being exchanged. | ExchangeShoppingRS/Solution/Fare/PassengerPriceInformation/Passenger/@firstName and @lastName |
Age (optional) | Passenger age – when is this returned?? | ExchangeShoppingRS/Solution/Fare/PassengerPriceInformation/Passenger@age |
Exchange price difference details per passenger | Detailed information about the cost of exchange to a given itinerary per each passenger. | ExchangeShoppingRS/Solution/Fare/PassengerPriceInformation/Passenger/resultPriceDifference |
Exchange result | Additional collection (AddCollect) indicates the amount due by the passenger. Even exchange (Even) indicates no additional monies are due. Refund (XXX) indicates a refund due to the passenger | ExchangeShoppingRS/Solution/Fare/PassengerPriceInformation/Passenger/ResultPriceDifference/@differenceType |
Note: In the scenario where there is a payment currency change, currency in which the exchange price difference is returned may be different depending on result type:
-
ADDITIONAL COLLECTION – default currency of country where Exchange Shopping transaction is performed or, if the customer used Payment Currency Code Override pricing parameter, in override (requested) currency.
-
EVEN EXCHANGE or REFUND
-For the first payment currency change: The exchange price difference will be returned in the currency in which the exchanged ticket was paid. -For subsequent exchanges with multiple payment currency changes: The exchange price difference will be returned in the default currency of the country where the Exchange Shopping transaction is performed or if the customer used the Payment Currency Code Override pricing parameter in the override (requested) currency.
Following are examples that illustrate these two scenarios.
Example 1 – single payment currency change
- Original ticket issued on route: JFK-MOW-LON: Base currency: USD Issue place: LON, therefore it is paid in GBP (equivalent currency)
- When shopping for exchange options for this ticket, the passenger is in MOW (default reissue currency RUB) or he is still in LON, but uses the Payment Currency Code Override pricing parameter to get exchange cost in RUB.
Therefore, in this scenario: Base currency: unchanged – USD Reissue currency: RUB
Depending on the exchange result type, the exchange price difference is calculated in different currencies:
- For Additional Collection: The passenger gets exchange cost amounts in RUB (default or override reissue currency)
- For Refund or Even Exchange: The passenger gets exchange cost amounts in GBP ( currency in which exchanged ticket was paid. )
Note:For scenarios where all three types of results are returned
Example 2 – Multiple payment currency change over subsequent exchanges
1.Original ticket issued on route: JFK-MOW-LON: Base currency: USD Issue place: LON; therefore, the ticket was paid in GBP (equivalent)
2.Ticket reissued in ZRH: Base currency: USD Reissue place: ZRH; therefore, reissue (equivalent) currency was CHF.
- When shopping for exchange options for this ticket, the passenger is in MOW (default reissue currency RUB) or he is still in LON but uses the Payment Currency Code Override pricing parameter to get exchange cost in RUB. Therefore, in this scenario: Base currency: Unchanged: USD Current reissue currency: RUB
Regardless of result of exchange (ADDITIONAL COLLECTION, REFUND or EVEN EXCHANGE), the passenger gets the exchange cost amounts in RUB (default or override reissue currency).
Element | Description | Exchange Shopping Path |
---|---|---|
Residual amount forfeited flag | Returned when the new fare is lower than the old fare, but the Category 31 rules do not allow a refund of any residual amount. The residual is not included in the grand total difference amount. This flag is only returned when applicable | ExcShoppingRS/Solution/Fare/PassengerPriceInformation/Passenger/ResultPriceDifference/@residualAmountForfeited |
Exchange price difference elements included in the exchange cost breakdown | ||
Fare Difference amount and currency | Amount and currency code of fare difference between the old ticket and the fare for the new itinerary. | ExcShoppingRS/Solution/Fare/PassengerPriceInformation/Passenger/ResultPriceDifference/FareDifference/@currencyCode ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/FareDifference/@decimalPlace |
Tax difference amount and currency | Currency and sum of tax difference between the old ticket and the new itinerary. | ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/TaxDifference/@currencyCode ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/TaxDifference/@decimalPlace |
Difference subtotal amount and currency | Amount and currency difference subtotal (sum of fare difference plus taxes difference) | ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/SubtotalDifference/@currencyCode ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/SubtotalDifference/@decimalPlace |
Fee type, total amount and currency | Applicable fee type, total mount and currency. The fee total is split by fee type: • CHG - Change fees • OTH - Other fees | ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/TotalFee/@currencyCode ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/TotalFee/@decimalPlace ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/TotalFee/@type |
Tax on change fee amount and currency | Applicable tax on change fee, including tax code Only returned when applicable. | ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/TotalFeeTax/@currencyCode ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/TotalFeeTax/@decimalPlace |
Grand total difference amount and currency | When the exchange results in an additional collection, this is a positive amount When the exchange results in a refund, the amount returned is negative. When the result is an even exchange, the amount returned is zero | ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/GrandTotalDifference/@currencyCode ExcShoppingRS/Solution/FarePassengerPriceInformation/Passenger/ResultPriceDifference/GrandTotalDifference/@decimalPlace |
Total Price Difference
This section of the Exchange Shopping XML response provides details about the total cost of the exchange for each solution for all passengers in the request.
One of the attributes of the total price difference is to provide the difference result again, but this time, it is calculated based on exchange costs for all passengers.
It can have the following values:
-
Additional collection (AddCollect) – indicates that passenger needs to pay some additional amount to fulfill this itinerary solution for all passengers in the request.
-
Even exchange (Even) – indicates that there is no additional cost to fulfill this itinerary solution.
-
Refund – indicates that there is a refund due to the passenger that will be returned when fulfilling this itinerary solution for all passengers in proposed fares.
Exchange Shopping Xpath ExchangeShoppingRS/Solution/Fare/TotalPriceDifference/@differenceType
Note: Total Price Difference element is returned in itinerary solutions where the exchange cost difference is calculated in the same currency for all passengers. In scenarios of multiple passenger requests where passengers are priced in different currencies, this element is omitted in the response and the flag is set to “true” for such itinerary solution:
Exchange Shopping Xpath ExchangeShoppingRS/Solution/Fare/@passengersPricedInDifferentCurrencies
Different currency
Can be sent in the response for multiple passenger requests only. It indicates that exchange cost differences for passengers are calculated in different currencies and, as a result, Total Price Difference element summing the exchange cost for all passengers cannot be built. In such case, individual passenger's prices should be used. This attribute is omitted in the response if exchange cost is calculated in the same currency for all passengers.
This part of the XML response contains the following Total price difference elements representing sums for all passengers:
Element | Description | Exchange Shopping Path |
---|---|---|
Amount and currency of difference in fare | Amount and currency of difference in fare between exchanged tickets fare and new itinerary fares. | ExcShoppingRS/Solution/Fare TotalPriceDifference/FareDiffere nce/@currencyCode ExcShoppingRS/Solution/Fare TotalPriceDifference/FareDiffere nce/@decimalPlace |
Amount and currency of difference in taxes | Amount and currency of difference in taxes between exchanged tickets and taxes on new itinerary. | ExcShoppingRS/Solution/Fare TotalPriceDifference/TaxDifferen ce/@currencyCode ExcShoppingRS/Solution/Fare TotalPriceDifference/TaxDifferen ce/@decimalPlace |
Amount and currency of subtotal difference | Amount and currency of subtotal difference (sum of fare differences and taxes differences). | ExcShoppingRS/Solution/Fare TotalPriceDifference/SubtotalDiff erence/@currencyCode ExcShoppingRS/Solution/Fare TotalPriceDifference/SubtotalDiff erence/@decimalPlace |
Total amount, currency and type of change fees | Total amount, currency, and type of change fees applied to exchange for all passengers. Fees totals are split by fee type. Supported types are: • CHG - Change fees • OTH - Other fees | ExcShoppingRS/Solution/Fare TotalPriceDifference/TotalFee/@ currencyCode ExcShoppingRS/Solution/Fare TotalPriceDifference/TotalFee/@ decimalPlace ExcShoppingRS/Solution/Fare TotalPriceDifference/TotalFee/@ type |
Total amount and currency of taxes on change fees | Total amount and currency of taxes on change fees if applicable. If not applied, it is omitted in the response. | ExcShoppingRS/Solution/Fare TotalPriceDifference/TotalFeeTa x/@currencyCode ExcShoppingRS/Solution/Fare TotalPriceDifference/TotalFeeTa x/@decimalPlace |
Amount and currency of grand total difference | Amount and currency of grand total difference. If the exchange for all passengers results in an additional collection, t is a positive amount. If the exchange for all passengers results in a refund due to the customer, it is a negative amount. If the exchange results in an even transaction (no additional collection or refund due), it is a zero amount. | ExcShoppingRS/Solution/Fare TotalPriceDifference/GrandTotal Difference/@currencyCode ExcShoppingRS/Solution/Fare TotalPriceDifference/GrandTotal Difference/@decimalPlace |
Flight segment rebooking indicator
The webservice performs a comparison of non-shopped flight segments passed within request payload at: /ExchangeShoppingRQ/OriginDestinationInformation/RelatedSegment and matches them to the flight segment details returned after internal shopping call, i.e /ExchangeShoppingRS/Solution/BookItinerary/OriginDestination/ReservationSegment /ExchangeShoppingRS/Solution/Fare/ReservationSegmentDetails/PassengerBookingDetails/@bookingClass.
If the set of compared values are not identical, then the specific flight segment will require rebooking. Therefore, the webservice will pass: /ExchangeShoppingRS/Solution/BookItinerary/OriginDestination/ReservationSegment/@book=“true" If the set of values are identical then the flight segment does not require rebooking, hence @book=“false". Please note that if the user does not pass any non-shopped segments within request payload, all flight segments returned post shopping will require booking, hence they will show /@book=“true" Done for SRW -
SIngle Branded Fare
This qualifier will result in service adding brands information to each of the solutions. If the brand IDs differ per fare component, service will mark the solution with parameter ExchangeShoppingRS/Solution/Fare/mixedBrands
Exchange Shopping Xpath ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndicators/@singleBrandedFare
One branded fare solution per itinerary. Only needed when brand details are needed. Must be sent together.