65
ExchangeShoppingRQ User Guide 1 User Guide ExchangeShoppingRQ Version 2.3.0 March 2019

Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

ExchangeShoppingRQ User Guide 1

User Guide

ExchangeShoppingRQ

Version 2.3.0

March 2019

Page 2: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 3: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 4: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 5: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 6: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 7: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 8: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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”

Page 9: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 10: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 11: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 12: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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”

Page 13: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 14: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 15: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 16: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 17: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 18: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 19: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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”

Page 20: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 21: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 22: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 23: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 24: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 25: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 26: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 27: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 28: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 29: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 30: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 31: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 32: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 33: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 34: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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:

Page 35: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 36: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 37: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 38: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 39: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 40: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 41: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 42: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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).

Page 43: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 44: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 45: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 46: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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

Page 47: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 48: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 49: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 50: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 51: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 52: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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">

Page 53: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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"/>

Page 54: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 55: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 56: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 57: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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">

Page 58: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 59: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 60: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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>

Page 61: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 62: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 63: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 64: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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.

Page 65: Version 2.3.0 March 2019files.developer.sabre.com/doc/providerdoc/Services... · 1 U0 13Y 23JAN Q* LEDSVO HK1 1220P 135P /E 2 U0 102Y 23JAN Q SVOJFK *HK1 340P 510P /E 3 U0 101Y 29JAN

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