ExchangeShoppingRQ User Guide 1
User Guide
ExchangeShoppingRQ
Version 2.3.0
March 2019
ExchangeShoppingRQ User Guide 2
© 2019, Sabre Inc. All rights reserved.
This documentation is the confidential and proprietary intellectual
property of Sabre Inc. Any unauthorized use, reproduction,
preparation of derivative works, performance, or display of this
document, or software represented by this document, without the
express written permission of Sabre Inc. is strictly prohibited.
Sabre Travel Network and the Sabre Travel Network logo design
are trademarks and/or service marks of an affiliate of Sabre Inc.
All other trademarks, service marks, and trade names are owned
by their respective companies.
ExchangeShoppingRQ User Guide 3
Table of Contents
Table of Contents ........................................................................................................................................................... 3
1. Introduction ........................................................................................................................................................... 6
Overview ........................................................................................................................................ 6
Features ......................................................................................................................................... 7
2. Understanding the Exchange Shopping Web Service ........................................................................................... 8
Introduction ................................................................................................................................... 8
Exchange Shopping Requirements ................................................................................................ 8
System requirements ............................................................................................................ 8
Eligible Documents ................................................................................................................ 8
Itineraries .............................................................................................................................. 8
Passengers ............................................................................................................................. 8
Options Returned .................................................................................................................. 9
Definitions ..................................................................................................................................... 9
Leg ......................................................................................................................................... 9
Segment ............................................................................................................................... 11
Leg Shopped vs. Leg Not Shopped ...................................................................................... 12
Ancillary Validation ...................................................................................................................... 13
Validation of Air Extras ........................................................................................................ 13
Air Extras for new itinerary options .................................................................................... 15
Request Brand ID ......................................................................................................................... 19
Unique Brand ID for entire itinerary ................................................................................... 19
Multiple Brand IDs for entire itinerary ................................................................................ 19
Specify a unique Brand ID per leg ....................................................................................... 20
Specify multiple Brand IDs per leg ....................................................................................... 20
Keep existing Brand ID for non-shopped legs ..................................................................... 20
Request Brand Ancillaries .................................................................................................... 21
3. Exchange Shopping Request XML ....................................................................................................................... 22
Introduction ................................................................................................................................. 22
Request Attributes ...................................................................................................................... 22
Request Elements ........................................................................................................................ 22
Elements of the Exchange Shopping Request ............................................................................. 23
ExchangeShoppingRQ User Guide 4
Point of sale ......................................................................................................................... 23
Passenger Information ........................................................................................................ 23
Travel Itinerary information ................................................................................................ 24
Types of Legs in the Exchange Shopping Request ............................................................... 24
Maximum Number of Legs vs. Maximum Number of Segments ........................................ 27
4. Search and Pricing Parameters ............................................................................................................................ 28
Introduction ................................................................................................................................. 28
Required Search Parameters ....................................................................................................... 28
Origin and Destination City or Airport ................................................................................. 28
Departure Date and Time or Arrival Date ........................................................................... 28
Optional Search and Pricing Parameters ..................................................................................... 29
Search for Alternate Times before and/or after Departure Time ....................................... 29
Departure or Arrival Time Range......................................................................................... 30
Search for Preferred Airline ................................................................................................. 30
Exclude an Airline ................................................................................................................ 31
Maximum Number of Connections Permitted per Leg ....................................................... 31
Maximum Number of Stops Permitted per Leg .................................................................. 31
Online Carrier Service Only ................................................................................................. 32
Interline Carrier Service Only .............................................................................................. 32
Consider Only These Connection Cities/Airports ................................................................ 33
Use Same Connections ........................................................................................................ 33
Corporate ID ........................................................................................................................ 33
Account Code ...................................................................................................................... 34
Passenger Type Code ........................................................................................................... 34
Specified Passenger Type Only ............................................................................................ 35
Government Status.............................................................................................................. 35
No Penalty Fares .................................................................................................................. 36
Request Public/Private Fares Only ...................................................................................... 36
Exempt all taxes ................................................................................................................... 36
No Min/Max stay ................................................................................................................. 36
No Advance Purchase .......................................................................................................... 36
5. Exchange Shopping Response XML ..................................................................................................................... 37
Introduction ................................................................................................................................. 37
ExchangeShoppingRQ User Guide 5
Response Attributes ............................................................................................................ 37
Response Elements.............................................................................................................. 37
Solutions Returned ...................................................................................................................... 38
Solution Attributes .............................................................................................................. 38
Solution Elements ................................................................................................................ 38
Single Branded Fare ............................................................................................................. 46
6. Exchange Shopping Scenarios ............................................................................................................................. 47
Full Exchange – both legs shopped ............................................................................................. 47
Partially used ticket ..................................................................................................................... 50
Exchange for multiple passengers ............................................................................................... 51
Not Shopped Leg ......................................................................................................................... 57
7. Troubleshooting .................................................................................................................................................. 61
Introduction ................................................................................................................................. 61
Error Messages by Category ........................................................................................................ 61
Business Validation Errors ................................................................................................... 62
Errors from Other Subsystems .................................................................................................... 65
Unable to Verify Interline Coupon Status............................................................................ 65
UNABLE TO REPRICE – VOLUNTARY CHANGE RULES FAILED .............................................. 65
UNABLE TO REPRICE – VOLUNTARY CHANGE RULES UNAVAILABLE .................................. 65
UNABLE TO MATCH FARES .................................................................................................. 65
ExchangeShoppingRQ User Guide 6
1.Introduction
Overview
The Exchange Shopping web service (ExchangeShoppingRQ) allows Sabre Travel Network subscribers to shop for alternate itinerary options when a passenger needs to change their ticketed itinerary.
The Exchange Shopping web service:
• Identifies fares in the ticket to be exchanged and returns up to 50 available itinerary options that are compliant with the carrier’s change policy filed in the Voluntary Changes (Category 31) rules for all ticketed fares.
• Includes information on the cost to change the ticket for each itinerary option for each passenger in the request
• Includes information on the residual amount of any associated EMD-A issued with the ticket presented for exchange
• Includes a list of all available ancillaries for each new itinerary option • Does not modify the PNR or process the ticket exchange
This guide includes:
• Description of the web service features, and additionally
• Examples of typical exchange scenarios
• Examples of calls to the Exchange Shopping service
• Common error messages that may be returned by Exchange Shopping along with a brief explanation and some suggested troubleshooting
The XML examples provided reflect the most common scenarios and is not intended to be a comprehensive list of the available options. Some examples have been shortened for illustrations purposes.
ExchangeShoppingRQ User Guide 7
Features
Exchange Shopping includes the following features:
• Shop alternate board points, off points and/or travel dates of a ticketed itinerary
• Returns up to 50 itinerary options
• Does not require a previous change to the PNR to search for itinerary options
• Does not require an active PNR to search for itinerary options
Exchange Shopping supports the following optional qualifiers:
• Search for preferred airline
• Exclude an airline
• Specify maximum number of connections
• Specify maximum number of stops
• Specify online carrier service only
• Specify interline carrier service
• Search by date and time
• Specify specific connection cities/airports
• Use same connecting points
• Shop by cabin class
• Shop by corporate ID or Account Code
• Shop by Passenger Type Code (PTC)
• Only fares with no penalty
• Consider public/private fares only
• Exempt all Taxes
• Shop fares with no Min/Max stay
• Shop fares with no Advance Purchase
ExchangeShoppingRQ User Guide 8
2.Understanding the Exchange
Shopping Web Service
Introduction This chapter provides information about the types of transactions supported by the Exchange Shopping service and points out invalid requests. It also includes definitions of essential terms associated with the Exchange Shopping transactions used throughout this document.
Exchange Shopping Requirements
System requirements The user PCC must have both OpenSystemsUser and OrchestratedServiceUser SIM attributes added
Eligible Documents • Exchange Shopping applies to flight tickets only, it is not intended for non-flight documents such
as Electronic Miscellaneous Documents (EMD) or Miscellaneous Charge Orders (MCO) • Only one flight document per passenger is allowed • Voluntary Changes (Category 31) rules must be filed for all fares on the ticket being used to shop.
If Category 31 rules are not available for all ticketed fares, Exchange Shopping will fail.
Itineraries • Exchange Shopping supports online, interline, one-way, round trip, open jaw and circle trip
itineraries, as well as itineraries including a maximum of one side trip • Supported segment status codes: BK, HK, IK, RR, and SS
• OPEN segments are supported • The new itinerary may have a maximum of 16 segments, including flown segments and surface
sectors (ARNKs)
Passengers • The request may include up to nine (9) passengers
• A combination of up to four different passenger type codes (PTCs) is supported (e.g. 2ADT + 2CNN).
• Requests for multiple passengers are only supported for the same ticketed itinerary (marketing carrier, flight number, booking class, board and off cities, travel date, coupon status and currency). This applies to all flown and un-flown coupons on the ticket.
• All available passenger type codes (PTCs) are supported except: ASB, BUD, AST, NSB, CSB, YSB, SDB, MSB, YCB, CMA/CMP.
• Individual requests for infants without a seat (INF) are not supported. An infant without a seat must be included in the request with an accompanying adult. For more information, see “Passenger Type Code”
ExchangeShoppingRQ User Guide 9
Options Returned • Exchange Shopping will return up to 50 itinerary options • The options returned may be in different booking classes or in different cabins and will be flagged
accordingly in the response • Requests for multiple passengers will return the same new itinerary options for all passengers • Seat availability is always checked for the total number of passengers in the request • When the request includes infants (INF), the Exchange Shopping response may include an INF fare
option in a booking class that is not available, as INF passengers do not occupy a seat. For more information, please see “Passenger Type Code”.
• The Itinerary options returned will include all available ancillaries (Air Extras)
Definitions
Leg A Leg is a portion of travel between two stopover points. A leg can be a single flight or consist of multiple connecting flights.
In this User Guide, Leg may also be referred to as portion of travel or O&D (Origin and Destination).
The following definition of stopover applies to Exchange Shopping:
• Countries except USA/Canada – A stopover is when a passenger arrives at an intermediate point and is scheduled to depart more than 13 hours after the scheduled arrival time (local time).
If the connection time is greater than 13 hours, consider adding a separate leg within the Exchange Shopping payload.
• USA/Canada – A stopover is when a passenger arrives at an intermediate point and is scheduled to depart more than 4 hours after the scheduled arrival time (local time).
Exchange Shopping Xpath for Leg
ExchangeShoppingRQ/OriginDestinationInformation
Example 1 – Single Segment Legs
The following itinerary has two legs with single segments:
• Leg 1: 18 JAN from SVO to MRV
• Leg 2: 23 JAN from MRV to SVO
1 U01304Y 18JAN J SVOMRV HK1 840A 1050A /E
2 U05371Y 23JAN Q MRVSVO HK1 640A 905A /E
Example 2 – Multiple Segments Legs
The following itinerary has two legs with multiple segments:
• Leg 1: 23 JAN from LED to JFK
• Leg 2: 29 JAN from JFK to LED 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E
2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E
3 U0 101Y 29JAN W* JFKSVO HK1 210P 820A 30JAN Q /E
4 U0 12Y 30JAN Q SVOLED *HK1 1005A 1130A /E
ExchangeShoppingRQ User Guide 10
Mandatory elements for each leg:
Element
Description
Exchange Shopping Path
Start location
Departure city/airport of this portion of travel - three-letter
city or airport code
ExchangeShoppingRQ/OriginDestinati
onInformation/StartLocation
End location
Arrival city/airport of this portion of travel - three-letter
city or airport code
ExchangeShoppingRQ/OriginDestinationInformation/EndLocation
Departure or arrival date
or date and time
Date or date and time of either departure or arrival of given
portion of travel.
For legs that are not shopped, the recommendation is to use
departure date.
For shopped legs, use the date or date and time search
criteria, including additional optional time parameters if
required.
For more information on available parameters, see
- Departure or Arrival Date or Date and Time
- Search for Alternate Times before and/or after
Departure Time
- Departure or Arrival Time Range
ExchangeShoppingRQ/OriginDestinn
ationInformation/DateTimeSelection/
DepartureDate
ExchangeShoppingRQ/OriginDe
stinationInformation/DateTimeS
election/DepartureDateTime
ExchangeShoppingRQ/OriginDestina
tionInformation/DateTimeSelection/A
rrivalDate
Notes
• Depending on the search parameters added and if a leg is shopped, segment information may also be required. For more information, please see “Segment”.
• If there are multiple legs in the Exchange Shopping request, the legs and segments must be sent
in chronological order. If segments are not in chronological order, an error message will be returned, and the transaction will be terminated.
ExchangeShoppingRQ User Guide 11
Segment A segment is an air segment that is part of the leg.
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation/RelatedSegment
Example 1 – Single Segment Legs
There are two legs in the following itinerary, each consisting of one segment: 1 U01304Y 18JAN J SVOMRV HK1 840A 1050A /E
2 U05371Y 23JAN Q MRVSVO HK1 640A 905A /E • Leg (OriginDestinationInformation) 1: with start location at SVO, end location in MRV
and departure date on 18 JAN
Segment (RelatedSegment) 1: U0 1304 Y 18JAN SVOMRV HK 840A 1050A
• Leg (OriginDestinationInformation) 2: with start location in MRV, end location in SVO and departure date on 23 JAN
Segment (RelatedSegment) 1: U0 5371 Y 23JAN MRVSVO HK 640A 905A
Example 2 – Multiple Segment Legs
There are two legs in following itinerary, each consisting of two segments (connecting flights): 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E
2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E
3 U0 101Y 29JAN W* JFKSVO HK1 210P 820A 30JAN Q /E
4 U0 12Y 30JAN Q SVOLED *HK1 1005A 1130A /E
• Leg (OriginDestinationInformation) 1: with start location at LED, end location at JFK and departure date on 23 JAN
o Segment (RelatedSegment) 1: U0 13Y 23JAN LEDSVO HK 1220P 135P
o Segment (RelatedSegment) 2: U0 102Y 23JAN SVOJFK HK1 340P 510P
• Leg (OriginDestinationInformation) 2: with start location at JFK, end location at LED and departure date on 29 JAN
o Segment (RelatedSegment) 1: U0 101Y 29JAN JFKSVO HK 210P 820A 30JAN
o Segment (RelatedSegment) 2: U0 12Y 30JAN SVOLED HK 1005A 1130A
ExchangeShoppingRQ User Guide 12
Leg Shopped vs. Leg Not Shopped The terms “shopped” and “not shopped” are used to indicate if alternate itinerary options should be searched for the entire itinerary or only for a specific portion of travel. “Not shopped” legs are portions of the itinerary that shall remain unchanged.
In the Exchange Shopping request, this is reflected with the following attributes:
When a Leg
is…
And Exchange Shopping
should….
…set ShopIndicator
value to Notes
shopped Search for alternate
itinerary solutions
“true” At least one shopped leg per
request is required. If no leg is shopped, an
error message will be returned, and the
transaction will be terminated.
not shopped keep the segments for this
portion of travel
unchanged in all options
returned.
“false” The same flight segments as originally ticketed
(airline, flight number, date) will be returned
for not shopped legs, however the booking class
may be changed to secure the best pricing
solution.
Segments with coupon status checked-in
(“CKIN”) or boarded (“LFTD”) that are not
shopped will always be returned in the same
booking class as originally ticketed.
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation/@shopIndicator
Example 1 U01304Y 18JAN J SVOMRV HK1 0840 1050 /E
2 U05371Y 23JAN Q MRVSVO HK1 0640 0905 /E
The passenger wants to return 1 day earlier (22 JAN), however the outbound flight (SVO-MRV) remains unchanged.
In this scenario, the Exchange Shopping request will contain two legs:
• Leg (OriginDestinationInformation) 1: SVO-MRV departing on 18 JAN, shopIndicator = “false” When a leg is not shopped, full information about the booked segment(s) is required.
o Segment (RelatedSegment) 1: U01304Y 18JAN SVOMRV HK 840A 1050A • Leg (OriginDestinationInformation) 2: MRV-SVO departing on 22 JAN, shopIndicator = “true”
ExchangeShoppingRQ User Guide 13
Ancillary Validation
Exchange Shopping verifies refundability/reusability details for all EMD-A associated to the ticket being
exchanged. The service also supports the inclusion of additional EMD-A that are not associated to the
ticket being exchanged.
The response will include a list of ancillaries available for each new itinerary option.
Validation of Air Extras
Validation of associated EMDs can be requested with the following attribute:
…/PassengerInformation/PassengerWithPNR/DocumentNumber/@validateAssociatedEMDs= “true”
or
…/PassengerInformation/PassengerWithoutPNR/DocumentNumber/@validateAssociatedEMDs= “true”
Note: It is mandatory to include the document (ticket) number for the passenger whose air extras are to be
validated.
Validation of additional EMDs that are not associated to the ticket can be requested with the following
request elements:
…/PassengerInformation/PassengerWithPNR/ElectronicMiscellaneousDocumentNumber
or
…/PassengerInformation/PassengerWithoutPNR/ElectronicMiscellaneousDocumentNumber
Note: …ElectronicMiscellaneousDocumentNumber must be combined with
…/PassengerInformation/PassengerWithPNR/DocumentNumber/@validateAssociatedEMDs= “true”
or
…/PassengerInformation/PassengerWithoutPNR/DocumentNumber/@validateAssociatedEMDs= “true”
The details of the validated EMDs are returned in the following element in the exchange shopping
response:
/ExchangeShoppingRS/ValidateEMDForExchange
Each set of EMDs will be associated to a specific passenger by name and flight document number.
ExchangeShoppingRQ User Guide 14
Elements and attributes that may be returned in the service response:
Element or Attribute Description Example ExchangeShopping Path
ValidateEMDForExchange Element used to return detailed
information about associated EMDs
N/A /ExchangeShoppingRS/ValidateEM
DForExchange
@documentNumber Flight Document number associated to
the set of EMDs
1231536365124 ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/@docum
entNumber
@firstName
@lastName
First and last name of the passenger ADAM
JONES
ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/@firstNa
me @lastName
ElectronicMiscellaneousDo
cument
Element providing details of the Air
Extras
N/A ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/Electroni
cMiscellaneousDocument
@refundable Value indicating whether the document
is refundable. Possible values are:
Y – Yes
N – No (document is non-refundable)
R – Re-use (Service Type is non-
refundable, but the value may be
reapplied towards a future purchase)
Y ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/Electroni
cMiscellaneousDocument/@refunda
ble
@sequence The order sequence within the set 1 ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/Electroni
cMiscellaneousDocument/@sequen
ce
@type The type of the electronic miscellaneous
document. Possible values can be: A -
Associated S - Stand-alone.
S ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/Electroni
cMiscellaneousDocument/@type
Number EMD number 4531536365124 ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/Electroni
cMiscellaneousDocument/Number
ReasonForIssue A primary single character code
associated to the reason for issuance as
defined by IATA. Possible values can
be:
A - Air Transportation
B - Surface Transportation
C - Baggage
D - Financial Impact
E - Airport Services
F – Merchandise
G- Inflight Services
I – For individual airline use
A ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/Electroni
cMiscellaneousDocument/ReasonF
orIssue
@coupon Service coupon number 1 ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/Electroni
cMiscellaneousDocument/ServiceC
oupon/@coupon
@description Service coupon description Fee description /ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/Electroni
cMiscellaneousDocument/ServiceC
oupon/@description
UnusedAmount Amount of document or item that is not
used
100.00 ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/Electroni
cMiscellaneousDocument/UnusedA
mount
TotalAmount Total amount of the document or item 200.00 ExchangeShoppingRS/ValidateEM
DForExchange/Passenger/Electroni
cMiscellaneousDocument/TotalAmo
unt
ExchangeShoppingRQ User Guide 15
Air Extras for new itinerary options
The Exchange Shopping response will include a list of all available Air Extras for each itinerary option,
including cost and description for each one. Additionally, the response will include baggage allowance
and cost.
The following elements and attributes can be used to request air extras for the new itinerary options:
Element or Attribute Description Example ExchangeShopping Path
AncillaryFees Element used to specify ancillary fees
processing options N/A
ExchangeShoppingRQ/TravelPrefer
ences/AncillaryFees
@Enable Indicates if ancillary fee details should be
included true
ExchangeShoppingRQ/TravelPrefer
ences/AncillaryFees/@Enable
@Summary Indicates if a summary list is requested true ExchangeShoppingRQ/TravelPrefer
ences/AncillaryFees/@Summary
AncillaryFeeGroup Element used to request specific groups of
ancillary fees N/A
ExchangeShoppingRQ/TravelPrefer
ences/AncillaryFees/AncillaryFeeG
roup
@Code
Type of fee group requested
BG – Baggage
IE – In-flight entertainment
ML – Meals
SA – Seats
UN – Unaccompanied passenger
ML
ExchangeShoppingRQ/TravelPrefer
ences/AncillaryFees/AncillaryFeeG
roup/@Code
@Count Number of items requested 1
ExchangeShoppingRQ/TravelPrefer
ences/AncillaryFees/AncillaryFeeG
roup/@Count
Baggage Element used to specify baggage type and
number of pieces N/A
ExchangeShoppingRQ/TravelPrefer
ences/Baggage
@RequestType
Specifies baggage information type.
"A" - allowance only
"C" - allowance and charges
"N" - no baggage information.
A ExchangeShoppingRQ/TravelPrefer
ences/Baggage/@RequestType
@Description Indicates whether baggage information text
should be returned if applicable true
ExchangeShoppingRQ/TravelPrefer
ences/Baggage/@Description
RequestedPieces
Allows specifying the number of bags to be
returned in the response.
Acceptable values range from 1 to 4
2 ExchangeShoppingRQ/TravelPrefer
ences/Baggage/@RequestedPieces
The response payload will provide details on available Air Extras/baggage information associated to each
of the shopping solutions and specific passenger.
The following elements and attributes may be returned in the service response
Element or Attribute Description Example ExchangeShopping Path
TPA_Extensions Element used to return additional details N/A ExchangeShoppingRS/Solution/TPA
_Extensions
@documentNumber Flight document number associated to
the set of EMDs
1231536365124 ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/@document
Number
@firstName
@lastName
First and last name of the passenger ADAM
JONES
ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/@firstName
@lastName
ExchangeShoppingRQ User Guide 16
AncillaryFeeGroups Element used to return ancillary fee
details
Does not repeat
N/A ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups
@Message Message returned only when no
ancillaries are found for a specific
itinerary option
No Ancillary
Fees found
ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/@Message
AncillaryFeeGroup Element used to return details of
specific ancillary fees group code
Repeatable
N/A ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup
@Code Fee group codes defined by ATPCO:
“BG” – Baggage
“IE” – In-flight entertainment
“ML” – Meals
“SA” – Seats
“UN” – unaccompanied passenger
IE ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/@Code
@Name Group Name IN-FLIGHT
ENTERTAINME
NT
ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/@Name
AncillaryFeeItem Element used to return details of a
single ancillary item
N/A ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/Ancillar
yFeeItem
@Amount Fee amount 10.00 ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/Ancillar
yFeeItem/@Amount
@Description Fee description INTERNET
ACCESS
/ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/Ancillar
yFeeItem/@Description
@OriginAirport Code for the origin airport LHR /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/Ancillar
yFeeItem/@OriginAirport
@DestinationAirport Code for the destination airport FRA /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/Ancillar
yFeeItem/@DestinationAirport
@Carrier Carrier code for the operating airline LH /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/Ancillar
yFeeItem/@Carrier
@PassengerCode Passenger Type Code ADT /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/Ancillar
yFeeItem/@PassengerCode
@Date Travel date on which ancillary fee
applies (matches itinerary)
Per segment
2018-12-25 /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/Ancillar
yFeeItem/@Date
@StartSegment Flight segment at which the fee
application begins
1 /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/Ancillar
yFeeItem/@StartSegment
@EndSegment Flight segment at which the fee
application ends
2 (could also be
1)
/ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/AncillaryFee
Groups/AncillaryFeeGroup/Ancillar
yFeeItem/@EndSegment
BaggageInformation Element used to return baggage
information
N/A /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation
ExchangeShoppingRQ User Guide 17
@ProvisionType Indicates baggage information:
“A” – checked baggage allowance
“C” – day of check-in charges
A /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/@
ProvisionType
@AirlineCode Indicates the carrier whose baggage
provisions apply
UA /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/@
AirlineCode
Segment @ID Segment ID for which the baggage
provisions apply
1 /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/Se
gment/@Id
Allowance Element used to return baggage
allowance details
N/A /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/All
owance
@Pieces Number of pieces 1 /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/All
owance/@Pieces
@Weight Weight limit 23 /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/All
owance/@Weight
@Unit Units of weight limit KG /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/All
owance/@Unit
@Description1
@Description2
Baggage text information.
Can apply to Allowance and/or
Charges element
UP TO 50
POUNDS/23
KILOGRAMS
/ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/All
owance/@Description1/@Descripti
on2
Charge Baggage charge information N/A /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/Ch
arge
@EquivalentAmount Baggage charge equivalent amount 100.00 /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/Ch
arge/@EquivalentAmount
@EquivalentCurrency Equivalent currency GBP /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/Ch
arge/@EquivalentCurrency
@FirstPiece First piece of baggage for which the
specified charge information applies
1 /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/Ch
arge/@FirstPiece
@LastPiece Last piece of baggage for which the
specified charge information applies
2 /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/Ch
arge/@LastPiece
@Description1
@Description2
Baggage text information.
Can apply to Allowance and/or
Charges element
UP TO 50
POUNDS/23
KILOGRAMS
/ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/Ch
arge/@Description1 @Description2
ExchangeShoppingRQ User Guide 18
@NoChargeNotAvailable Will be returned in the response
whenever baggage information was
requested but is not available.
The response values may be:
X – service not available
F – no charge for the service (free), and
no EMD is issued for the free service
E – no charge for service (free), and an
EMD is issued for the free service
G – no charge for service (free),
booking is not required and no EMD is
issued for the free service
H- no charge for the service (free),
booking is not required, and an EMD is
issued for the free service
X /ExchangeShoppingRS/Solution/TPA
_Extensions/Passenger/BaggageInfo
rmationList/BaggageInformation/Ch
arge/@NoChargeNotAvailable
ExchangeShoppingRQ User Guide 19
Request Brand ID
Exchange Shopping allows users to target specific resulting fares using a Brand ID Code. The request can
include a unique Brand ID or multiple Brand IDs that can be applied to the entire itinerary or per leg.
Unique Brand ID for entire itinerary
A unique Brand ID can be requested for the entire itinerary by combining:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndica
tors/@singleBrandedFare=”true”
with
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndica
tors/BrandFilters/Brand/@code paired with @preferLevel=”Preferred”
This will result in fare options in the requested brand
Note: the cheapest option may not be assigned to a brand. In order to get only branded options in the
response, the following attribute should be added to the request:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndica
tors/BrandFilters/NonBrandedFares/@preferLevel=”Unacceptable”
Multiple Brand IDs for entire itinerary
Multiple Brand IDs can be requested for the entire itinerary by combining:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndica
tors/@singleBrandedFare=”true”
With multiple instances of:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndica
tors/BrandFilters/Brand[n]/@code paired with @preferLevel=”Preferred”
This will result in options that include fares in any of the requested brands
Note: the cheapest option may not be assigned to a brand. In order to get only branded options in the
response, the following attribute should be added to the request:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndica
tors/BrandFilters/NonBrandedFares/@preferLevel=”Unacceptable”
ExchangeShoppingRQ User Guide 20
Specify a unique Brand ID per leg
A Unique Brand ID can be requested per leg by combining:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndica
tors/@singleBrandedFare=”true”
with
/ExchangeShoppingRQ/OriginDestinationInformation[n]/BrandFilters/Brand/@code paired with
@preferLevel=”Preferred”
This will result in options using fares in the requested brand for each defined leg
Note: the cheapest option may not be assigned to a brand. In order to get only branded options in the
response, the following attribute should be added to the request:
/ExchangeShoppingRQ/OriginDestinationInformation[n]/BrandFilters/NonBrandedFares/@preferLevel=
”Unacceptable”
Specify multiple Brand IDs per leg
Multiple Brand IDs can be requested per leg by combining:
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndica
tors/@singleBrandedFare=”true”
with multiple instances of:
/ExchangeShoppingRQ/OriginDestinationInformation[n]/BrandFilters/Brand[n]/@code paired with
@preferLevel=”Preferred”
This will result in options using any fare in the requested brands for each defined leg.
Note: the cheapest option may not be assigned to a brand. In order to get only branded options in the
response, the following attribute should be added to the request:
/ExchangeShoppingRQ/OriginDestinationInformation[n]/BrandFilters/NonBrandedFares/@preferLevel=
”Unacceptable”
Please note that is not advisable to combine Brand IDs per leg with Brand IDs for entire itinerary within
one Exchange Shopping request
Keep existing Brand ID for non-shopped legs
To keep the existing brand for any non-shopped legs in the itinerary, please specify:
/ExchangeShoppingRQ/OriginDestinationInformation/RelatedSegment/@brand
when passing related segment information.
ExchangeShoppingRQ User Guide 21
Request Brand Ancillaries
Use the below attribute to identify the optional services that are applicable for each brand program. This is
done with the use of the ATPCO Branded Fares Feature Table 166
/ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/BrandedFareIndica
tors/@returnBrandAncillaries=”true” (must be combined with /@singleBrandedFare=”true”)
The response payload will provide the list of all applicable brand features and an ID to match them with
specific passenger fare component. Element or Attribute Description Example ExchangeShopping Path
BrandFeatures Element used to show the list of all
brand feature items
N/A /ExchangeShoppingRS/BrandFeatures
BrandFeature Element used to return ancillary fee
details
Does not repeat
N/A ExchangeShoppingRS/Solution/TPA_Ex
tensions/Passenger/AncillaryFeeGroup
s
@id is a reference id to
.../Solution/Fare/ReservationSegmentD
etails/PassengerBookingDetails/BrandF
eatureRef/@featureId
1 /ExchangeShoppingRS/BrandFeatures/
BrandFeature/@id
@application Fee application type. The possible
values are: F- free, C- Charges, D-
Displayed but not offered , N- Not
applicable
C /ExchangeShoppingRS/BrandFeatures/
BrandFeature/@application
@serviceType Possible values are: Z- Branded Fares,
F- flight related, T- ticket related
ancillary, R- rule buster, M -
merchandise, C - baggage
C /ExchangeShoppingRS/BrandFeatures/
BrandFeature/@serviceType
@serviceGroup Ancillaries group code BF /ExchangeShoppingRS/BrandFeatures/
BrandFeature/@serviceGroup
@subCode A three-character alphanumeric code
that is filed in the S5 record. This can
be an industry sub-code or a carrier
defined sub-code
050 /ExchangeShoppingRS/BrandFeatures/
BrandFeature/@subCode
@vendor Data provider. Possible values are ATP
- ATPCO, MM - Merchandising
Manager.
ATP /ExchangeShoppingRS/BrandFeatures/
BrandFeature/@vendor
@commercialName Commercial name of the brand feature SEAT /ExchangeShoppingRS/BrandFeatures/
BrandFeature/@commercialName
BrandFeatureRef@featureId Reference to the final brand feature
items list. References to applicable
.../BrandFeatures/BrandFeature/@id
1 /ExchangeShoppingRS/Solution/Fare/R
eservationSegmentDetails/PassengerBo
okingDetails/BrandFeatureRef/@featur
eId
ExchangeShoppingRQ User Guide 22
3.Exchange Shopping Request XML
Introduction This chapter provides detailed information about select portions of the XML request that may need additional explanation beyond what is described in general information and schema annotations, as well as sample Exchange Shopping requests for different business scenarios.
Note This chapter is intended as a supplement to the Exchange Shopping schema definition available
in Dev Studio
Request Attributes
Attribute Description Exchange Shopping Path
XML version Required in the XML schema ExchangeShoppingRQ/@Version
Request Elements
Element Description Exchange Shopping Path
Header Standard header information ExchangeShoppingRQ/Header
One of the possible optional Header attributes
Default timeout
override
Header element includes the attribute that allows the
user to override the default timeout. When sent, this will
be the time after which Exchange Shopping will try to
stop processing the transaction. However, if the
system is in the middle of processing in one of the
subsystems, the timeout may occur after the timeout
sent by the user.
ExchangeShoppingRQ/Header/@ttl
Request XML elements
Point of Sale
(POS)
Point of sale and agent requesting the Exchange Shopping
transaction. This data must match the data that will be used in
the subsequent exchange transaction to ensure the cost
of the exchange does not vary.
ExchangeShoppingRQ/POS
Ticketing provider
code
Two-character code of the partition on whose behalf the
Exchange Shopping transaction is performed. Agency
customers should use the value “1S or 1B”
ExchangeShoppingRQ/TicketingProvider
Passenger
information
Details about passengers and the flight documents to be
changed
ExchangeShoppingRQ/PassengerInform
ation
Travel itinerary
information
Details about the requested travel itinerary, including
portions of travel (and related segments) that should remain
unchanged (legs not shopped).
ExchangeShoppingRQ/OriginDestinatio
nInformation
Travel
preferences
Additional shopping criteria to be used when searching for
alternate options. Optional qualifiers are described in
“Optional Search and Pricing Parameters”
ExchangeShoppingRQ/TravelPreference
s
Diagnostic Reserved for internal Sabre use only ExchangeShoppingRQ/Diagnostic
ExchangeShoppingRQ User Guide 23
Elements of the Exchange Shopping Request This section provides more details about select portions of the Exchange Shopping request that may require additional explanation.
Point of sale
The following elements identifying the Point of Sale are required in the Exchange Shopping request. These elements are optional in the XML schema; however they are verified at the business rule validation layer.
Element Description Example Exchange Shopping Path
Pseudo Three-letter pseudo city code G7HE ExchangeShoppingRQ/POS/P
seudo
Shopping path
Allows the point of sale to specify the attribute
that is used to determine shopping rules
selection. The value of request type attribute
passed by Point of Sale identifies the Shopping
rule that should be applied during Exchange
Shopping transaction.
If there is no specific Shopping rule that the
Point of Sale wants to apply, it is recommended
to send the value “TNEXC”.
TNEXC ExchangeShoppingRQ/POS/S
hoppingPath/@requestType
Passenger Information
This part of the Exchange Shopping XML request is used to specify details about the passengers requesting the change.
A maximum of nine (9) passengers may be included in a single Exchange Shopping request, which means up to nine repetitions of this data set are supported.
The PNR status will dictate the required data set.
Passenger with an Active PNR
The following elements are required when the passenger has an active PNR.
Element Description Example Exchange Shopping Path
PNR locator
All passengers in the request are not required to be
booked in the same PNR, however the requested
itinerary must match for all passengers in the request.
If all passengers are not booked in the same PNR, it is
the responsibility of the user to correctly handle the
rebooking process
Not mandatory
YTRBDE
ExchangeShoppingRQ/Passeng
erInformation/PassengerWithP
NR/@pnrLocator
Reference
Number
Passenger reference number as reflected in the PNR
Not mandatory 1.1
ExchangeShoppingRQ/Passeng
rInformation/PassengerWithPN
R/@referenceNumber
ExchangeShoppingRQ User Guide 24
Passenger without an Active PNR
The following elements are required when there is no active PNR (e.g. original PNR has purged, but the ticket is still eligible for exchange). The assumption is that all portions of travel for passengers without an active PNR will be shopped.
Element Description Example Exchange Shopping Path
Document number
Ticket number to be changed. If the document in the request is a conjunctive ticket, e.g. 1234567890-91, only the number of the first ticket should be passed in the request (e.g.1234567890).
1231234567890 ExchangeShoppingRQ/Pass
engerInformation/Passenger WithoutPNR/DocumentNumber
Travel Itinerary information
This section of the XML request provides information about the requested travel itinerary and focuses on mandatory elements for specific business scenarios. For details on optional parameters, please see “Optional Search and Pricing Parameters”.
Types of Legs in the Exchange Shopping Request
There are three types of legs (O&Ds) which will require a different data set depending on what changes are requested:
• Not shopped • Shopped • Shopped with same connections
All three types of legs can be combined within a single Exchange Shopping request.
Passenger name Full first and last name as reflected in the PNR.
Mandatory ADAM JONES
ExchangeShoppingRQ/Passeng
erInformation/PassengerWithP
NR/@firstName
ExchangeShoppingRQ/Passeng
erInformation/PassengerWithP
NR/@lastName
Document
number
Ticket number to be changed. If the document in the
request is a conjunctive ticket, e.g. 1234567890-91,
only the number of the first ticket should be passed in
the request (e.g.1234567890).
If the name in the request does not match the name on
the provided document, the transaction will still be
processed, and a warning will be added when
returning the options. It will be at the user’s discretion
to display the options to the customer or fail the
transaction.
1231234567890
ExchangeShoppingRQ/Passeng
erInformation/PassengerWithP
NR/DocumentNumber
ExchangeShoppingRQ User Guide 25
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation
Not Shopped Leg
Full information about the segments in the PNR that should be included on the new ticket must be included in
the request, as the Exchange Shopping service does not access the PNR to verify details.
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation/@shopIndicator = “false”
Required Information for Not Shopped Leg
If the leg is not shopped, details about all related segments pertaining to this leg are required. If no flight
segment information is provided for the leg, an error message will be returned, and the transaction will be
terminated.
The following flight segment information elements from the PNR are required for the leg that is not
shopped:
Element Description Example ExchangeShopping Path
Operating carrier Two-character alphanumeric code for the
operating carrier of the flight segment
XX ExchangeShoppingRQ/OriginDestin
ationInformation/RelatedSegment/
@operatingProvider
Marketing carrier Two-character alphanumeric code for the
marketing carrier of the flight segment
YY ExchangeShoppingRQ/OriginDestin
ationInformation/RelatedSegment/
@marketingProvider
Flight number Numeric marketing flight number 6130 ExchangeShoppingRQ/OriginDestin
ationInformation/RelatedSegment/
@marketingFlightNumber
Departure airport Three-character departure airport of the flight
segment
LHR ExchangeShoppingRQ/OriginDestin
ationInformation/RelatedSegment/
@startLocation
Arrival airport Three-character arrival airport of the flight
segment
PHL ExchangeShoppingRQ/OriginDestin
ationInformation/RelatedSegment/
@endLocation
Reservation booking
class
Code for the reservation booking class S ExchangeShoppingRQ/OriginDestin
ationInformation/RelatedSegment/
@bookingClass
Reservation status Reservation status as in the PNR HK ExchangeShoppingRQ/OriginDestin
ationInformation/RelatedSegment/
@reservationStatus
Departure date/time Flight segments departure date and time 2017-05-
20T12:40:00
ExchangeShoppingRQ/OriginDestin
ationInformation/RelatedSegment/
@startDateTime
Arrival date/time Flight segment arrival date and time 2017-05-
20T15:25:00
ExchangeShoppingRQ/OriginDestin
ationInformation/RelatedSegment/
@endDateTime
Booking date/time Flight segment booking date and time 2017-05-
10T04:08:00
ExchangeShoppingRQ/OriginDestin
ationInformation/RelatedSegment/
@bookingDateTime
ExchangeShoppingRQ User Guide 26
Sample XML Request with Not Shopped Leg
The passenger would like to keep the first leg of the journey and exchange only the return (PHL-LHR), which means the outbound leg (LHR-PHL) is not shopped.
1.1JONES/MARK ADT
1 AA6130S 20MAY 6 LHRPHL HK1 1240 1525 /DCAA*NSSUOV /E
OPERATED BY BRITISH AIRWAYS
2 AA6129S 26MAY 5 PHLLHR HK1 1830 0635 27MAY 6
Details of not shopped leg in the Exchange Shopping request:
<ExchangeShoppingRQ xmlns=“http://services.sabre.com/sp/exchange/shopping/v2"
xmlns:n0=“http://services.sabre.com/sp/exchange/shopping/common/types/v2"
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance" version=“2.2.0">
<STL_Header.RQ ttl=“300">
<OrchestrationID seq=“0">027364343467758035</OrchestrationID>
</STL_Header.RQ>
<POS>
<Pseudo>G7HE</Pseudo>
<Actual>DFW</Actual>
<ShoppingPath requestType=“TNEXC" bookingChannel=“TN"/>
</POS>
<TicketingProvider>1S</TicketingProvider>
<PassengerInformation>
<PassengerWithPNR pnrLocator=“DNANZS" referenceNumber=“1.1"
firstName=“MARK" lastName=“JONES">
<DocumentNumber>0017944161064</DocumentNumber>
</PassengerWithPNR>
</PassengerInformation>
<OriginDestinationInformation shopIndicator=“false">
<DateTimeSelection>
<DepartureDate>2017-05-20</DepartureDate>
</DateTimeSelection>
<StartLocation>LHR</StartLocation>
<EndLocation>PHL</EndLocation>
<RelatedSegment operatingProvider=“XX" marketingProvider=“YY"
marketingFlightNumber=“6130" startDateTime=“2017-05-20T12:40:00" endDateTime=“2017-05-
20T15:25:00" startLocation=“LHR" endLocation=“PHL" bookingClass=“S"
reservationStatus=“HK" bookingDateTime=“2017-05-10T04:08:00"/>
</OriginDestinationInformation>
<OriginDestinationInformation shopIndicator=“true">
<DateTimeSelection>
<DepartureDate>2017-05-26</DepartureDate>
</DateTimeSelection>
<StartLocation>PHL</StartLocation>
<EndLocation>BWI</EndLocation>
</OriginDestinationInformation>
</ExchangeShoppingRQ>
ExchangeShoppingRQ User Guide 27
Shopped Leg combined with “Use Same Connections” Parameter
If the leg is shopped AND the “Use Same Connections” parameter is used for this leg, only itinerary options for the indicated city pair and travel dates connecting through the same airports as already ticketed will be searched. Full details are required for related segments in the request.
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation/@shopIndicator=“true”
and
ExchangeShoppingRQ/OriginDestinationInformation/@preserveConnectionsIndicator=“true”
Shopped Leg NOT combined with “Use Same Connections” Parameter
When a leg is shopped but the “Use Same Connections” search parameter is not applied, no related flight segment details are required. These details will be ignored if included in the request.
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation/@preserveConnectionsIndicator=“false” or is not sent at all
Information on the Leg Level
The following elements need to be passed for the leg that is not shopped:
Element Description Exchange Shopping Path
Start Location Three-letter airport or city code where
portion of travel should begin
ExchangeShoppingRQ/OriginDestinationInformation/Start
Location
End Location Three-letter airport or city code where
portion of travel should end
ExchangeShoppingRQ/OriginDestinationInformation/EndL
ocation
Departure or arrival date or date and time
Departure or arrival date or date and
time when portion of travel should start
or end.
ExchangeShoppingRQ/OriginDestinationInformation/Dat
eTimeSelection/DepartureDate
ExchangeShoppingRQ/OriginDestinationInformation/Dat
eTimeSelection/DepartureDateTime
ExchangeShoppingRQ/OriginDestinationInformation/Dat
eTimeSelection/ArrivalDate
Note All other search and pricing parameters are optional.
Maximum Number of Legs vs. Maximum Number of Segments
The maximum number of legs (O&Ds) supported is ten (10). The maximum number of segments
supported is sixteen (16).
If a leg is shopped and the “Use Same Connections” parameter is not applied, that leg is counted both as one leg and one segment.
Exchange Shopping Xpath for Leg
ExchangeShoppingRQ/OriginDestinationInformation
Exchange Shopping Xpath for Segment
ExchangeShoppingRQ/OriginDestinationInformation/RelatedSegment
ExchangeShoppingRQ User Guide 28
4.Search and Pricing Parameters
Introduction The Exchange Shopping web service supports a wide range of search and pricing parameters that can be used to narrow down shopping results. Multiple parameters may be combined within a single request.
The purpose of this chapter is to provide detailed information on these parameters. These parameters are included in one of the following sections of the request based on application (per passenger, per leg, or per entire request):
Exchange Shopping Xpath
ExchangeShoppingRQ/PassengerInformation
ExchangeShoppingRQ/OriginDestinationInformation
ExchangeShoppingRQ/TravelPreferences
The following sections provide details about each of these parameters, including specific scenarios and expected results.
Required Search Parameters
These parameters must be provided when:
• A given portion of travel should remain unchanged (leg not shopped) • Alternate options should be searched for a given leg (leg shopped), but originally ticketed
airports or dates should remain unchanged • A new leg should be added to the ticketed itinerary
Origin and Destination City or Airport This parameter provides details about the origin and destination city/airport of each portion of travel (leg) in the request.
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation/StartLocation
ExchangeShoppingRQ/OriginDestinationInformation/EndLocation
Departure Date and Time or Arrival Date This parameter provides details about the departure or arrival date or date and preferred time of a specific portion of travel. The following applies:
• These parameters always apply per leg.
• Either departure date and time OR arrival date can be requested per single leg.
• If both departure AND arrival date or date and time are requested for the same leg, an error message
will be returned. This is controlled by the Exchange Shopping XML schema. = validation
• If there is more than one leg within the request, departure or arrival dates can be combined
between different legs, for example, on the first leg, departure time is used and on the second one,
arrival date.
ExchangeShoppingRQ User Guide 29
• Date/time is always considered local date/time at associated airport/city. For departure date/time, it is the local date/time at the origin airport/city.
• If departure time is indicated in the request, the Exchange Shopping web service will search for the flights using the requested time as the preferred one.
• If no departure or arrival is included in the request, the service will check for the flights departing or arriving between 00:00 and 23:59 of the day indicated as departure or arrival date.
Exchange Shopping Xpaths
ExchangeShoppingRQ/OriginDestinationInformation/DateTimeSelection/DepartureDate
or:
ExchangeShoppingRQ/OriginDestinationInformation/DateTimeSelection/DepartureDateTime
or:
ExchangeShoppingRQ/OriginDestinationInformation/DateTimeSelection/ArrivalDate
Optional Search and Pricing Parameters The following optional search and pricing parameters only apply to shopped legs. If any of these parameters are included for not shopped legs they will be ignored.
Search for Alternate Times before and/or after Departure Time This parameter allows searching for alternate itinerary options departing a specific number of hours
before and/or after departure time specified in the request.
• This parameter applies per leg
• The value for this parameter can be from 001 to 009, which defines a window of 1 to 9 hours
around the preferred departure time. • “Alternate Times before and/or after Departure time” cannot be combined with “Search by Arrival
Date”, “Arrival Date and Time” or “Search by Departure/Arrival Time Range” within the same leg.
• When shopping for multiple legs, “Search for Alternate Times Before and/or After Departure
Time” can be combined with “Preferred Departure/Arrival Time Range”, “Search by Arrival Date”
or “Arrival Date and Time” on different legs.
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation/DateTimeSelection/DepartureDateTime/@minus -
departure given number of hours before departure time specified in the request
ExchangeShoppingRQ/OriginDestinationInformation/DateTimeSelection/DepartureDateTime/@plus -
departure given number of hours after departure time specified in the request
ExchangeShoppingRQ User Guide 30
Departure or Arrival Time Range This qualifier allows to search for itinerary options by departure or arrival time range.
• This parameter applies per leg
• Unless otherwise specified, the default is to check all flight times
• This parameter applies to origin/destination only, it does not apply to connecting points.
For example:
For the leg from Larnaca (LCA) to London (LON) via Amsterdam (AMS), only the departure time
range of flights from LCA or arrival time range in LON will be considered. AMS is not considered
as it is a connecting city.
• Either departure or arrival time range can be requested for a given leg
• If departure/arrival time window is requested, both time window start time and end time must
be specified, otherwise the time range parameter will be ignored.
• Combining departure or arrival time range with “Preferred Departure or Arrival Time” or
“Alternate Time before/after Departure” search parameters within a single leg is not allowed and
controlled by the XML schema.
Exchange Shopping Xpaths
ExchangeShoppingRQ/OriginDestinationInformation/DateTimeSelection/DepartureDate/@timeWindowS
tart
ExchangeShoppingRQ/OriginDestinationInformation/DateTimeSelection/DepartureDate/@timeWindowE
nd
or: ExchangeShoppingRQ/OriginDestinationInformation/DateTimeSelection/ArrivalDate/@timeWindowStart
ExchangeShoppingRQ/OriginDestinationInformation/DateTimeSelection/ArrivalDate/@timeWindowEnd
Search for Preferred Airline The Preferred Airline indicator narrows the returned options down to only the ones that include
the specified carrier(s).
• This parameter applies per leg
• The default is to check all carriers if carrier application is not restricted by Category 31 rules or other
restrictions of the exchanged fare.
• Up to 20 preferred carriers can be specified per leg
• The carrier code must be specified with two alpha-numeric characters. Any other character
combination will result in an error.
• This parameter applies only to the marketing carrier; the operating carrier is not taken into
consideration.
• The same carrier code may not be included as preferred and non-preferred (see “Exclude an
Airline”) carrier when combining both parameters. Including the same carrier code when
combining both parameters will result in the following error response:
“Unable to process the request where the same airline: {carrier’s two-character code} is indicated
as preferred and non-preferred carrier. Please amend your request and try again.”
Note This validation only applies to shopped legs.
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation/IncludeVendor
ExchangeShoppingRQ User Guide 31
Exclude an Airline
The Exclude an Airline indicator narrows the returned options down to only to the ones that do not
include the non-preferred carrier(s).
• This parameter applies to the entire request
• The default is to check all carriers if the carrier application is not restricted by Category 31 rules or
restrictions of any other category of exchanged fare.
• Up to 20 non-preferred carriers can be specified per itinerary
• The carrier code must be specified with two alpha-numeric characters. Any other character
combination will result in an error.
• This parameter applies only to the marketing carrier; the operating carrier is not taken into
consideration.
• The same carrier code may not be included as preferred and non-preferred (see “Search for
Preferred Airline”) carrier when combining both parameters. Including the same carrier code when
combining both parameters will result in the following error response:
“Unable to process the request where the same airline: {carrier’s two-character code} is indicated
as preferred and non-preferred carrier. Please amend your request and try again.”
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/ExcludeVendor
Maximum Number of Connections Permitted per Leg The Maximum Number of Connections indicator is used to set the maximum acceptable number of
connections allowed per leg in the itinerary. Intermediate stops with no change of plane are not considered
connections.
• Applicable to the entire request (i.e. to all shopped legs). It is not possible to request a different
maximum number of connections per each leg.
• Possible values are: 0, 1, 2, or 3 to indicate the maximum number of connections
• The default number of connections is 3
• Any value other than 0-3 will result in an error message
• Zero (0) indicates a request for either nonstop or direct flights only
• This qualifier cannot be combined with “Use Same Connections” and/or “Maximum Number of
Stops per Leg”.
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/Flight/@maxConnections
Maximum Number of Stops Permitted per Leg This indicator is used to set the maximum acceptable number of intermediate stops allowed per portion
of travel. Intermediate stops (no change of plane) are counted as connections for the purposes of this
indicator.
• Applicable to the entire request (i.e. all shopped legs). It is not possible to request a different
number of maximum number of stops for different legs.
• Possible values are: 0, 1, 2, or 3 to indicate the maximum number of stops
• If value other than 0-3 will result in an error message
• Zero (0) indicates a request for nonstop flights only
ExchangeShoppingRQ User Guide 32
• This qualifier cannot be combined with “Use Same Connections” and/or “Maximum Number of
Connections per Leg”.
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/@maxStops
Online Carrier Service Only This parameter allows to search for online (single carrier) itinerary options.
• Applies to the entire request
• This parameter applies to the marketing carrier only; the operating carrier is not taken into
consideration
• Different itinerary options may be on different carriers; however each option will include flights on a
single carrier (e.g. option 1 returns flights for carrier XX only, option 2 returns flights for carrier YY
only)
• Both online and interline itineraries will be returned by default unless otherwise restricted by
Category 31 rules. To get both online and interline itinerary options, “Specify Interline Carrier
Service Only” should be skipped in the request.
• If the online indicator is set to “true,” only itineraries on a single marketing carrier will be
returned if applicable per the Category 31 rules of the ticketed fare(s).
• This parameter may not be combined with “Interline Carrier Service Only.” Setting both the
online and interline indicators to “true” will result in an error response.
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/@onlineIndicator
Interline Carrier Service Only
This parameter allows to search for interline (multi-carrier) itinerary options.
• Applies to the entire request
• Each itinerary option will include flights on at least two different marketing carriers, unless
restricted by the Category 31 rules of the ticketed fare(s).
• Both online and interline itineraries will be returned by default unless otherwise restricted by
Category 31 rules. To get both online and interline itinerary options, “Specify Interline Carrier
Service Only” should be skipped in the request.
• If the interline indicator is set to “true,” only itineraries with multiple marketing carriers will be
returned if applicable per the Category 31 rules of the ticketed fare(s).
• This parameter may not be combined with “Interline Carrier Service Only.” Setting both the online
and interline indicators to “true” will result in an error response.
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/@interlineIndicator
ExchangeShoppingRQ User Guide 33
Consider Only These Connection Cities/Airports
This indicator is used to specify connection cities or airports.
• When using city codes to indicate connecting points, all airports will be considered for multi-airport
locations (e.g. LON) as per DSF settings for multi-airports. • When using airport code as connecting point (e.g. LHR), only this airport will be considered when
searching for itinerary options.
• When specifying one connection city/airport, only this city/airport will be considered as a
connecting point for the itinerary options.
• When specifying more than one connection city/airport, itinerary options with one or more of these
connection points will be returned. The options returned will not include connections via any other
cities/airports.
• Direct flights can also be returned if connection locations are requested.
• A request may include this parameter as well as the “Use Same Connections” search parameter,
however they may not be used for the same leg. Combining these two parameters on the same leg
will result in an error message.
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation/ConnectionLocation/Location
Use Same Connections This qualifier allows to search for itinerary options using same connecting cities as already ticketed.
• This parameter cannot be combined with “Maximum Number of Stops per Leg” and/or
“Maximum Number of Connections per Leg”.
• This parameter may be combined with “Consider Only These Connection Cities/Airports” in a
request, however they may not be combined on the same leg. Combining these two parameters on
the same leg will result in an error message.
• The itinerary options returned may include additional connecting points for that leg in addition to
the specified connecting point if lower fares are found.
• This qualifier only applies to transactions with an active PNR, as it requires full details for the
booked segments.
Exchange Shopping Xpath
ExchangeShoppingRQ/PassengerInformation/PassengerWithoutPNR
Exchange Shopping Xpath
ExchangeShoppingRQ/OriginDestinationInformation/@preserveConnectionsIndicator=“true”
Corporate ID This qualifier allows to search for negotiated fares filed with a Corporate ID.
• This qualifier applies to the entire request and to all passengers included in the request.
• Exchange Shopping will always return the lowest applicable fare combination for the itinerary
option, even if the resulting fares are not filed with the requested Corporate ID.
• Only one Corporate ID is allowed in the request.
• A Corporate ID may not be combined with an Account Code within the same request.
ExchangeShoppingRQ User Guide 34
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/@corporateID
Account Code This qualifier allows to search for negotiated fares filed with an Account Code.
• This qualifier applies to the entire request and to all passengers included in the request
• Exchange Shopping will always return the lowest applicable fare combination for the itinerary option,
even if the resulting fares are not filed with the requested Account Code
• Only one Account Code per transaction is allowed.
• An Account Code may not be combined with a Corporate ID
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/@accountCode
Passenger Type Code This parameter allows to search for itinerary options for a specific Passenger Type Code (PTC).
• This parameter applies to the entire itinerary for each passenger.
• Only one PTC can be specified per given passenger.
• If the adult (ADT) fare is lower than the fare for the requested PTC and that PTC maps to ADT, the
lower ADT fare will be returned.
• When no PTC is defined in the Exchange Shopping request, the search will default to ADT
• A maximum of nine different PTCs are supported per request.
• When the request includes infants not occupying a seat (e.g. INF), the options returned for the infant
may be in a different booking class as the option for the passengers occupying a seat, as availability is
not verified for infants.
Exchange Shopping Xpath
ExchangeShoppingRQ/PassengerInformation/PassengerWithoutPNR/PassengerTypeOverride
or:
ExchangeShoppingRQ/PassengerInformation/PassengerWithPNR/PassengerTypeOverride
Requests for Infant PTCs Only
Exchange Shopping does not support requests for infant passengers only. At least one accompanying
non-infant type passenger is required in the Exchange Shopping request.
This applies to PTCs overridden in Exchange Shopping request using the Shop by Passenger Type Code
parameter or, if not applied, to the default PTC with which the exchanged ticket was priced.
Check PTC validation – what happens if no PTC is specified for new ticket in AE
Solution Returned in Different Booking Classes for Different PTCs
When the Exchange Shopping request includes multiple PTCs (e.g. 2 ADT + 2 YTH), the options
returned may be in a different booking class for each PTC if this results in a lower fare.
This applies to PTCs overridden in the Exchange Shopping request using the Shop by Passenger Type
Code parameter or, if not applied, to the defaulted PTC with which the exchanged ticket was priced.
When the option returned includes different booking classes for the different PTCs, the following flag
will be set to “true” in the response in order to indicate that the solution will require splitting PNR:
ExchangeShoppingRQ User Guide 35
Exchange Shopping Xpath
ExchangeShoppingRS/Solution/@requireSplitPNR
When the solution includes different booking classes for the different PTCs, availability is still checked for the
total number of passengers in the request to ensure enough seats are available.
Solution Returned in Different Cabin Classes for Different PTCs
When the Exchange Shopping request involves multiple PTCs (e.g. 2 ADT + 2 YTH), the itinerary
options returned may be not only in different booking classes, but also in different cabins for each PTC if
this results in a lower fare (e.g. business cabin for ADTs and economy cabin for YTH).
When the option returned are in a different cabin for at least one segment for the different PTCs, the
following flag will be returned:
Exchange Shopping Xpath
ExchangeShoppingRS/Solution/@passengersInDifferentCabins=“true"
The response will also include the flag indicating that a PNR split is required.
Handling Infants in Terms of Options in Different Cabins
When an option includes a fare for an infant without a seat (e.g. INF) with at least one segment in a cabin
that is different from any other non-infant, that itinerary option will not be included in the Exchange
Shopping response, as infant passenger are not allowed to travel in a different cabin than the passenger(s)
occupying a seat.
Note There is no validation of the accompanying passenger for infant type PTCs performed.
Specified Passenger Type Only
This qualifier will only return fares filed with the requested passenger type. The returned options will not
include adult fares, even if these are lower.
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/XOFares/@value
Government Status This qualifier allows to target fares with specific eligibility requirements. The requested government
status types must be followed by appropriate country, country and state, or city code.
The following government status types are supported:
• Nationality – requires 2-letter country code (e.g. RU),
• Residency – requires either a 2-letter country code (e.g. ES), a 2-letter country code followed by a
2-letter state/region code (e.g. USFL for the state of Florida in USA), or a 3-letter city code (e.g.
BKK)
• Employee - requires 2-letter country code (e.g. ES) or a 2-letter country code followed by a 2-
letter state/region code (e.g. USFL for the state of Florida in USA).
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/GovernmentStatus
ExchangeShoppingRQ User Guide 36
No Penalty Fares
This qualifier will return only fares with no change or cancellation fees.
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/@noPenaltyFares
Request Public/Private Fares Only These qualifiers will return only options with published or private fares. They cannot be combined.
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/PublicFare/@ind
or
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/PrivateFare/@ind
Exempt all taxes This qualifier will exempt only taxes from the total price, however fees and passenger facility charges
(PFC) will be included.
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/ExemptAllTaxes/@v
alue
No Min/Max stay This qualifier is used to search for fares with no minimum/maximum stay restrictions.
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/MinMaxStay/@ind
No Advance Purchase This qualifier is used to search for fares with no advance purchase restrictions.
Exchange Shopping Xpath
ExchangeShoppingRQ/TravelPreferences/PriceRequestInformation/TPA_Extensions/ResTicketing/@ind
ExchangeShoppingRQ User Guide 37
5.Exchange Shopping Response XML
Introduction
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
ExchangeShoppingRQ User Guide 38
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
Solution Elements
Element Description Exchange Shopping Path
Details about the itinerary options
booked
Information about the itinerary to
be booked.
ExchangeShoppingRS/Solution/Book
Itinerary
and
ExchangeShoppingRS/Solution/Fare/Res
ervationSegmentDetails
Exchange price difference
information per passenger
Exchange price difference
information per passenger.
ExchangeShoppingRS/Solution/FarePas
sengerPriceInformation
Total exchange price difference
information
Total exchange price difference
information.
ExchangeShoppingRS/Solution/Fare/Tot
alPriceDifference
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/@sequenc
e
Pricing sequence
Pricing sequence number assigned by one of the
Exchange Shopping
Subsystems. Used for troubleshooting.
ExchangeShoppingRS/Solution/@pricing
Sequence
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 the total price
difference element cannot be built for the request.
ExchangeShoppingRS/Solution/Fare@pa
ssengersPricedInDifferentCurrencies
Valid Indicates whether valid fare was found ExchangeShoppingRS/Solution/Fare/vali
d
Brand Adds the brand name of the brand in which the price has
been calculated
ExchangeShoppingRS/Solution/Fare/bran
d
Branding Program Adds branding program ID (up to 10 characters) ExchangeShoppingRS/Solution/Fare/Bran
dingProgram
Mixed Brands Indicates whether the itinerary was prices in mixed brands ExchangeShoppingRS/Solution/Fare/mix
edBrands
ExchangeShoppingRQ User Guide 39
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/BookItine
rary/OriginDestination/ReservationSegm
ent
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/Res
ervationSegmentDetails/PassengerBooki
ngDetails
ExchangeShoppingRQ User Guide 40
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/Fare
PassengerPriceInformation/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/Pas
sengerPriceInformation/Passenger/@fir
stName and @lastName
Age (optional) Passenger age – when is this
returned?? ExchangeShoppingRS/Solution/Fare/Pas
sengerPriceInformation/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/Pas
sengerPriceInformation/Passenger/resul
tPriceDifference
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/Pas
sengerPriceInformation/Passenger/Resu
ltPriceDifference/@differenceType
ExchangeShoppingRQ User Guide 41
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 exchange price difference
The first payment currency change Will be returned in the currency in which the exchanged
ticket was paid.
Subsequent exchanges with multiple Will be returned in the default currency of the country
payment currency changes 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
1. Original ticket issued on route: JFK-MOW-LON:
Base currency: USD
Issue place: LON, therefore it is paid in GBP (equivalent currency)
2. 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 The passenger gets exchange cost amounts in
ADDITIONAL COLLECTION RUB (default or override reissue currency).
REFUND or EVEN EXCHANGE
GBP (currency in which exchanged ticket was paid
(equivalent currency in this case)).
Note For scenarios where all three types of results are returned
ExchangeShoppingRQ User Guide 42
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:
Reissue place:
USD
ZRH; therefore, reissue (equivalent) currency was CHF.
3. 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).
ExchangeShoppingRQ User Guide 43
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/Passenger
PriceInformation/Passenger/ResultPrice
Difference/@residualAmount
Forfeited
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/Passeng
erPriceInformation/Passenger/ResultPr
iceDifference/FareDifference/@curren
cyCode
ExcShoppingRS/Solution/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/FareDifference/@decimal
Place
Tax difference amount and currency Currency and sum of tax difference
between the old ticket and the new
itinerary.
ExcShoppingRS/Solution/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/TaxDifference/@currency
Code
ExcShoppingRS/Solution/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/TaxDifference/@decimal
Place
Difference subtotal amount and
currency
Amount and currency difference
subtotal (sum of fare difference
plus taxes difference)
ExcShoppingRS/Solution/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/SubtotalDifference/@curr
encyCode
ExcShoppingRS/Solution/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/SubtotalDifference/@deci
malPlace
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/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/TotalFee/@currencyCode
ExcShoppingRS/Solution/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/TotalFee/@decimalPlace
ExcShoppingRS/Solution/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/TotalFee/@type
ExchangeShoppingRQ User Guide 44
Tax on change fee amount and currency Applicable tax on change fee,
including tax code
Only returned when applicable.
ExcShoppingRS/Solution/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/TotalFeeTax/@currencyC
ode
ExcShoppingRS/Solution/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/TotalFeeTax/@decimalPl
ace
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/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/GrandTotalDifference/@c
urrencyCode
ExcShoppingRS/Solution/FarePassenge
rPriceInformation/Passenger/ResultPri
ceDifference/GrandTotalDifference/@d
ecimalPlace
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
ExchangeShoppingRQ User Guide 45
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
ExchangeShoppingRQ User Guide 46
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/@bookingCl
ass.
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/BrandedFareIndicat
ors/@singleBrandedFare
One branded fare solution per itinerary
Only needed when brand details are needed
Must be sent together
ExchangeShoppingRQ User Guide 47
6.Exchange Shopping Scenarios
The following examples provide sample XML requests and responses for more complex Exchange Shopping scenarios.
Full Exchange – both legs shopped
Both passegers wish to change both their destinations and dates of travel:
<ExchangeShoppingRQ xmlns=“http://services.sabre.com/sp/exchange/shopping/v2" xmlns:n0=“http://services.sabre.com/sp/exchange/shopping/common/types/v2" xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance" version=“2.2.0"> <STL_Header.RQ ttl=“300"> <OrchestrationID seq=“0">027364343467758035</OrchestrationID> </STL_Header.RQ> <TicketingProvider>1S</TicketingProvider> <PassengerInformation>
ExchangeShoppingRQ User Guide 48
<PassengerWithPNR pnrLocator=“SBXGYL" referenceNumber=“1.1" firstName=“WITOLD" lastName=“PETRICZEK"> <DocumentNumber>0017944161067</DocumentNumber> </PassengerWithPNR> <PassengerWithPNR pnrLocator=“SBXGYL" referenceNumber=“2.1" firstName=“FLORENCIA" lastName=“COUTO"> <DocumentNumber>0017944161068</DocumentNumber> </PassengerWithPNR> </PassengerInformation> <OriginDestinationInformation shopIndicator=“true"> <DateTimeSelection> <DepartureDate>2017-05-20</DepartureDate> </DateTimeSelection> <StartLocation>LON</StartLocation> <EndLocation>NYC</EndLocation> </OriginDestinationInformation> <OriginDestinationInformation shopIndicator=“true"> <DateTimeSelection> <DepartureDate>2017-06-10</DepartureDate> </DateTimeSelection> <StartLocation>NYC</StartLocation> <EndLocation>LON</EndLocation> </OriginDestinationInformation> </ExchangeShoppingRQ>
Below is the snippet from the response with details on a one solution and its exchange cost:
<ExchangeShoppingRS xmlns=“http://services.sabre.com/sp/exchange/shopping/v2" solutions=“25"> <Solution sequence=“1" pricingSequence=“1"> <BookItinerary> <OriginDestination elapsedTime=“535" startLocation=“LGW" endLocation=“JFK" segmentQuantity=“1"> <ReservationSegment segmentNumber=“1" elapsedTime=“535" startDateTime=“2017-05-20T16:35:00" endDateTime=“2017-05-20T19:30:00" startLocation=“LGW" endLocation=“JFK" marketingFlightNumber=“2273" marketingProvider=“BA" operatingProvider=“BA" stopQuantity=“0" electronicTicketingIndicator=“true" marriageGroup=“O" book=“true”> <StartLocationDetails terminalID=“S" GMTOffset=“1"/> <EndLocationDetails terminalID=“7" GMTOffset=“-5"/> <OperatingProviderDetails flightNumber=“2273"/> <Equipment type=“777"/> </ReservationSegment> </OriginDestination> <OriginDestination elapsedTime=“360" startLocation=“JFK" endLocation=“LGW" segmentQuantity=“1"> <ReservationSegment segmentNumber=“2" elapsedTime=“360" startDateTime=“2017-06-10T22:00:00" endDateTime=“2017-06-11T10:00:00" startLocation=“JFK" endLocation=“LGW" marketingFlightNumber=“2272" marketingProvider=“BA" operatingProvider=“BA" stopQuantity=“0" electronicTicketingIndicator=“true" marriageGroup=“O" book=“true”> <StartLocationDetails terminalID=“7" GMTOffset=“-5"/> <EndLocationDetails terminalID=“S" GMTOffset=“1"/> <OperatingProviderDetails flightNumber=“2272"/> <Equipment type=“777"/> </ReservationSegment> </OriginDestination> </BookItinerary> <Fare valid=“true" postCalcIndex=“1" pricingSequence=“1" requireSplitPNR=“false" passengersInDifferentCabins=“false"> <ReservationSegmentDetails segmentNumber=“1"> <PassengerBookingDetails documentNumber=“0017944161067" bookingClass=“O" fareBasis=“OKN8S4Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“LGW" endLocation=“JFK" directionality=“FROM"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161068" bookingClass=“O" fareBasis=“OKN8S4Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“LGW" endLocation=“JFK" directionality=“FROM"/> </PassengerBookingDetails> </ReservationSegmentDetails> <ReservationSegmentDetails segmentNumber=“2"> <PassengerBookingDetails documentNumber=“0017944161067" bookingClass=“O" fareBasis=“OKN8S4Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“JFK" endLocation=“LGW" directionality=“TO"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161068" bookingClass=“O" fareBasis=“OKN8S4Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“JFK" endLocation=“LGW" directionality=“TO"/> </PassengerBookingDetails>
ExchangeShoppingRQ User Guide 49
</ReservationSegmentDetails> <PassengerPriceInformation> <Passenger documentNumber=“0017944161067" type=“ADT" firstName=“WITOLD" lastName=“PETRICZEK"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-2176.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">-67.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">-283.40</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“GB">0.40</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“UB">-36.60</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YQ">252.60</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-2243.00</SubtotalDifference> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-2243.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> <Passenger documentNumber=“0017944161068" type=“ADT" firstName=“FLORENCIA" lastName=“COUTO"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-2176.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">-67.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">-283.40</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“GB">0.40</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“UB">-36.60</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YQ">252.60</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-2243.00</SubtotalDifference> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-2243.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> </PassengerPriceInformation> <TotalPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-4352.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">-134.00</TaxDifference> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-4486.00</SubtotalDifference> <NonRefundableAmount currencyCode=“USD" decimalPlaces=“2">0.00</NonRefundableAmount> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-4486.00</GrandTotalDifference> </TotalPriceDifference> </Fare>
ExchangeShoppingRQ User Guide 50
Partially used ticket
The first leg (DFWLAX) is already flown – ticket status shows used.
Passenger wants to change the date of the unused leg (LAXDFW)
<ExchangeShoppingRQ xmlns=“http://services.sabre.com/sp/exchange/shopping/v2" xmlns:n0=“http://services.sabre.com/sp/exchange/shopping/common/types/v2" xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance" version=“2.2.0"> <STL_Header.RQ ttl=“300"> <OrchestrationID seq=“0">027364343467758035</OrchestrationID> </STL_Header.RQ> <TicketingProvider>1S</TicketingProvider> <PassengerInformation> <PassengerWithPNR pnrLocator=“DDLYBV" referenceNumber=“1.1" firstName=“JOHN" lastName=“DOE"> <DocumentNumber>0017944161023</DocumentNumber> </PassengerWithPNR> </PassengerInformation> <OriginDestinationInformation shopIndicator=“true"> <DateTimeSelection> <DepartureDate>2017-05-10</DepartureDate> </DateTimeSelection> <StartLocation>LAX</StartLocation> <EndLocation>DFW</EndLocation>
ExchangeShoppingRQ User Guide 51
</OriginDestinationInformation> </ExchangeShoppingRQ>
<ExchangeShoppingRS xmlns=“http://services.sabre.com/sp/exchange/shopping/v2" solutions=“49"> <Solution sequence=“1" pricingSequence=“1"> <BookItinerary> <OriginDestination elapsedTime=“123" startLocation=“LAX" endLocation=“DFW" segmentQuantity=“1"> <ReservationSegment segmentNumber=“2" elapsedTime=“123" startDateTime=“2017-05-10T16:50:00" endDateTime=“2017-05-10T21:53:00" startLocation=“LAX" endLocation=“DFW" marketingFlightNumber=“2373" marketingProvider=“AA" operatingProvider=“AA" stopQuantity=“0" electronicTicketingIndicator=“true" marriageGroup=“O" book=“true”> <StartLocationDetails terminalID=“0" GMTOffset=“-8"/> <EndLocationDetails terminalID=“0" GMTOffset=“-5"/> <OperatingProviderDetails flightNumber=“2373"/> <Equipment type=“788"/> <OnTimePerformance level=“N"/> </ReservationSegment> </OriginDestination> </BookItinerary> <Fare valid=“true" postCalcIndex=“1" pricingSequence=“1" requireSplitPNR=“false" passengersInDifferentCabins=“false"> <ReservationSegmentDetails segmentNumber=“1"> <PassengerBookingDetails documentNumber=“0017944161023" bookingClass=“N" fareBasis=“NVAIUSN3" cabin=“Y" meal=“D"> <FareComponent startLocation=“LAX" endLocation=“DFW" directionality=“FROM"/> </PassengerBookingDetails> </ReservationSegmentDetails> <PassengerPriceInformation> <Passenger documentNumber=“0017944161023" type=“ADT" firstName=“DOE" lastName=“JOHN"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-875.35</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">-65.65</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">-65.65</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“ZP">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-941.00</SubtotalDifference> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-941.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> </PassengerPriceInformation> <TotalPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-875.35</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">-65.65</TaxDifference> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-941.00</SubtotalDifference> <NonRefundableAmount currencyCode=“USD" decimalPlaces=“2">0.00</NonRefundableAmount> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-941.00</GrandTotalDifference> </TotalPriceDifference> </Fare> </Solution>
Exchange for multiple passengers
<ExchangeShoppingRQ xmlns=“http://services.sabre.com/sp/exchange/shopping/v2" xmlns:n0=“http://services.sabre.com/sp/exchange/shopping/common/types/v2" xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance" version=“2.2.0"> <STL_Header.RQ ttl=“300"> <OrchestrationID seq=“0">027364343467758035</OrchestrationID> </STL_Header.RQ> <TicketingProvider>1S</TicketingProvider> <PassengerInformation> <PassengerWithPNR pnrLocator=“RQWNZB" referenceNumber=“1.1" firstName=“A" lastName=“MARS"> <DocumentNumber>0017944161042</DocumentNumber> </PassengerWithPNR>
ExchangeShoppingRQ User Guide 52
<PassengerWithPNR pnrLocator=“RQWNZB" referenceNumber=“2.1" firstName=“M" lastName=“KLIMAS"> <DocumentNumber>0017944161043</DocumentNumber> </PassengerWithPNR> <PassengerWithPNR pnrLocator=“RQWNZB" referenceNumber=“3.1" firstName=“L" lastName=“PIERZCHALA"> <DocumentNumber>0017944161044</DocumentNumber> </PassengerWithPNR> <PassengerWithPNR pnrLocator=“RQWNZB" referenceNumber=“4.1" firstName=“J" lastName=“ROMAN"> <DocumentNumber>0017944161050</DocumentNumber> </PassengerWithPNR> <PassengerWithPNR pnrLocator=“RQWNZB" referenceNumber=“5.1" firstName=“O" lastName=“MROCZKOWSKA"> <DocumentNumber>0017944161045</DocumentNumber> </PassengerWithPNR> <PassengerWithPNR pnrLocator=“RQWNZB" referenceNumber=“6.1" firstName=“M" lastName=“DUDEK"> <DocumentNumber>0017944161046</DocumentNumber> </PassengerWithPNR> <PassengerWithPNR pnrLocator=“RQWNZB" referenceNumber=“7.1" firstName=“K" lastName=“STAPOR"> <DocumentNumber>0017944161047</DocumentNumber> </PassengerWithPNR> <PassengerWithPNR pnrLocator=“RQWNZB" referenceNumber=“8.1" firstName=“G" lastName=“SZCZUREK"> <DocumentNumber>0017944161048</DocumentNumber> </PassengerWithPNR> <PassengerWithPNR pnrLocator=“RQWNZB" referenceNumber=“9.1" firstName=“W" lastName=“PETLICZEK"> <DocumentNumber>0017944161049</DocumentNumber> </PassengerWithPNR> </PassengerInformation> <OriginDestinationInformation shopIndicator=“true"> <DateTimeSelection> <DepartureDate>2017-06-20</DepartureDate> </DateTimeSelection> <StartLocation>LAX</StartLocation> <EndLocation>NRT</EndLocation> </OriginDestinationInformation> <OriginDestinationInformation shopIndicator=“true"> <DateTimeSelection> <DepartureDate>2017-07-01</DepartureDate> </DateTimeSelection> <StartLocation>NRT</StartLocation> <EndLocation>LAX</EndLocation> </OriginDestinationInformation> </ExchangeShoppingRQ>
As you see, the exchange cost is first split per each passenger, and at the end the exchange cost is
summarized.
<ExchangeShoppingRS xmlns=“http://services.sabre.com/sp/exchange/shopping/v2" solutions=“1"> <Solution sequence=“1" pricingSequence=“1"> <BookItinerary> <OriginDestination elapsedTime=“635" startLocation=“LAX" endLocation=“NRT" segmentQuantity=“1"> <ReservationSegment segmentNumber=“1" elapsedTime=“635" startDateTime=“2017-06-20T13:20:00" endDateTime=“2017-06-21T16:55:00" startLocation=“LAX" endLocation=“NRT" marketingFlightNumber=“8407" marketingProvider=“AA" operatingProvider=“JL" stopQuantity=“0" electronicTicketingIndicator=“true" marriageGroup=“O" book=“true”> <StartLocationDetails terminalID=“B" GMTOffset=“-8"/> <EndLocationDetails terminalID=“2" GMTOffset=“9"/> <OperatingProviderDetails flightNumber=“61"/> <Equipment type=“773"/> <DisclosureProvider>JL</DisclosureProvider> </ReservationSegment> </OriginDestination> <OriginDestination elapsedTime=“675" startLocation=“NRT" endLocation=“LAX" segmentQuantity=“1">
ExchangeShoppingRQ User Guide 53
<ReservationSegment segmentNumber=“2" elapsedTime=“675" startDateTime=“2017-07-01T17:25:00" endDateTime=“2017-07-01T11:40:00" startLocation=“NRT" endLocation=“LAX" marketingFlightNumber=“8408" marketingProvider=“AA" operatingProvider=“JL" stopQuantity=“0" electronicTicketingIndicator=“true" marriageGroup=“O" book=“true”> <StartLocationDetails terminalID=“2" GMTOffset=“9"/> <EndLocationDetails terminalID=“B" GMTOffset=“-8"/> <OperatingProviderDetails flightNumber=“62"/> <Equipment type=“773"/> <DisclosureProvider>JL</DisclosureProvider> </ReservationSegment> </OriginDestination> </BookItinerary> <Fare valid=“true" postCalcIndex=“1" pricingSequence=“1" requireSplitPNR=“false" passengersInDifferentCabins=“false"> <ReservationSegmentDetails segmentNumber=“1"> <PassengerBookingDetails documentNumber=“0017944161042" bookingClass=“Q" fareBasis=“QPU0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“LAX" endLocation=“NRT" directionality=“FROM"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161043" bookingClass=“Q" fareBasis=“QPU0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“LAX" endLocation=“NRT" directionality=“FROM"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161044" bookingClass=“Q" fareBasis=“QPU0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“LAX" endLocation=“NRT" directionality=“FROM"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161050" bookingClass=“Q" fareBasis=“QPU0N8Z1IN" cabin=“Y" meal=“M"> <FareComponent startLocation=“LAX" endLocation=“NRT" directionality=“FROM"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161045" bookingClass=“Q" fareBasis=“QPU0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“LAX" endLocation=“NRT" directionality=“FROM"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161046" bookingClass=“Q" fareBasis=“QPU0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“LAX" endLocation=“NRT" directionality=“FROM"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161047" bookingClass=“Q" fareBasis=“QPU0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“LAX" endLocation=“NRT" directionality=“FROM"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161048" bookingClass=“Q" fareBasis=“QPU0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“LAX" endLocation=“NRT" directionality=“FROM"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161049" bookingClass=“Q" fareBasis=“QPU0N8Z1CH" cabin=“Y" meal=“M"> <FareComponent startLocation=“LAX" endLocation=“NRT" directionality=“FROM"/> </PassengerBookingDetails> </ReservationSegmentDetails> <ReservationSegmentDetails segmentNumber=“2"> <PassengerBookingDetails documentNumber=“0017944161042" bookingClass=“Q" fareBasis=“QHY0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“NRT" endLocation=“LAX" directionality=“TO"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161043" bookingClass=“Q" fareBasis=“QHY0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“NRT" endLocation=“LAX" directionality=“TO"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161044" bookingClass=“Q" fareBasis=“QHY0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“NRT" endLocation=“LAX" directionality=“TO"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161050" bookingClass=“Q" fareBasis=“QHY0N8Z1IN" cabin=“Y" meal=“M"> <FareComponent startLocation=“NRT" endLocation=“LAX" directionality=“TO"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161045" bookingClass=“Q" fareBasis=“QHY0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“NRT" endLocation=“LAX" directionality=“TO"/>
ExchangeShoppingRQ User Guide 54
</PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161046" bookingClass=“Q" fareBasis=“QHY0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“NRT" endLocation=“LAX" directionality=“TO"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161047" bookingClass=“Q" fareBasis=“QHY0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“NRT" endLocation=“LAX" directionality=“TO"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161048" bookingClass=“Q" fareBasis=“QHY0N8Z1" cabin=“Y" meal=“M"> <FareComponent startLocation=“NRT" endLocation=“LAX" directionality=“TO"/> </PassengerBookingDetails> <PassengerBookingDetails documentNumber=“0017944161049" bookingClass=“Q" fareBasis=“QHY0N8Z1CH" cabin=“Y" meal=“M"> <FareComponent startLocation=“NRT" endLocation=“LAX" directionality=“TO"/> </PassengerBookingDetails> </ReservationSegmentDetails> <PassengerPriceInformation> <Passenger documentNumber=“0017944161042" type=“ADT" firstName=“A" lastName=“MARS"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-2055.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">86.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“SW">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“OI">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">86.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-1969.00</SubtotalDifference> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">250.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-1719.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> <Passenger documentNumber=“0017944161043" type=“ADT" firstName=“M" lastName=“KLIMAS"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-2055.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">86.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“SW">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“OI">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">86.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-1969.00</SubtotalDifference> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">250.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-1719.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> <Passenger documentNumber=“0017944161044" type=“ADT" firstName=“L" lastName=“PIERZCHALA"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-2055.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">86.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference>
ExchangeShoppingRQ User Guide 55
<TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“SW">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“OI">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">86.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-1969.00</SubtotalDifference> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">250.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-1719.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> <Passenger documentNumber=“0017944161050" type=“INF" firstName=“J" lastName=“ROMAN"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-206.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">0.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-206.00</SubtotalDifference> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">25.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-181.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> <Passenger documentNumber=“0017944161045" type=“ADT" firstName=“O" lastName=“MROCZKOWSKA"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-2055.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">86.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“SW">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“OI">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">86.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-1969.00</SubtotalDifference> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">250.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-1719.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> <Passenger documentNumber=“0017944161046" type=“ADT" firstName=“M" lastName=“DUDEK"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-2055.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">86.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“SW">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“OI">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">86.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-1969.00</SubtotalDifference> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">250.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-1719.00</GrandTotalDifference> </ResultPriceDifference>
ExchangeShoppingRQ User Guide 56
</Passenger> <Passenger documentNumber=“0017944161047" type=“ADT" firstName=“K" lastName=“STAPOR"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-2055.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">86.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“SW">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“OI">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">86.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-1969.00</SubtotalDifference> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">250.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-1719.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> <Passenger documentNumber=“0017944161048" type=“ADT" firstName=“G" lastName=“SZCZUREK"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-2055.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">86.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“SW">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“OI">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">86.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-1969.00</SubtotalDifference> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">250.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-1719.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> <Passenger documentNumber=“0017944161049" type=“CNN" firstName=“W" lastName=“PETLICZEK"> <ResultPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-1541.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">86.00</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“SW">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“OI">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">86.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-1455.00</SubtotalDifference> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">188.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-1267.00</GrandTotalDifference> </ResultPriceDifference> </Passenger> </PassengerPriceInformation> <TotalPriceDifference differenceType=“Refund"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-16132.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">688.00</TaxDifference> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">-15444.00</SubtotalDifference> <NonRefundableAmount currencyCode=“USD" decimalPlaces=“2">0.00</NonRefundableAmount>
ExchangeShoppingRQ User Guide 57
<TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">1963.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">-13481.00</GrandTotalDifference> </TotalPriceDifference> </Fare> </Solution> </ExchangeShoppingRS>
Not Shopped Leg
The outbound leg (LHRPHL) remains unchanged, and only alternatives for the inbound (PHLLHR)
should be shopped.
Even though the first leg remains unchanged, full flight segment details for the non-shopped flight
segments must be included in the ExchangeShopping request:
<ExchangeShoppingRQ xmlns=“http://services.sabre.com/sp/exchange/shopping/v2" xmlns:n0=“http://services.sabre.com/sp/exchange/shopping/common/types/v2" xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance" version=“2.2.0"> <STL_Header.RQ ttl=“300"> <OrchestrationID seq=“0">027364343467758035</OrchestrationID> </STL_Header.RQ> <TicketingProvider>1S</TicketingProvider> <PassengerInformation> <PassengerWithPNR pnrLocator=“DNANZS" referenceNumber=“1.1" firstName=“SIDETRIP" lastName=“MARS"> <DocumentNumber>0017944161064</DocumentNumber> </PassengerWithPNR> </PassengerInformation> <OriginDestinationInformation shopIndicator=“false"> <DateTimeSelection> <DepartureDate>2017-05-20</DepartureDate> </DateTimeSelection> <StartLocation>LHR</StartLocation> <EndLocation>PHL</EndLocation> <RelatedSegment operatingProvider=“BA" marketingProvider=“AA" marketingFlightNumber=“6130" startDateTime=“2017-05-20T12:40:00" endDateTime=“2017-05-20T15:25:00" startLocation=“LHR" endLocation=“PHL" bookingClass=“S" reservationStatus=“HK" bookingDateTime=“2017-04-24T04:08:00"/> </OriginDestinationInformation> <OriginDestinationInformation shopIndicator=“true"> <DateTimeSelection> <DepartureDate>2017-05-26</DepartureDate> </DateTimeSelection> <StartLocation>PHL</StartLocation> <EndLocation>BWI</EndLocation> </OriginDestinationInformation> <OriginDestinationInformation shopIndicator=“true">
ExchangeShoppingRQ User Guide 58
<DateTimeSelection> <DepartureDate>2017-05-28</DepartureDate> </DateTimeSelection> <StartLocation>BWI</StartLocation> <EndLocation>PHL</EndLocation> </OriginDestinationInformation> <OriginDestinationInformation shopIndicator=“true"> <DateTimeSelection> <DepartureDate>2017-05-01</DepartureDate> </DateTimeSelection> <StartLocation>PHL</StartLocation> <EndLocation>MCO</EndLocation> </OriginDestinationInformation> <OriginDestinationInformation shopIndicator=“true"> <DateTimeSelection> <DepartureDate>2017-05-11</DepartureDate> </DateTimeSelection> <StartLocation>MCO</StartLocation> <EndLocation>LHR</EndLocation> </OriginDestinationInformation> </ExchangeShoppingRQ>
As you can see the unchanged segment remains as it was: <ExchangeShoppingRS xmlns=“http://services.sabre.com/sp/exchange/shopping/v2" solutions=“49"> <Solution sequence=“1" pricingSequence=“1"> <BookItinerary> <OriginDestination elapsedTime=“525" startLocation=“LHR" endLocation=“PHL" segmentQuantity=“1"> <ReservationSegment segmentNumber=“1" elapsedTime=“525" startDateTime=“2017-04-20T12:40:00" endDateTime=“2017-04-20T15:25:00" startLocation=“LHR" endLocation=“PHL" marketingFlightNumber=“6130" marketingProvider=“AA" operatingProvider=“BA" stopQuantity=“0" electronicTicketingIndicator=“true" marriageGroup=“O" book=“false”> <StartLocationDetails terminalID=“5" GMTOffset=“1"/> <EndLocationDetails terminalID=“A" GMTOffset=“-5"/> <OperatingProviderDetails flightNumber=“67"/> <Equipment type=“747"/> <DisclosureProvider>BA</DisclosureProvider> </ReservationSegment> </OriginDestination> <OriginDestination elapsedTime=“48" startLocation=“PHL" endLocation=“BWI" segmentQuantity=“1"> <ReservationSegment segmentNumber=“2" elapsedTime=“48" startDateTime=“2017-04-26T15:10:00" endDateTime=“2017-04-26T15:58:00" startLocation=“PHL" endLocation=“BWI" marketingFlightNumber=“4178" marketingProvider=“AA" operatingProvider=“AA" stopQuantity=“0" electronicTicketingIndicator=“true" marriageGroup=“O" book=“true”> <StartLocationDetails terminalID=“F" GMTOffset=“-5"/> <EndLocationDetails GMTOffset=“-5"/> <OperatingProviderDetails flightNumber=“4178" companyShortName=“AIR WISCONSIN AS AMERICAN EAGLE"/> <Equipment type=“CRJ"/> <OnTimePerformance level=“6"/> </ReservationSegment> </OriginDestination> <OriginDestination elapsedTime=“50" startLocation=“BWI" endLocation=“PHL" segmentQuantity=“1"> <ReservationSegment segmentNumber=“3" elapsedTime=“50" startDateTime=“2017-04-28T06:20:00" endDateTime=“2017-04-28T07:10:00" startLocation=“BWI" endLocation=“PHL" marketingFlightNumber=“4181" marketingProvider=“AA" operatingProvider=“AA" stopQuantity=“0" electronicTicketingIndicator=“true" marriageGroup=“O" book=“true”> <StartLocationDetails GMTOffset=“-5"/> <EndLocationDetails terminalID=“F" GMTOffset=“-5"/> <OperatingProviderDetails flightNumber=“4181" companyShortName=“AIR WISCONSIN AS AMERICAN EAGLE"/> <Equipment type=“CRJ"/> <OnTimePerformance level=“7"/> </ReservationSegment> </OriginDestination> <OriginDestination elapsedTime=“151" startLocation=“PHL" endLocation=“MCO" segmentQuantity=“1"> <ReservationSegment segmentNumber=“4" elapsedTime=“151" startDateTime=“2017-05-01T07:00:00" endDateTime=“2017-05-01T09:31:00" startLocation=“PHL" endLocation=“MCO" marketingFlightNumber=“2096" marketingProvider=“AA" operatingProvider=“AA" stopQuantity=“0" electronicTicketingIndicator=“true" marriageGroup=“O" book=“true”> <StartLocationDetails terminalID=“0" GMTOffset=“-5"/> <EndLocationDetails GMTOffset=“-5"/> <OperatingProviderDetails flightNumber=“2096"/> <Equipment type=“320"/> <OnTimePerformance level=“6"/> </ReservationSegment>
ExchangeShoppingRQ User Guide 59
</OriginDestination> <OriginDestination elapsedTime=“603" startLocation=“MCO" endLocation=“LHR" segmentQuantity=“1"> <ReservationSegment segmentNumber=“5" elapsedTime=“603" startDateTime=“2017-05-11T15:37:00" endDateTime=“2017-05-12T07:40:00" startLocation=“MCO" endLocation=“LHR" marketingFlightNumber=“56" marketingProvider=“AA" operatingProvider=“AA" stopQuantity=“1" electronicTicketingIndicator=“true" marriageGroup=“O" book=“true”> <StartLocationDetails GMTOffset=“-5"/> <EndLocationDetails terminalID=“3" GMTOffset=“1"/> <OperatingProviderDetails flightNumber=“56"/> <Equipment changeofGauge=“true" type=“757"/> <StopLocation locationCode=“MIA" arrivalDateTime=“2017-05-11T16:45:00" departureDateTime=“2017-05-11T18:00:00" elapsedTime=“68" duration=“75" GMTOffset=“-5" equipmentType=“772"/> </ReservationSegment> </OriginDestination> </BookItinerary> <Fare valid=“true" postCalcIndex=“1" pricingSequence=“1" requireSplitPNR=“false" passengersInDifferentCabins=“false"> <ReservationSegmentDetails segmentNumber=“1"> <PassengerBookingDetails documentNumber=“0017944161064" bookingClass=“S" fareBasis=“SKW7S4C1" cabin=“Y" meal=“M"> <FareComponent startLocation=“LHR" endLocation=“MCO" directionality=“FROM"/> </PassengerBookingDetails> </ReservationSegmentDetails> <ReservationSegmentDetails segmentNumber=“2"> <PassengerBookingDetails documentNumber=“0017944161064" bookingClass=“L" fareBasis=“L7BHZNN1" cabin=“Y"> <FareComponent startLocation=“PHL" endLocation=“BWI" directionality=“FROM"/> </PassengerBookingDetails> </ReservationSegmentDetails> <ReservationSegmentDetails segmentNumber=“3"> <PassengerBookingDetails documentNumber=“0017944161064" bookingClass=“V" fareBasis=“VUBHZNN1" cabin=“Y"> <FareComponent startLocation=“BWI" endLocation=“PHL" directionality=“TO"/> </PassengerBookingDetails> </ReservationSegmentDetails> <ReservationSegmentDetails segmentNumber=“4"> <PassengerBookingDetails documentNumber=“0017944161064" bookingClass=“S" fareBasis=“SKW7S4C1" cabin=“Y" meal=“R"> <FareComponent startLocation=“LHR" endLocation=“MCO" directionality=“FROM"/> </PassengerBookingDetails> </ReservationSegmentDetails> <ReservationSegmentDetails segmentNumber=“5"> <PassengerBookingDetails documentNumber=“0017944161064" bookingClass=“Q" fareBasis=“QKX0S4T1" cabin=“Y" meal=“DB"> <FareComponent startLocation=“MCO" endLocation=“LHR" directionality=“TO"/> </PassengerBookingDetails> </ReservationSegmentDetails> <PassengerPriceInformation> <Passenger documentNumber=“0017944161064" type=“ADT" firstName=“SIDETRIP" lastName=“MARS"> <ResultPriceDifference differenceType=“AddCollect"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-15.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">55.70</TaxDifference> <TaxDetails> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YR">-0.80</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“US">57.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“ZP">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“YC">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XA">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“AY">0.00</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“GB">-0.30</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“UB">-0.20</TaxDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2" taxCode=“XF">0.00</TaxDifference> </TaxDetails> <SubtotalDifference currencyCode=“USD" decimalPlaces=“2">40.70</SubtotalDifference> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">200.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">240.70</GrandTotalDifference> </ResultPriceDifference> </Passenger> </PassengerPriceInformation> <TotalPriceDifference differenceType=“AddCollect"> <FareDifference currencyCode=“USD" decimalPlaces=“2">-15.00</FareDifference> <TaxDifference currencyCode=“USD" decimalPlaces=“2">55.70</TaxDifference>
ExchangeShoppingRQ User Guide 60
<SubtotalDifference currencyCode=“USD" decimalPlaces=“2">40.70</SubtotalDifference> <NonRefundableAmount currencyCode=“USD" decimalPlaces=“2">0.00</NonRefundableAmount> <TotalFee currencyCode=“USD" decimalPlaces=“2" type=“CHG">200.00</TotalFee> <TotalFeeTax currencyCode=“USD" decimalPlaces=“2">0.00</TotalFeeTax> <GrandTotalDifference currencyCode=“USD" decimalPlaces=“2">240.70</GrandTotalDifference> </TotalPriceDifference> </Fare> </Solution>
ExchangeShoppingRQ User Guide 61
7.Troubleshooting
Introduction
This section provides examples of the most common error messages, their causes, and recommended solutions where applicable.
There are few steps that Exchange Shopping makes during transaction processing and, on each of these steps, an error message can be returned if the system detects the problem.
These steps are:
• Validation of incoming request against XSD schema. • Business validation of incoming request and documents used in the transaction. • Further validation of the requested document(s) and itinerary is performed by underlying subsystems. • Searching for itinerary options and validating them against Category 31 of fares in exchanged tickets,
which are done by the Shopping system. • Calculating exchange cost for passengers, which is performed by the Post Calculation process.
Error Messages by Category
The following list contains error messages which are grouped in categories:
• Error messages coming from the orchestrating application Example: <ApplicationResults xmlns=“http://services.sabre.com/STL_Payload/v02_01" status=“Incomplete"> <Error type=“Application" timeStamp=“2017-04-24T06:03:49.597-05:00"> <SystemSpecificResults> <Message code=“ERR.SP.CLIENT.INVALID_REQUEST">Incomplete POS information - missing Actual element.</Message> </SystemSpecificResults> </Error>
</ApplicationResults>
• Error messages coming from subsystems. Example: <ApplicationResults xmlns=“http://services.sabre.com/STL_Payload/v02_01" status=“Incomplete"> <Error type=“Application" timeStamp=“2017-04-21T11:18:21.363-05:00"> <SystemSpecificResults> <Message code=“ERR.SP.PROVIDER_ERROR">No valid shopping combinations found</Message> </SystemSpecificResults>
</Error> </ApplicationResults>
Please note that whenever the application encounters an error from any of the subsystems called,
the generic error message No valid shopping combinations found will be returned. Service will then
include all messages coming from subsystems as warnings.
ExchangeShoppingRQ User Guide 62
Business Validation Errors
The business validation layer of Exchange Shopping request data verifies the following:
• Information in the XML request, such as checking if conflicting search or pricing parameters were used.
• Exchange Shopping eligibility, such as remaining OPEN coupons on the ticket, or correct
reservations status included in the request.
Table of Common Business Validation Errors
The following table provides information about some other business validation errors that you may encounter.
Note Long error message text contains variables (such as start and end location of leg, ticket number, and search parameters) that cause the particular issue.
Short Error
Message Text
Example of Long Error Message Text Solution
Missing related
segments
Unable to process the request: MRV - SVO 2018-02-
22 portion of travel was marked as not shopped but it
does not contain necessary related segment(s) information. Please amend your request and try
again.
Provide the details of air segments
for not shopped leg and request
again.
Missing related
segments
Unable to process the request - for portion of travel: MRV - SVO 2018-02-23 you chose to preserve the
same connecting cities but related flight segment
information is missing. Required minimum number of segments specified for this shopping qualifier is 2.
Please amend your request and try again.
Provide the details of air segments for the shopped leg to which Use
Same Connections shopping
parameter was applied and request again.
No origin destination has
been marked for
shopping
Invalid Exchange Shopping transaction - none of portions of travel was chosen for shopping.
At least one leg needs to be shopped to qualify for Exchange
Shopping transaction.
Invalid combination
of qualifiers
Invalid request - following shopping qualifiers can't be
combined: maxStops, maxConnections. Please choose only one of them and try again.
Choose either Maximum Number of
Stops Permitted per Leg or Maximum Number of Connections
per Leg shopping parameter and request again.
Invalid combination
of qualifiers
Invalid request - following shopping qualifiers can't be combined: maxStops,
preserveConnectionIndicator. Please choose only one
of them and try again.
Choose either Maximum Number of Stops Permitted per Leg or Use
Same Connections shopping
parameter and request again.
Invalid combination
of qualifiers
Invalid request - following shopping qualifiers can't be
combined: preserveConnectionIndicator, maxConnections. Please choose only one of them
and try again.
Choose either Use Same
Connections or Maximum Number of Connections Permitted per Leg
shopping parameter and request
again.
ExchangeShoppingRQ User Guide 63
Invalid combination
of qualifiers
Invalid request - following shopping qualifiers can't be
combined: maxStops,
preserveConnectionIndicator, maxConnections.
Please choose only one of them and try again.
Choose either Maximum Number of
Stops Permitted per Leg, Use
Same Connections or Maximum
Number of Connections Permitted
per Leg shopping parameter and
request again.
Invalid combination
of qualifiers
Invalid request - following shopping qualifiers can't be
combined: onlineIndicator, interlineIndicator.
Please choose only one of them and try again.
It is not possible to set both:
interline and online service only
searching parameters to “true.”
Choose only one of them, setting it to “true” and request again.
Invalid combination
of qualifiers
Invalid request - following shopping qualifiers can't be
combined: preserveConnectionsIndicator, Location. Please choose only one of them and try
again.
Choose either Use Same
Connections or Consider Only These Connection Cities/Airports shopping parameter within a
single leg and request again.
Invalid combination
of qualifiers
Invalid request - following shopping qualifiers can't be
combined: corporateID, accountCode. Please choose only one of them and try again
Choose either Shopping by
Corporate ID or Shopping by Account Code and request again.
Same preferred
and non-preferred
carrier
Unable to process the request where the same
airlines: U0, K0 are indicated as preferred and non- preferred carrier. Please amend your request and try
again.
Decide which carrier should be your
Preferred Carrier and which one should be Excluded Carrier, adjust
request accordingly and try again.
Start location
mismatch
Unable to process the request - origin airport of
portion of travel: SVO - MRV does not match
departure airport: LED of the first related flight
segment. Please amend your request and try again.
Make sure that start location of the
leg that is not shopped or is shopped but uses Use Same Connections shopping parameter
matches departure airport of its first related segment. For more
information see the following:
• “Leg that Is Not Shopped,”
page 26.
• “Leg that Is Shopped and “Use
Same Connections” Shopping
Parameter Is Applied,” page
38.
End location
mismatch
Unable to process the request - destination airport of portion of travel: SVO - MRV does not match arrival airport: PRG of the last related flight segment. Please
amend your request and try again.
Make sure that end location of the leg that is not shopped or is shopped but uses Use Same Connections shopping parameter
matches arrival airport of its last
related segment. For more
information see the following:
• “Leg that Is Not Shopped,”
page 26.
• “Leg that Is Shopped and “Use
Same Connections” Shopping
Parameter Is Applied,” page
38.
Flights not in correct date or time
order
Check itinerary - flights not in correct date or time order. Please amend your request and try again.
Make sure that legs are sent in chronological order in Exchange
Shopping request as well as the chronology of related segments.
ExchangeShoppingRQ User Guide 64
Invalid - infants
only request
Invalid Exchange Shopping transaction - unable to
shop for: INF only.
Exchange Shopping does not
support requests for infant type PTCs only. For more information,
see “Requests for Infant PTCs
Only,” page 42.
Segments
discontinuity
detected
Invalid request - segments discontinuity detected
between: MEL and SYD in BNE - SYD portion of
travel. Please amend your request forming portions of
travel correctly and try again.
Please make sure there is no
discontinuity (surface sector/ARNK)
between related segments of given
leg. If that is the case, please split
such a leg into two legs accordingly
as surface sector is treated as stopover.
ExchangeShoppingRQ User Guide 65
Errors from Other Subsystems
Following are some of the common errors that may be returned by other subsystems working under Exchange Shopping. The following examples do not cover all possible errors but list the ones that are most common.
Unable to Verify Interline Coupon Status
Reason
The Exchange Shopping web service was not able to get information about the real status of coupon in the “CTRL” status.
Solution
Try again in a few minutes. If the issue persists, contact the Web Services Support desk.
UNABLE TO REPRICE – VOLUNTARY CHANGE RULES FAILED
Reason
This error is returned when the itinerary for which the passenger shopped is not allowed by Category 31 rules of the exchanged ticket. Solution
Verify Category 31 filing of all exchanged fares in the ticket.
UNABLE TO REPRICE – VOLUNTARY CHANGE RULES UNAVAILABLE
Reason
At least one of the ticketed fares does not have a Category 31 rule.
Solution
Exchange Shopping requires Category 31 rules on all ticketed fares. The only option in this case is to book a new itinerary and use the standard desktop Exchanges product to calculate the exchange. Fares without Category 31 rules cannot be exchanged in the self-service environment.
UNABLE TO MATCH FARES
This error message indicates that the ticketed fares were not found in the fare database, and consequently no Category 31 rules could be retrieved. Some of the instances where this occurs are:
• Ticket was issued with manually constructed fares not published in the Sabre system • The ticketed fares were manually discounted