Using Sabre APIs to Sell/Cancel Air Extras User Guide

50
Using Sabre APIs to Sell/Cancel Air Extras User Guide User Guide V1.11.0 July 14, 2015

Transcript of Using Sabre APIs to Sell/Cancel Air Extras User Guide

Page 1: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Using Sabre APIs to Sell/Cancel Air Extras

User Guide

User Guide

V1.11.0

July 14, 2015

Page 2: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Prepared for

Prepared by

Sabre Holdings®

Date

August 22, 2014

© 2014, 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 and the Sabre 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: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Process Overview 4

D O C U M E N T R E V I S I O N I N F O R M A T I O N

The following information is to be included with all versions of the document.

Project Name AE SWS Sell Cancel Project Number

Prepared by Lynn Kanode Date Prepared

Revised by Deanna Trussell Date Revised July 14, 2015

Revision Reason Updated Overview Stateless Revision Control

No.

1.0

Revised by Date Revised

Revision Reason Revision Control

No.

Revised by Date Revised

Revision Reason

Revision Control

No.

Page 4: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Process Overview 5

Contents

D O C U M E N T R E V I S I O N I N F O R M A T I O N

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1 P r o c e s s O v e r v i e w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Ancillary Sell/Cancel Overview................................................................................................................. 7 Programming Considerations ................................................................................................................... 7

2 T r a n s a c t i o n a l W o r k f l o w O v e r v i e w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 T r a n s a c t i o n a l W o r k f l o w S c e n a r i o s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1

Single passenger requesting single ancillary RQ/RS(including TravelItineraryRead, AncillaryPrice, UpdateReservation)

............................................................................................................................................................... 11 3.1.1 (RQ) TravelItineraryRead (v3.4) ............................................................................................... 11 3.1.2 (RS) TravelItineraryRead (v3.4) ............................................................................................... 11 3.1.3 (RQ) AncillaryPrice ................................................................................................................... 12 3.1.4 (RS) AncillaryPrice(Partial Response) ...................................................................................... 13 3.1.5 (RQ) UpdateReservation v1.10 ................................................................................................ 15 3.1.6 (RS) UpdateReservation v1.10 ................................................................................................. 16

Single passenger requesting multiple ancillaries ................................................................................... 19 3.1.7 (RQ) UpdateReservation v1.12.0 ............................................................................................. 19 3.1.8 (RS) UpdateReservation v1.12.0 .............................................................................................. 20

Multiple passengers with Passenger Type codes requesting multiple ancillaries .................................. 21 3.1.9 (RQ) UpdateReservation v1.12.0 ............................................................................................. 21 3.1.10 (RS) UpdateReservation v1.12.0 ............................................................................................ 24

Price Mismatch Action –ACCEPT_ANY_PRICE. Price mismatch - returns Success with Warning ...... 25 3.1.12 (RQ) UpdateReservation v1.12.0 ........................................................................................... 25 3.1.12 (RS) UpdateReservation v1.12.0 ............................................................................................ 26

Ancillary Cancel Request ....................................................................................................................... 28 3.1.13 (RQ) Cancel- Single Item v1.12.0 ........................................................................................... 28 3.1.14 (RS) Cancel – Single Item v1.12.0 ......................................................................................... 28 3.1.15 (RQ) Cancel - Multiple items v1.12.0 ...................................................................................... 28 3.1.16 (RS) Cancel - Multiple items v1.12.0 ...................................................................................... 29

4 U p d a t e R e s e r v a t i o n R e q u e s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0

Request Elements .................................................................................................................................. 30

5 U p d a t e R e s e r v a t i o n R e s p o n s e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2

Response Elements ............................................................................................................................... 32

6 A n c i l l a r y P r i c e R e q u e s t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5

Request Elements .................................................................................................................................. 35 Sample AncillaryPriceRQ Request ......................................................................................................... 35

Page 5: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Process Overview 6

7 A n c i l l a r y P r i c e R e s p o n s e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7

Response Elements ............................................................................................................................... 37 Sample AncillaryPriceRS ....................................................................................................................... 37 Sample TravelItineraryRead (when AE’s exist) ...................................................................................... 43

8 O T A _ A i r P r i c e L L S R Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6

9 U p d a t e R e s e r v a t i o n D e f i n e d E r r o r s f o r A E S e l l / C a n c e l . . . . . . . . 4 9

Sample Error Response ......................................................................................................................... 49

1 0 G l o s s a r y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1

Page 6: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Process Overview 7

A n c i l l a r y S e l l / C a n c e l O v e r v i e w

Ancillary Services (also known as Ancillaries, Optional Services or Air Extras) are considered

supplementary services that an airline may offer to its customers. Common examples include Prepaid

Baggage, Wi-fi and Meals. With new functionality provided in the UpdateReservationRQ service, Online

Travel Agencies and Sabre Authorized 3rd

Party developers will have the ability to sell or cancel

Ancillaries via Sabre APIs.

Online Travel Agencies (OTAs) already have the ability to retrieve Ancillary information and prices.

However, there has been no ability to sell Ancillaries using the Sabre APIs. With this enhancement,

OTAs will have the ability to sell or cancel Ancillaries using a new version of the UpdateReservation

service (version 1.7.8 or later).

All currently supported Ancillaries, such as Prepaid Baggage, Meals and In-Flight Entertainment, may be

sold using this service. OTAs will be able to sell single or multiple Ancillaries for single or multiple

passengers within the same request for a single PNR, with the exception of Group SA (Seats). Seats will

continue to be requested using EnhancedSeatMapRQ and AirSeatLLSRQ.

OTAs have the ability to cancel one or more Ancillaries from an existing booking. The Air Extra (AE)

field is updated in the PNR with the Cancel status and the AE data is moved to history.

P r o g r a m m i n g C o n s i d e r a t i o n s

1. To utilize the Sabre API’s to sell and cancel Ancillaries client must have created and End Transacted a

Passenger Name Record (PNR), including customer itinerary and passenger details (RequestType =

Stateless).

Stateless:

PNR will be retrieved from PNR Reservation Database and unpacked into AAA session;

After being updated PNR will be committed;

It is required to provide “Locator” element;

It is required to provide “ReceivedFrom” element

Includes UpdateToken from GetReservationRS

2. OTA AE Sell/Cancel functionality

The type of request needs to be Stateless for new OTA (AE Sell/Cancel) functionality.

Stateful functionality for AE Sell/Cancel will be added in a later version of UpdateReservationRQ.

1 Process Overview

Page 7: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Process Overview 8

3. When using RequestType = Stateless for OTA AE Cancel functionality you must include an

UpdateToken in your RQ.

<UpdateReservationRQ Version="1.12" xmlns:ns5="http://webservices.sabre.com/pnrbuilder/v1_12">

<ns5:RequestType>Stateless</ns5:RequestType>

<ns5:UpdateToken>4660bda5b6a998426eea20f9c49e12ca38c50e78672e9002</ns5:UpdateToken>

<ns5:ReservationUpdateList>

4. The basic information required to sell an Ancillary is the identifying data (Group and Subcode) and the

Ancillary price, along with other details listed below in section 5(a)(i) below. The sell service will re-

price the Ancillary, validating that the input price is correct at sell time. An optional element

(PriceMismatchAction) will allow clients to specify how they would like to manage price mismatches.

5. There is no option to ignore once a request is made. If change or cancel is desired following a sell

request, a separate cancel request will be required. Also, when the service is used to cancel an

Ancillary, it will automatically commit this update. There is no option to ignore the sell or cancel.

6. When using pnrbuilder files on versions higher than v1.7.8 you will need to specify the version number

in the namespace <UpdateReservationRQ Version="1.12.0" xmlns="http://webservices.sabre.com/pnrbuilder/v1_12">.

Page 8: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Overview 9

The high-level workflow for selling Ancillaries using the UpdateReservation service is as follows:

* See the documents in the Sabre Dev Studio (https://developer.sabre.com) for details on below services.

1. Shop

a. BargainFinderMaxRQ with AncillaryFee Summary=True Enable=True

2. Book Air/PNR and End Transaction

a. EnhancedAirBookRQ (2.x)

b. PassengerDetailsRQ (x.x) (Must End Transaction)

3. Retrieve PNR (TravelItineraryReadRQ (3.4 or higher) or GetReservationRQ)

4. Find applicable Ancillary items (including price)

a. AncillaryPriceRQ (GetPriceListRQ) (Sabre recommended)

b. OTA_AirPriceLLSRQ (see section 8 for additional information)

5. Sell selected Ancillary items utilizing

a. UpdateReservationRQ (1.7.8 or later - RequestType = Stateless)

i. The following elements must be provided by client in UpdateReservationRQ

UpdateID * (optional -- see Note)

UpdateToken

Locator

NameAssociationTag/NameRefNumber

SegmentAssociationTag

NumberofItems

RficSubcode

GroupCode

OwningCarrierCode

ReceivedFrom

TTLPrice (Price and Currency)

OriginalBasePrice (Price and Currency - optional)

EquivalentPrice (Price and Currency - optional)

2 Transactional Workflow Overview

Page 9: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Overview 10

* Note - Sabre highly recommends including the UpdateID for each ancillary being added or modified using

the UpdateReservation request. Using the UpdateID will return more detailed text information for any errors

within the transaction.

ii. PriceMismatchAction

A new optional element for clients to specify how they would like to manage pricing

mismatch, should it occur. The below are the available values:

“REJECT” (Default if not provided): Fail the sell request and return error,

along with the new price.

"ACCEPT_LOWER_PRICE”: If new price is lower, allow the sell to

complete with the new price, but return warning message advising of the new

price. If the new price is higher, fail the sell request and return error, along

with the new price.

“ACCEPT_ANY_PRICE”: Allow sell to complete with the new price,

whether the new price is lower OR higher, but return warning message

advising of the new price

iii. Client may provide Passenger Type Code (PTC). This information will not be utilized at

this time, but will be with future enhancements.

iv. Client may provide PQ (Price Quote ID) or Ticketing Reference. This information will

not be utilized at this time, but will be with future enhancements.

6. Issue E-Ticket and EMD (fulfill)

a. TravelItineraryReadRQ (if necessary) (3.4 or later)

b. DesignatePrinterLLSRQ

c. AirTicketLLSRQ (for E-Ticket) (if not previously completed)

d. AirTicketLLSRQ (for EMD)

e. EndTransactionLLSRQ

Page 10: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 11

S i n g l e p a s s e n g e r r e q u e s t i n g s i n g l e a n c i l l a r y R Q / R S ( i n c l u d i n g

T r a v e l I t i n e r a r y R e a d , A n c i l l a r y P r i c e , U p d a t e R e s e r v a t i o n )

3.1.1 ( R Q ) T r a v e l I t i n e r a r y R e a d ( v 3 . 4 )

<TravelItineraryReadRQ Version="3.4.0" TimeStamp="2012-09-19T10:00:00-06:00"

xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dd="http://webservices.sabre.com/dd2">

<MessagingDetails>

<SubjectAreas>

<SubjectArea>FULL</SubjectArea>

</SubjectAreas>

</MessagingDetails>

<UniqueID ID="FWGKVI"/>

</TravelItineraryReadRQ>

3.1.2 ( R S ) T r a v e l I t i n e r a r y R e a d ( v 3 . 4 )

<TravelItineraryReadRS Version="3.4.0" xmlns="http://webservices.sabre.com/sabreXML/2011/10"

xmlns:ns4="http://services.sabre.com/res/ortl/v0" xmlns:ns3="http://services.sabre.com/res/or/v1_0"

xmlns:ns5="http://services.sabre.com/res/ores/v0" xmlns:ns6="http://services.sabre.com/STL_Header/v120"

xmlns:stl="http://services.sabre.com/STL/v01">

<stl:ApplicationResults status="Complete">

<stl:Success timeStamp="2015-05-05T11:20:41.020-05:00"/>

</stl:ApplicationResults>

<TravelItinerary>

<CustomerInfo>

<ContactNumbers>

<ContactNumber LocationCode="DFW" Phone="1800123456" RPH="001"/>

</ContactNumbers>

<PersonName WithInfant="false" NameNumber="01.01" PassengerType="ADT" RPH="1">

<GivenName>ECM</GivenName>

<Surname>HIWG</Surname>

</PersonName>

</CustomerInfo>

<ItineraryInfo>

<ReservationItems>

<Item RPH="1">

<FlightSegment AirMilesFlown="3684" ArrivalDateTime="05-08T19:50" DayOfWeekInd="5"

DepartureDateTime="2015-05-08T09:05" ElapsedTime="07.45" eTicket="true" FlightNumber="0042"

NumberInParty="01" ResBookDesigCode="Y" SegmentNumber="0001" SmokingAllowed="false" SpecialMeal="false"

Status="HK" StopQuantity="00">

<DestinationLocation LocationCode="AUH" Terminal="TERMINAL 3" TerminalCode="3"/>

<Equipment AirEquipType="332"/>

3 Transactional Workflow Scenarios

Page 11: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 12

<MarketingAirline Code="EY" FlightNumber="0042"/>

<Meal Code="M"/>

<OriginLocation LocationCode="DUB" Terminal="TERMINAL 2" TerminalCode="2"/>

<SupplierRef ID="DCEY*EPZOWD"/>

<UpdatedArrivalTime>05-08T19:50</UpdatedArrivalTime>

<UpdatedDepartureTime>05-08T09:05</UpdatedDepartureTime>

</FlightSegment>

</Item>

</ReservationItems>

<Ticketing RPH="01" TicketTimeLimit="TAW/*"/>

</ItineraryInfo>

<ItineraryRef AirExtras="false" CustomerIdentifier="1234555550" ID="FWGKVI" InhibitCode="U"

PartitionID="AA" PrimeHostID="1S">

<Source AAA_PseudoCityCode="B4T0" CreateDateTime="2015-05-05T11:20" CreationAgent="PSC"

HomePseudoCityCode="HDQ" PseudoCityCode="B4T0" ReceivedFrom="QA TESTING" LastUpdateDateTime="2015-

05-05T11:20" SequenceNumber="1"/>

</ItineraryRef>

<RemarkInfo>

<Remark RPH="001" Type="Itinerary"/>

<Remark RPH="002" Type="Client Address">

<Text>DELIVERY</Text>

</Remark>

</RemarkInfo>

<SpecialServiceInfo RPH="001" Type="GFX">

<Service SSR_Code="SSR" SSR_Type="DOCS">

<Airline Code="EY"/>

<PersonName NameNumber="01.01">HIWG/ECM</PersonName>

<Text>HK1/P/USA/787568/USA/17MAY76/M/29DEC18/LAST/FIRST/MR</Text>

</Service>

</SpecialServiceInfo>

</TravelItinerary>

</TravelItineraryReadRS>

3.1.3 ( R Q ) A n c i l l a r y P r i c e

<p:GetPriceListRQ Version=""

xmlns:p="http://webservices.sabre.com/pnrbuilder">

<p:RequestType>Stateful</p:RequestType>

<p:Locator>${#TestSuite#locator}</p:Locator>

<p:ItineraryCriteria ItineraryID="1">

<p:SegmentCriteria SegmentID="01">

<p:DepartureAirportCode>DTW</p:DepartureAirportCode>

<p:ArrivalAirportCode>AMS</p:ArrivalAirportCode>

<p:DepartureDate>2011-09-12</p:DepartureDate>

<p:DepartureTime>15:50:00</p:DepartureTime>

<p:ArrivalDate>2011-09-13</p:ArrivalDate>

<p:ArrivalTime>05:55:00</p:ArrivalTime>

<p:MarketingCarrierCode>KL</p:MarketingCarrierCode>

<p:OperatingCarrierCode>DL</p:OperatingCarrierCode>

<p:ClassOfService>S</p:ClassOfService>

<p:FlightNumber>6052</p:FlightNumber>

<p:EquipmentType>333</p:EquipmentType>

</p:SegmentCriteria>

</p:ItineraryCriteria> -->

<p:AncillaryServiceCriteria>

Page 12: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 13

<p:GroupCode>BG</p:GroupCode>

</p:AncillaryServiceCriteria>

<p:PDCDiagnosticData>

<p:DiagnosticNumber>197</p:DiagnosticNumber>

</p:PDCDiagnosticData>

</p:GetPriceListRQ>

3.1.4 ( R S ) A n c i l l a r y P r i c e ( P a r t i a l R e s p o n s e )

<ns3:GetPriceListRS xmlns:ns3="http://webservices.sabre.com/pnrbuilder"

xmlns:ns2="http://services.sabre.com/STL/v01">

<ns3:AncillaryPriceList>

<ns3:Itinerary ItineraryID="1">

<ns3:AncillaryGroup GroupCode="BG">

<ns3:AncillaryService>

<ns3:CommercialName>UPTO33LB 15KG BAGGAGE</ns3:CommercialName>

<ns3:RficCode>C</ns3:RficCode>

<ns3:RficSubcode>0C1</ns3:RficSubcode>

<ns3:OwningCarrierCode>EY</ns3:OwningCarrierCode>

<ns3:BookingIndicator/>

<ns3:Vendor>ATP</ns3:Vendor>

<ns3:EMDType>2</ns3:EMDType>

<ns3:optionalAncillaryServiceInformation>

<ns3:SegmentNumber>1</ns3:SegmentNumber>

<ns3:TTLPrice>

<ns3:Price>472.50</ns3:Price>

<ns3:Currency>USD</ns3:Currency>

</ns3:TTLPrice>

<ns3:PortionOfTravelIndicator>P</ns3:PortionOfTravelIndicator>

<ns3:OriginalBasePrice>

<ns3:Price>472.50</ns3:Price>

<ns3:Currency>USD</ns3:Currency>

</ns3:OriginalBasePrice>

<ns3:RefundIndicator>R</ns3:RefundIndicator>

<ns3:CommisionIndicator>N</ns3:CommisionIndicator>

<ns3:InterlineIndicator>N</ns3:InterlineIndicator>

<ns3:FeeApplicationIndicator>4</ns3:FeeApplicationIndicator>

<ns3:PassengerTypeCode>ADT</ns3:PassengerTypeCode>

<ns3:BoardPoint>DUB</ns3:BoardPoint>

<ns3:OffPoint>AUH</ns3:OffPoint>

<ns3:TaxIndication>X</ns3:TaxIndication>

<ns3:SoftMatchIndicator>false</ns3:SoftMatchIndicator>

<ns3:SimultaneousTicketIndicator>X</ns3:SimultaneousTicketIndicator>

<ns3:TravelDateEffective>1980-01-01</ns3:TravelDateEffective>

<ns3:LatestTravelDatePermitted>9999-12-31</ns3:LatestTravelDatePermitted>

<ns3:PurchaseByDate>2014-08-14T00:00:00</ns3:PurchaseByDate>

</ns3:optionalAncillaryServiceInformation>

Page 13: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 14

</ns3:AncillaryService>

<ns3:AncillaryService>

<ns3:CommercialName>UPTO44LB 20KG BAGGAGE</ns3:CommercialName>

<ns3:RficCode>C</ns3:RficCode>

<ns3:RficSubcode>0C2</ns3:RficSubcode>

<ns3:OwningCarrierCode>EY</ns3:OwningCarrierCode>

<ns3:BookingIndicator/>

<ns3:Vendor>ATP</ns3:Vendor>

<ns3:EMDType>2</ns3:EMDType>

<ns3:optionalAncillaryServiceInformation>

<ns3:SegmentNumber>1</ns3:SegmentNumber>

<ns3:TTLPrice>

<ns3:Price>630.00</ns3:Price>

<ns3:Currency>USD</ns3:Currency>

</ns3:TTLPrice>

<ns3:PortionOfTravelIndicator>P</ns3:PortionOfTravelIndicator>

<ns3:OriginalBasePrice>

<ns3:Price>630.00</ns3:Price>

<ns3:Currency>USD</ns3:Currency>

</ns3:OriginalBasePrice>

<ns3:RefundIndicator>R</ns3:RefundIndicator>

<ns3:CommisionIndicator>N</ns3:CommisionIndicator>

<ns3:InterlineIndicator>N</ns3:InterlineIndicator>

<ns3:FeeApplicationIndicator>4</ns3:FeeApplicationIndicator>

<ns3:PassengerTypeCode>ADT</ns3:PassengerTypeCode>

<ns3:BoardPoint>DUB</ns3:BoardPoint>

<ns3:OffPoint>AUH</ns3:OffPoint>

<ns3:TaxIndication>X</ns3:TaxIndication>

<ns3:SoftMatchIndicator>false</ns3:SoftMatchIndicator>

<ns3:SimultaneousTicketIndicator>X</ns3:SimultaneousTicketIndicator>

<ns3:TravelDateEffective>1980-01-01</ns3:TravelDateEffective>

<ns3:LatestTravelDatePermitted>9999-12-31</ns3:LatestTravelDatePermitted>

<ns3:PurchaseByDate>2014-08-14T00:00:00</ns3:PurchaseByDate>

</ns3:optionalAncillaryServiceInformation>

</ns3:AncillaryService>

-8"?><AncillaryPricingResponse xmlns="http://www.atse.sabre.com/AncillaryPricing/Response">

<ITN Q00="1">

<OCG Q00="13" SF0="BG">

<OSC SHK="0C1" SFF="UPTO33LB 15KG BAGGAGE" SFV="ATP" B01="EY" N01="C" N02="2" AST="F">

<OOS N11="P" A01="DUB" A02="AUH">

<Q00>01</Q00>

<SUM B70="ADT" C51="472.50" C5A="USD" N21="X" C50="472.50"/>

<SFQ/>

<DTE D01="1980-01-01" D02="9999-12-31" D03="2014-08-14"/>

<FAT N41="4" N45="R" P03="N" P04="N"/>

</OOS>

</OSC>

<OSC SHK="0C2" SFF="UPTO44LB 20KG BAGGAGE" SFV="ATP" B01="EY" N01="C" N02="2" AST="F">

<OOS N11="P" A01="DUB" A02="AUH">

Page 14: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 15

<Q00>01</Q00>

<SUM B70="ADT" C51="630.00" C5A="USD" N21="X" C50="630.00"/>

<SFQ/>

<DTE D01="1980-01-01" D02="9999-12-31" D03="2014-08-14"/>

<FAT N41="4" N45="R" P03="N" P04="N"/>

</OOS>

</OSC>

</AncillaryPricingResponse>]]></ns3:PDCDiagnosticData>

</ns3:AncillaryPriceList>

</ns3:GetPriceListRS>

3.1.5 ( R Q ) U p d a t e R e s e r v a t i o n v 1 . 1 2

UpdateReservationRQ Version="1.12.0" xmlns:ns3="http://webservices.sabre.com/pnrbuilder/v1_12">

<ns3:RequestType>Stateless</ns3:RequestType>

<ns3:ReturnOptions IncludeUpdateDetails="true" RetrievePNR="true"/>

<ns3:ReservationUpdateList>

<ns3:Locator>IRXXHV</ns3:Locator>

<ns3:ReservationUpdateItem UpdateId="ID_1">

<ns3:AncillaryServicesUpdate op="C">

<ns3:NameAssociationList>

<ns3:NameAssociationTag>

<ns3:LastName>JBWT</ns3:LastName>

<ns3:FirstName>GLX</ns3:FirstName>

<ns3:NameRefNumber>01.01</ns3:NameRefNumber>

</ns3:NameAssociationTag>

</ns3:NameAssociationList>

<ns3:SegmentAssociationList>

<ns3:SegmentAssociationTag>

<ns3:CarrierCode>EY</ns3:CarrierCode>

<ns3:FlightNumber>0048</ns3:FlightNumber>

<ns3:DepartureDate>2015-04-27</ns3:DepartureDate>

<ns3:BoardPoint>DUB</ns3:BoardPoint>

<ns3:OffPoint>AUH</ns3:OffPoint>

<ns3:ClassOfService>B</ns3:ClassOfService>

<ns3:BookingStatus>HK</ns3:BookingStatus>

</ns3:SegmentAssociationTag>

</ns3:SegmentAssociationList>

<ns3:RficSubcode>0AA</ns3:RficSubcode>

<ns3:OwningCarrierCode>EY</ns3:OwningCarrierCode>

<ns3:TTLPrice>

<ns3:Price>12.00</ns3:Price>

<ns3:Currency>USD</ns3:Currency>

</ns3:TTLPrice>

<ns3:NumberOfItems>1</ns3:NumberOfItems>

<ns3:GroupCode>BG</ns3:GroupCode>

</ns3:AncillaryServicesUpdate>

</ns3:ReservationUpdateItem>

<ns3:ReceivedFrom>

<ns3:AgentName>AESWSSELL1AEBG</ns3:AgentName>

</ns3:ReceivedFrom>

</ns3:ReservationUpdateList>

</ns3:UpdateReservationRQ>

Page 15: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 16

3.1.6 ( R S ) U p d a t e R e s e r v a t i o n v 1 . 1 2

UpdateReservationRS xmlns="http://webservices.sabre.com/pnrbuilder/v1_12"

xmlns:ns2="http://services.sabre.com/res/or/v1_3">

<Success>OK</Success>

<Reservation numberInParty="1" numberOfInfants="0" NumberInSegment="1">

<BookingDetails>

<RecordLocator>IRXXHV</RecordLocator>

<CreationTimestamp>2015-04-22T14:52:00</CreationTimestamp>

<SystemCreationTimestamp>2015-04-22T14:52:00</SystemCreationTimestamp>

<CreationAgentID>PSC</CreationAgentID>

<UpdateTimestamp>2015-04-22T14:53:04</UpdateTimestamp>

<PNRSequence>2</PNRSequence>

<FlightsRange Start="2015-04-27T20:05:00" End="2015-04-28T06:50:00"/>

<DivideSplitDetails/>

<UpdateToken>-55bb9a5dc0f41113f34b66dae2bdc06ef1248f90c7076af7</UpdateToken>

</BookingDetails>

<POS>

<Source BookingSource="WD40" AgentSine="PSC" PseudoCityCode="WD40" ISOCountry="US"

AgentDutyCode="*" AirlineVendorID="AA"/>

</POS>

<PassengerReservation>

<Passengers>

<Passenger id="3" nameType="S" passengerType="ADT" nameId="01.01"

nameAssocId="1">

<LastName>JBWT</LastName>

<FirstName>GLX</FirstName>

<SpecialRequests>

<APISRequest>

<DOCSEntry id="12" type="G">

<DocumentType>P</DocumentType>

<CountryOfIssue>USA</CountryOfIssue>

<DocumentNumber>787568</DocumentNumber>

<DocumentNationalityCountry>USA</DocumentNationalityCountry>

<DateOfBirth>1976-05-17</DateOfBirth>

<Gender>M</Gender>

<DocumentExpirationDate>2018-12-29</DocumentExpirationDate>

<Surname>LAST</Surname>

<Forename>FIRST</Forename>

<MiddleName>MR</MiddleName>

<PrimaryHolder>false</PrimaryHolder>

<FreeText/>

<ActionCode>HK</ActionCode>

<NumberInParty>1</NumberInParty>

</DOCSEntry>

</APISRequest>

</SpecialRequests>

<Seats/>

<AncillaryServices>

<AncillaryService id="14" sequenceNumber="1">

<CommercialName>STANDARD BAGGAGE</CommercialName>

<RficCode>C</RficCode>

<RficSubcode>0AA</RficSubcode>

<OwningCarrierCode>EY</OwningCarrierCode>

<BookingIndicator></BookingIndicator>

<Vendor>MMGR</Vendor>

<EMDType>2</EMDType>

<TTLPrice>

<Price>12.00</Price>

<Currency>USD</Currency>

</TTLPrice>

<OriginalBasePrice>

<Price>12.00</Price>

<Currency>USD</Currency>

</OriginalBasePrice>

<RefundIndicator>Y</RefundIndicator>

<CommisionIndicator>N</CommisionIndicator>

Page 16: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 17

<InterlineIndicator>Y</InterlineIndicator>

<FeeApplicationIndicator>4</FeeApplicationIndicator>

<PassengerTypeCode>ADT</PassengerTypeCode>

<BoardPoint>DUB</BoardPoint>

<OffPoint>AUH</OffPoint>

<TaxesIncluded>true</TaxesIncluded>

<Taxes/>

<TotalOriginalBasePrice>

<Price>12.00</Price>

<Currency>USD</Currency>

</TotalOriginalBasePrice>

<TotalTTLPrice>

<Price>12.00</Price>

<Currency>USD</Currency>

</TotalTTLPrice>

<TotalTaxes/>

<NumberOfItems>1</NumberOfItems>

<ActionCode>HD</ActionCode>

<SegmentIndicator>P</SegmentIndicator>

<RefundFormIndicator>1</RefundFormIndicator>

<AdvancePurchaseIndicator>X</AdvancePurchaseIndicator>

<BookingSource>0</BookingSource>

<TicketingIndicator>0</TicketingIndicator>

<FirstTravelDate>150211</FirstTravelDate>

<LastTravelDate>200212</LastTravelDate>

<PurchaseTimestamp>2015-04-23T23:59:00</PurchaseTimestamp>

<GroupCode>BG</GroupCode>

<TicketUsedForEMDPricing>N</TicketUsedForEMDPricing>

<EMDConsummedAtIssuance></EMDConsummedAtIssuance>

<TaxExemption>N</TaxExemption>

<ACSCount>0</ACSCount>

<TravelPortions>

<TravelPortion id="5" sequence="1">

<AirlineCode>EY</AirlineCode>

<FlightNumber>0048</FlightNumber>

<ClassOfService>B</ClassOfService>

<DepartureDate>2015-04-27</DepartureDate>

<BoardPoint>DUB</BoardPoint>

<OffPoint>AUH</OffPoint>

<MarketingCarrier>EY</MarketingCarrier>

<OperatingCarrier>EY</OperatingCarrier>

</TravelPortion>

</TravelPortions>

</AncillaryService>

</AncillaryServices>

</Passenger>

</Passengers>

<Segments>

<Poc>

<Airport>DUB</Airport>

<Departure>2015-04-27T20:05:00</Departure>

</Poc>

<Segment sequence="1" id="5">

<Air id="5" sequence="1" segmentAssociationId="2" isPast="false">

<DepartureAirport>DUB</DepartureAirport>

<DepartureAirportCodeContext>IATA</DepartureAirportCodeContext>

<ArrivalAirport>AUH</ArrivalAirport>

<ArrivalAirportCodeContext>IATA</ArrivalAirportCodeContext>

<OperatingAirlineCode>EY</OperatingAirlineCode>

<OperatingAirlineShortName>ETIHAD AIRWAYS</OperatingAirlineShortName>

<EquipmentType>332</EquipmentType>

<MarketingAirlineCode>EY</MarketingAirlineCode>

<MarketingFlightNumber>0048</MarketingFlightNumber>

<OperatingClassOfService>B</OperatingClassOfService>

<MarketingClassOfService>B</MarketingClassOfService>

<Seats/>

<AirlineRefId>DCEY*EWZAYO</AirlineRefId>

<Eticket>true</Eticket>

<DepartureDateTime>2015-04-27T20:05:00</DepartureDateTime>

<ArrivalDateTime>2015-04-28T06:50:00</ArrivalDateTime>

Page 17: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 18

<FlightNumber>0048</FlightNumber>

<ClassOfService>B</ClassOfService>

<ActionCode>HK</ActionCode>

<NumberInParty>1</NumberInParty>

<SegmentSpecialRequests/>

<inboundConnection>false</inboundConnection>

<outboundConnection>false</outboundConnection>

<AncillaryServices>

<AncillaryService ref="14"/>

</AncillaryServices>

<ScheduleChangeIndicator>false</ScheduleChangeIndicator>

</Air>

</Segment>

</Segments>

<TicketingInfo>

<FutureTicketing id="7" index="1">

<Code>TAW</Code>

<Comment>*</Comment>

</FutureTicketing>

</TicketingInfo>

<ItineraryPricing/>

</PassengerReservation>

<DKNumbers>

<DKNumber>1234555550</DKNumber>

</DKNumbers>

<ReceivedFrom>

<Name>QA TESTING</Name>

</ReceivedFrom>

<PhoneNumbers>

<PhoneNumber id="6" index="1">

<CityCode>MKE</CityCode>

<Number>1800123456</Number>

</PhoneNumber>

</PhoneNumbers>

<Remarks>

<Remark index="1" id="10" type="ITINERARY">

<RemarkLines>

<RemarkLine>

<Text/>

</RemarkLine>

</RemarkLines>

</Remark>

<Remark index="2" id="11" type="CLIADR">

<RemarkLines>

<RemarkLine>

<Text>DELIVERY</Text>

</RemarkLine>

</RemarkLines>

</Remark>

</Remarks>

<EmailAddresses/>

</Reservation>

<Results>

<UpdateResult UpdateId="ID_1" Status="Success">

<Item id="14" type="P" op="C">

<AncillaryServicePricing>

<OriginalBasePrice>

<Price>12.00</Price>

<Currency>USD</Currency>

</OriginalBasePrice>

<TTLPrice>

<Price>12.00</Price>

<Currency>USD</Currency>

</TTLPrice>

</AncillaryServicePricing>

</Item>

</UpdateResult>

</Results>

</UpdateReservationRS>

Page 18: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 19

S i n g l e p a s s e n g e r r e q u e s t i n g m u l t i p l e a n c i l l a r i e s

3.1.7 ( R Q ) U p d a t e R e s e r v a t i o n v 1 . 1 2 . 0

<ns3:UpdateReservationRQ Version="1.12.0" xmlns:ns3="http://webservices.sabre.com/pnrbuilder/v1_12">

<ns3:RequestType>Stateless</ns3:RequestType>

<ns3:ReturnOptions IncludeUpdateDetails="true" RetrievePNR="false"/>

<ns3:ReservationUpdateList>

<ns3:Locator>EYBDEG</ns3:Locator>

<ns3:ReservationUpdateItem UpdateId="ID_1">

<ns3:AncillaryServicesUpdate op="C">

<ns3:NameAssociationList>

<ns3:NameAssociationTag>

<ns3:LastName>MFNK</ns3:LastName>

<ns3:FirstName>KPA</ns3:FirstName>

<ns3:NameRefNumber>01.01</ns3:NameRefNumber>

</ns3:NameAssociationTag>

</ns3:NameAssociationList>

<ns3:SegmentAssociationList>

<ns3:SegmentAssociationTag>

<ns3:CarrierCode>AM</ns3:CarrierCode>

<ns3:FlightNumber>0030</ns3:FlightNumber>

<ns3:DepartureDate>2015-04-24</ns3:DepartureDate>

<ns3:BoardPoint>MEX</ns3:BoardPoint>

<ns3:OffPoint>EZE</ns3:OffPoint>

<ns3:ClassOfService>Y</ns3:ClassOfService>

<ns3:BookingStatus>HK</ns3:BookingStatus>

</ns3:SegmentAssociationTag>

</ns3:SegmentAssociationList>

<ns3:RficSubcode>0CE</ns3:RficSubcode>

<ns3:OwningCarrierCode>AM</ns3:OwningCarrierCode>

<ns3:TTLPrice>

<ns3:Price>2367</ns3:Price>

<ns3:Currency>MXN</ns3:Currency>

</ns3:TTLPrice>

<ns3:NumberOfItems>1</ns3:NumberOfItems>

<ns3:GroupCode>BG</ns3:GroupCode>

</ns3:AncillaryServicesUpdate>

</ns3:ReservationUpdateItem>

<ns3:ReservationUpdateItem UpdateId="ID_2">

<ns3:AncillaryServicesUpdate op="C">

<ns3:NameAssociationList>

<ns3:NameAssociationTag>

<ns3:LastName>MFNK</ns3:LastName>

<ns3:FirstName>KPA</ns3:FirstName>

<ns3:NameRefNumber>01.01</ns3:NameRefNumber>

</ns3:NameAssociationTag>

</ns3:NameAssociationList>

<ns3:SegmentAssociationList>

<ns3:SegmentAssociationTag>

<ns3:CarrierCode>AM</ns3:CarrierCode>

Page 19: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 20

<ns3:FlightNumber>0031</ns3:FlightNumber>

<ns3:DepartureDate>2015-04-27</ns3:DepartureDate>

<ns3:BoardPoint>EZE</ns3:BoardPoint>

<ns3:OffPoint>MEX</ns3:OffPoint>

<ns3:ClassOfService>Y</ns3:ClassOfService>

<ns3:BookingStatus>HK</ns3:BookingStatus>

</ns3:SegmentAssociationTag>

</ns3:SegmentAssociationList>

<ns3:RficSubcode>0CE</ns3:RficSubcode>

<ns3:OwningCarrierCode>AM</ns3:OwningCarrierCode>

<ns3:TTLPrice>

<ns3:Price>1949</ns3:Price>

<ns3:Currency>MXN</ns3:Currency>

</ns3:TTLPrice>

<ns3:NumberOfItems>1</ns3:NumberOfItems>

<ns3:GroupCode>BG</ns3:GroupCode>

</ns3:AncillaryServicesUpdate>

</ns3:ReservationUpdateItem>

<ns3:ReceivedFrom>

<ns3:AgentName>AESWSSELL2AEBG</ns3:AgentName>

</ns3:ReceivedFrom>

</ns3:ReservationUpdateList>

</ns3:UpdateReservationRQ>

3.1.8 ( R S ) U p d a t e R e s e r v a t i o n v 1 . 1 2 . 0

<ns3:UpdateReservationRQ Version="1.12.0"

xmlns:ns3="http://webservices.sabre.com/pnrbuilder/v1_12">

<ns3:RequestType>Stateless</ns3:RequestType>

<ns3:ReturnOptions IncludeUpdateDetails="true" RetrievePNR="false"/>

<ns3:ReservationUpdateList>

<ns3:Locator>EYBDEG</ns3:Locator>

<ns3:ReservationUpdateItem UpdateId="ID_1">

<ns3:AncillaryServicesUpdate op="C">

<ns3:NameAssociationList>

<ns3:NameAssociationTag>

<ns3:LastName>MFNK</ns3:LastName>

<ns3:FirstName>KPA</ns3:FirstName>

<ns3:NameRefNumber>01.01</ns3:NameRefNumber>

</ns3:NameAssociationTag>

</ns3:NameAssociationList>

<ns3:SegmentAssociationList>

<ns3:SegmentAssociationTag>

<ns3:CarrierCode>AM</ns3:CarrierCode>

<ns3:FlightNumber>0030</ns3:FlightNumber>

<ns3:DepartureDate>2015-04-24</ns3:DepartureDate>

<ns3:BoardPoint>MEX</ns3:BoardPoint>

<ns3:OffPoint>EZE</ns3:OffPoint>

<ns3:ClassOfService>Y</ns3:ClassOfService>

<ns3:BookingStatus>HK</ns3:BookingStatus>

</ns3:SegmentAssociationTag>

</ns3:SegmentAssociationList>

<ns3:RficSubcode>0CE</ns3:RficSubcode>

<ns3:OwningCarrierCode>AM</ns3:OwningCarrierCode>

Page 20: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 21

<ns3:TTLPrice>

<ns3:Price>2367</ns3:Price>

<ns3:Currency>MXN</ns3:Currency>

</ns3:TTLPrice>

<ns3:NumberOfItems>1</ns3:NumberOfItems>

<ns3:GroupCode>BG</ns3:GroupCode>

</ns3:AncillaryServicesUpdate>

</ns3:ReservationUpdateItem>

<ns3:ReservationUpdateItem UpdateId="ID_2">

<ns3:AncillaryServicesUpdate op="C">

<ns3:NameAssociationList>

<ns3:NameAssociationTag>

<ns3:LastName>MFNK</ns3:LastName>

<ns3:FirstName>KPA</ns3:FirstName>

<ns3:NameRefNumber>01.01</ns3:NameRefNumber>

</ns3:NameAssociationTag>

</ns3:NameAssociationList>

<ns3:SegmentAssociationList>

<ns3:SegmentAssociationTag>

<ns3:CarrierCode>AM</ns3:CarrierCode>

<ns3:FlightNumber>0031</ns3:FlightNumber>

<ns3:DepartureDate>2015-04-27</ns3:DepartureDate>

<ns3:BoardPoint>EZE</ns3:BoardPoint>

<ns3:OffPoint>MEX</ns3:OffPoint>

<ns3:ClassOfService>Y</ns3:ClassOfService>

<ns3:BookingStatus>HK</ns3:BookingStatus>

</ns3:SegmentAssociationTag>

</ns3:SegmentAssociationList>

<ns3:RficSubcode>0CE</ns3:RficSubcode>

<ns3:OwningCarrierCode>AM</ns3:OwningCarrierCode>

<ns3:TTLPrice>

<ns3:Price>1949</ns3:Price>

<ns3:Currency>MXN</ns3:Currency>

</ns3:TTLPrice>

<ns3:NumberOfItems>1</ns3:NumberOfItems>

<ns3:GroupCode>BG</ns3:GroupCode>

</ns3:AncillaryServicesUpdate>

</ns3:ReservationUpdateItem>

<ns3:ReceivedFrom>

<ns3:AgentName>AESWSSELL2AEBG</ns3:AgentName>

</ns3:ReceivedFrom>

</ns3:ReservationUpdateList>

</ns3:UpdateReservationRQ>

M u l t i p l e p a s s e n g e r s w i t h P a s s e n g e r T y p e c o d e s r e q u e s t i n g

m u l t i p l e a n c i l l a r i e s

3.1.9 ( R Q ) U p d a t e R e s e r v a t i o n v 1 . 1 2 . 0

<ns5:UpdateReservationRQ Version="1.12.0"

xmlns:ns5="http://webservices.sabre.com/pnrbuilder/v1_12">

<ns5:RequestType>Stateless</ns5:RequestType>

<ns5:ReturnOptions IncludeUpdateDetails="true" RetrievePNR="false"/>

<ns5:ReservationUpdateList>

<ns5:Locator>EMDNJE</ns5:Locator>

<ns5:ReservationUpdateItem UpdateId="ID_1">

<ns5:AncillaryServicesUpdate op="C">

Page 21: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 22

<ns5:NameAssociationList>

<ns5:NameAssociationTag>

<ns5:LastName>JEX</ns5:LastName>

<ns5:FirstName>YW</ns5:FirstName>

<ns5:NameRefNumber>01.01</ns5:NameRefNumber>

</ns5:NameAssociationTag>

</ns5:NameAssociationList>

<ns5:SegmentAssociationList>

<ns5:SegmentAssociationTag>

<ns5:CarrierCode>EY</ns5:CarrierCode>

<ns5:FlightNumber>0048</ns5:FlightNumber>

<ns5:DepartureDate>2015-05-27</ns5:DepartureDate>

<ns5:BoardPoint>DUB</ns5:BoardPoint>

<ns5:OffPoint>AUH</ns5:OffPoint>

<ns5:ClassOfService>B</ns5:ClassOfService>

<ns5:BookingStatus>HK</ns5:BookingStatus>

</ns5:SegmentAssociationTag>

</ns5:SegmentAssociationList>

<ns5:CommercialName>UPTO33LB 15KG BAGGAGE</ns5:CommercialName>

<ns5:RficCode>C</ns5:RficCode>

<ns5:RficSubcode>0C1</ns5:RficSubcode>

<ns5:OwningCarrierCode>EY</ns5:OwningCarrierCode>

<ns5:Vendor>ATP</ns5:Vendor>

<ns5:EMDType>2</ns5:EMDType>

<ns5:OriginalBasePrice>

<ns5:Price>540.00</ns5:Price>

<ns5:Currency>USD</ns5:Currency>

</ns5:OriginalBasePrice>

<ns5:RefundIndicator>R</ns5:RefundIndicator>

<ns5:FeeApplicationIndicator>4</ns5:FeeApplicationIndicator>

<ns5:PassengerTypeCode>ADT</ns5:PassengerTypeCode>

<ns5:NumberOfItems>1</ns5:NumberOfItems>

<ns5:ActionCode>HD</ns5:ActionCode>

<ns5:GroupCode>BG</ns5:GroupCode>

</ns5:AncillaryServicesUpdate>

</ns5:ReservationUpdateItem>

<!--add 2nd ae-->

<ns5:ReservationUpdateItem UpdateId="ID_2">

<ns5:AncillaryServicesUpdate op="C">

<ns5:NameAssociationList>

<ns5:NameAssociationTag>

<ns5:LastName>JEX</ns5:LastName>

<ns5:FirstName>JB</ns5:FirstName>

<ns5:NameRefNumber>01.02</ns5:NameRefNumber>

</ns5:NameAssociationTag>

</ns5:NameAssociationList>

<ns5:SegmentAssociationList>

<ns5:SegmentAssociationTag>

<ns5:CarrierCode>EY</ns5:CarrierCode>

<ns5:FlightNumber>0048</ns5:FlightNumber>

<ns5:DepartureDate>2015-05-27</ns5:DepartureDate>

<ns5:BoardPoint>DUB</ns5:BoardPoint>

<ns5:OffPoint>AUH</ns5:OffPoint>

<ns5:ClassOfService>B</ns5:ClassOfService>

<ns5:BookingStatus>HK</ns5:BookingStatus>

</ns5:SegmentAssociationTag>

</ns5:SegmentAssociationList>

<ns5:CommercialName>UPTO33LB 15KG BAGGAGE</ns5:CommercialName>

<ns5:RficCode>C</ns5:RficCode>

<ns5:RficSubcode>0C1</ns5:RficSubcode>

<ns5:OwningCarrierCode>EY</ns5:OwningCarrierCode>

<ns5:Vendor>ATP</ns5:Vendor>

<ns5:EMDType>2</ns5:EMDType>

<ns5:OriginalBasePrice>

<ns5:Price>540.00</ns5:Price>

<ns5:Currency>USD</ns5:Currency>

</ns5:OriginalBasePrice>

<ns5:RefundIndicator>R</ns5:RefundIndicator>

Page 22: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 23

<ns5:FeeApplicationIndicator>4</ns5:FeeApplicationIndicator>

<ns5:PassengerTypeCode>MIL</ns5:PassengerTypeCode>

<ns5:NumberOfItems>1</ns5:NumberOfItems>

<ns5:ActionCode>HD</ns5:ActionCode>

<ns5:GroupCode>BG</ns5:GroupCode>

</ns5:AncillaryServicesUpdate>

</ns5:ReservationUpdateItem>

<!--Add 3rd AE-->

<ns5:ReservationUpdateItem UpdateId="ID_3">

<ns5:AncillaryServicesUpdate op="C">

<ns5:NameAssociationList>

<ns5:NameAssociationTag>

<ns5:LastName>JEX</ns5:LastName>

<ns5:FirstName>YW</ns5:FirstName>

<ns5:NameRefNumber>01.01</ns5:NameRefNumber>

</ns5:NameAssociationTag>

</ns5:NameAssociationList>

<ns5:SegmentAssociationList>

<ns5:SegmentAssociationTag>

<ns5:CarrierCode>EY</ns5:CarrierCode>

<ns5:FlightNumber>0048</ns5:FlightNumber>

<ns5:DepartureDate>2015-05-27</ns5:DepartureDate>

<ns5:BoardPoint>DUB</ns5:BoardPoint>

<ns5:OffPoint>AUH</ns5:OffPoint>

<ns5:ClassOfService>B</ns5:ClassOfService>

<ns5:BookingStatus>HK</ns5:BookingStatus>

</ns5:SegmentAssociationTag>

</ns5:SegmentAssociationList>

<ns5:CommercialName>EXECUTIVE LOUNGE</ns5:CommercialName>

<ns5:RficCode>E</ns5:RficCode>

<ns5:RficSubcode>0AG</ns5:RficSubcode>

<ns5:OwningCarrierCode>EY</ns5:OwningCarrierCode>

<ns5:Vendor>MMGR</ns5:Vendor>

<ns5:EMDType>2</ns5:EMDType>

<ns5:EquivalentPrice>

<ns5:Price>599.10</ns5:Price>

<ns5:Currency>USD</ns5:Currency>

</ns5:EquivalentPrice>

<ns5:TTLPrice>

<ns5:Price>599.10</ns5:Price>

<ns5:Currency>USD</ns5:Currency>

</ns5:TTLPrice>

<ns5:RefundIndicator>R</ns5:RefundIndicator>

<ns5:FeeApplicationIndicator>4</ns5:FeeApplicationIndicator>

<ns5:PassengerTypeCode>ADT</ns5:PassengerTypeCode>

<ns5:NumberOfItems>1</ns5:NumberOfItems>

<ns5:ActionCode>HD</ns5:ActionCode>

<ns5:GroupCode>LG</ns5:GroupCode>

</ns5:AncillaryServicesUpdate>

</ns5:ReservationUpdateItem>

<ns5:ReservationUpdateItem UpdateId="ID_4">

<ns5:AncillaryServicesUpdate op="C">

<ns5:NameAssociationList>

<ns5:NameAssociationTag>

<ns5:LastName>JEX</ns5:LastName>

<ns5:FirstName>JB</ns5:FirstName>

<ns5:NameRefNumber>01.02</ns5:NameRefNumber>

</ns5:NameAssociationTag>

</ns5:NameAssociationList>

<ns5:SegmentAssociationList>

<ns5:SegmentAssociationTag>

<ns5:CarrierCode>EY</ns5:CarrierCode>

<ns5:FlightNumber>0048</ns5:FlightNumber>

<ns5:DepartureDate>2015-05-27</ns5:DepartureDate>

<ns5:BoardPoint>DUB</ns5:BoardPoint>

<ns5:OffPoint>AUH</ns5:OffPoint>

<ns5:ClassOfService>B</ns5:ClassOfService>

<ns5:BookingStatus>HK</ns5:BookingStatus>

Page 23: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 24

</ns5:SegmentAssociationTag>

</ns5:SegmentAssociationList>

<ns5:CommercialName>EXECUTIVE LOUNGE</ns5:CommercialName>

<ns5:RficCode>E</ns5:RficCode>

<ns5:RficSubcode>0AG</ns5:RficSubcode>

<ns5:OwningCarrierCode>EY</ns5:OwningCarrierCode>

<ns5:Vendor>MMGR</ns5:Vendor>

<ns5:EMDType>2</ns5:EMDType>

<ns5:EquivalentPrice>

<ns5:Price>599.10</ns5:Price>

<ns5:Currency>USD</ns5:Currency>

</ns5:EquivalentPrice>

<ns5:TTLPrice>

<ns5:Price>599.10</ns5:Price>

<ns5:Currency>USD</ns5:Currency>

</ns5:TTLPrice>

<ns5:RefundIndicator>R</ns5:RefundIndicator>

<ns5:FeeApplicationIndicator>4</ns5:FeeApplicationIndicator>

<ns5:PassengerTypeCode>MIL</ns5:PassengerTypeCode>

<ns5:NumberOfItems>1</ns5:NumberOfItems>

<ns5:ActionCode>HD</ns5:ActionCode>

<ns5:GroupCode>LG</ns5:GroupCode>

</ns5:AncillaryServicesUpdate>

</ns5:ReservationUpdateItem>

<ns5:ReceivedFrom>

<ns5:AgentName>TPE_add4AEs</ns5:AgentName>

</ns5:ReceivedFrom>

</ns5:ReservationUpdateList>

</ns5:UpdateReservationRQ>

3.1.10 ( R S ) U p d a t e R e s e r v a t i o n v 1 . 1 2 . 0

<UpdateReservationRS xmlns="http://webservices.sabre.com/pnrbuilder/v1_12"

xmlns:ns2="http://services.sabre.com/res/or/v1_3">

<Success>OK</Success>

<Results>

<UpdateResult UpdateId="ID_1" Status="Success">

<Item id="16" type="P" op="C">

<AncillaryServicePricing>

<OriginalBasePrice>

<Price>540.00</Price>

<Currency>USD</Currency>

</OriginalBasePrice>

<TTLPrice>

<Price>540.00</Price>

<Currency>USD</Currency>

</TTLPrice>

</AncillaryServicePricing>

</Item>

</UpdateResult>

<UpdateResult UpdateId="ID_2" Status="Success">

<Item id="18" type="P" op="C">

<AncillaryServicePricing>

<OriginalBasePrice>

<Price>540.00</Price>

<Currency>USD</Currency>

</OriginalBasePrice>

<TTLPrice>

<Price>540.00</Price>

<Currency>USD</Currency>

</TTLPrice>

</AncillaryServicePricing>

</Item>

Page 24: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 25

</UpdateResult>

<UpdateResult UpdateId="ID_3" Status="Success">

<Item id="20" type="P" op="C">

<AncillaryServicePricing>

<OriginalBasePrice>

<Price>2200</Price>

<Currency>AED</Currency>

</OriginalBasePrice>

<EquivalentPrice>

<Price>599.10</Price>

<Currency>USD</Currency>

</EquivalentPrice>

<TTLPrice>

<Price>599.10</Price>

<Currency>USD</Currency>

</TTLPrice>

</AncillaryServicePricing>

</Item>

</UpdateResult>

<UpdateResult UpdateId="ID_4" Status="Success">

<Item id="22" type="P" op="C">

<AncillaryServicePricing>

<OriginalBasePrice>

<Price>2200</Price>

<Currency>AED</Currency>

</OriginalBasePrice>

<EquivalentPrice>

<Price>599.10</Price>

<Currency>USD</Currency>

</EquivalentPrice>

<TTLPrice>

<Price>599.10</Price>

<Currency>USD</Currency>

</TTLPrice>

</AncillaryServicePricing>

</Item>

</UpdateResult>

</Results>

</UpdateReservationRS>

P r i c e M i s m a t c h A c t i o n – A C C E P T _ A N Y _ P R I C E . P r i c e m i s m a t c h -

r e t u r n s S u c c e s s w i t h W a r n i n g

3.1.11 ( R Q ) U p d a t e R e s e r v a t i o n v 1 . 1 2 . 0

<ns3:UpdateReservationRQ Version="1.12.0"

xmlns:ns3="http://webservices.sabre.com/pnrbuilder/v1_12">

<ns3:RequestType>Stateless</ns3:RequestType>

<ns3:ReturnOptions IncludeUpdateDetails="true" RetrievePNR="false"/>

<ns3:ReservationUpdateList>

<ns3:Locator>ELUHJV</ns3:Locator>

<ns3:ReservationUpdateItem UpdateId="ID_5">

<ns3:AncillaryServicesUpdate op="C">

<ns3:NameAssociationList>

<ns3:NameAssociationTag>

<ns3:LastName>SWGE</ns3:LastName>

<ns3:FirstName>PMJ</ns3:FirstName>

<ns3:NameRefNumber>02.01</ns3:NameRefNumber>

</ns3:NameAssociationTag>

</ns3:NameAssociationList>

<ns3:SegmentAssociationList>

<ns3:SegmentAssociationTag>

<ns3:CarrierCode>AM</ns3:CarrierCode>

Page 25: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 26

<ns3:FlightNumber>0030</ns3:FlightNumber>

<ns3:DepartureDate>2015-05-12</ns3:DepartureDate>

<ns3:BoardPoint>MEX</ns3:BoardPoint>

<ns3:OffPoint>EZE</ns3:OffPoint>

<ns3:ClassOfService>Y</ns3:ClassOfService>

<ns3:BookingStatus>HK</ns3:BookingStatus>

</ns3:SegmentAssociationTag>

</ns3:SegmentAssociationList>

<ns3:RficSubcode>0CE</ns3:RficSubcode>

<ns3:OwningCarrierCode>AM</ns3:OwningCarrierCode>

<ns3:TTLPrice>

<ns3:Price>2100</ns3:Price>

<ns3:Currency>MXN</ns3:Currency>

</ns3:TTLPrice>

<ns3:NumberOfItems>1</ns3:NumberOfItems>

<ns3:GroupCode>BG</ns3:GroupCode>

<ns3:PriceMismatchAction>ACCEPT_ANY_PRICE</ns3:PriceMismatchAction>

</ns3:AncillaryServicesUpdate>

</ns3:ReservationUpdateItem>

<ns3:ReservationUpdateItem UpdateId="ID_6">

<ns3:AncillaryServicesUpdate op="C">

<ns3:NameAssociationList>

<ns3:NameAssociationTag>

<ns3:LastName>SWGE</ns3:LastName>

<ns3:FirstName>PMJ</ns3:FirstName>

<ns3:NameRefNumber>02.01</ns3:NameRefNumber>

</ns3:NameAssociationTag>

</ns3:NameAssociationList>

<ns3:SegmentAssociationList>

<ns3:SegmentAssociationTag>

<ns3:CarrierCode>AM</ns3:CarrierCode>

<ns3:FlightNumber>0031</ns3:FlightNumber>

<ns3:DepartureDate>2015-05-15</ns3:DepartureDate>

<ns3:BoardPoint>EZE</ns3:BoardPoint>

<ns3:OffPoint>MEX</ns3:OffPoint>

<ns3:ClassOfService>Y</ns3:ClassOfService>

<ns3:BookingStatus>HK</ns3:BookingStatus>

</ns3:SegmentAssociationTag>

</ns3:SegmentAssociationList>

<ns3:RficSubcode>0CE</ns3:RficSubcode>

<ns3:OwningCarrierCode>AM</ns3:OwningCarrierCode>

<ns3:TTLPrice>

<ns3:Price>10</ns3:Price>

<ns3:Currency>MXN</ns3:Currency>

</ns3:TTLPrice>

<ns3:NumberOfItems>1</ns3:NumberOfItems>

<ns3:GroupCode>BG</ns3:GroupCode>

<ns3:PriceMismatchAction>ACCEPT_ANY_PRICE</ns3:PriceMismatchAction>

</ns3:AncillaryServicesUpdate>

</ns3:ReservationUpdateItem>

<ns3:ReceivedFrom>

<ns3:AgentName>AESWSSELL2AEBG</ns3:AgentName>

</ns3:ReceivedFrom>

</ns3:ReservationUpdateList>

</ns3:UpdateReservationRQ>

3.1.12 ( R S ) U p d a t e R e s e r v a t i o n v 1 . 1 2 . 0

<UpdateReservationRS xmlns="http://webservices.sabre.com/pnrbuilder/v1_12"

xmlns:ns2="http://services.sabre.com/res/or/v1_3">

<Success>OK</Success>

<Warnings>

<Warning UpdateId="ID_5">

Page 26: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 27

<Message>Ancillary price from pricing is lower than price in request. Air Extra

created with lower price</Message>

</Warning>

<Warning UpdateId="ID_6">

<Message>Ancillary price from pricing is higher than price in request. Air Extra

created with higher price</Message>

</Warning>

</Warnings>

<Results>

<UpdateResult UpdateId="ID_5" Status="Success">

<Item id="45" type="P" op="C">

<AncillaryServicePricing>

<OriginalBasePrice>

<Price>1680</Price>

<Currency>MXN</Currency>

</OriginalBasePrice>

<Taxes>

<Tax>

<TaxAmount>269</TaxAmount>

<TaxCode>IVA</TaxCode>

</Tax>

</Taxes>

<TTLPrice>

<Price>1949</Price>

<Currency>MXN</Currency>

</TTLPrice>

</AncillaryServicePricing>

</Item>

</UpdateResult>

<UpdateResult UpdateId="ID_6" Status="Success">

<Item id="47" type="P" op="C">

<AncillaryServicePricing>

<OriginalBasePrice>

<Price>1680</Price>

<Currency>MXN</Currency>

</OriginalBasePrice>

<Taxes>

<Tax>

<TaxAmount>269</TaxAmount>

<TaxCode>IVA</TaxCode>

</Tax>

</Taxes>

<TTLPrice>

<Price>1949</Price>

<Currency>MXN</Currency>

</TTLPrice>

</AncillaryServicePricing>

</Item>

</UpdateResult>

</Results>

</UpdateReservationRS>

Page 27: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 28

A n c i l l a r y C a n c e l R e q u e s t

3.1.13 ( R Q ) C a n c e l - S i n g l e I t e m v 1 . 1 2 . 0

<UpdateReservationRQ Version="1.12.0" xsi:schemaLocation="http://webservices.sabre.com/pnrbuilder

UpdateReservationSTLRQ_v0.01.xsd " xmlns="http://webservices.sabre.com/pnrbuilder/v1_12"

xmlns:stl="http://services.sabre.com/STL/v01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance">

<RequestType>Stateless</RequestType>

<ReturnOptions IncludeUpdateDetails="true" RetrievePNR="false"/>

<ReservationUpdateList>

<Locator>IRXXHV</Locator>

<ReservationUpdateItem UpdateId="1">

<AncillaryServicesUpdate id="14" op="D"/>

</ReservationUpdateItem>

<ReceivedFrom>

<AgentName>Cancel</AgentName>

</ReceivedFrom>

</ReservationUpdateList>

<UpdateToken>-55bb9a5dc0f41113f34b66dae2bdc06ef1248f90c7076af7</UpdateToken>

</UpdateReservationRQ>

3.1.14 ( R S ) C a n c e l – S i n g l e I t e m v 1 . 1 2 . 0

<UpdateReservationRS xmlns="http://webservices.sabre.com/pnrbuilder/v1_12"

xmlns:ns2="http://services.sabre.com/res/or/v1_3">

<Success>OK</Success>

<Results>

<UpdateResult UpdateId="1" Status="Success">

<Item type="P" op="D"/>

</UpdateResult>

</Results>

</UpdateReservationRS>

3.1.15 ( R Q ) C a n c e l - M u l t i p l e i t e m s v 1 . 1 2 . 0

<UpdateReservationRQ Version="1.12.0" xsi:schemaLocation="http://webservices.sabre.com/pnrbuilder

UpdateReservationSTLRQ_v0.01.xsd " xmlns="http://webservices.sabre.com/pnrbuilder/v1_12"

xmlns:stl="http://services.sabre.com/STL/v01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance">

<RequestType>Stateless</RequestType>

<ReturnOptions IncludeUpdateDetails="true" RetrievePNR="false"/>

<ReservationUpdateList>

<Locator>IRXXHV</Locator>

<ReservationUpdateItem UpdateId="1">

<AncillaryServicesUpdate id="14" op="D"/>

</ReservationUpdateItem>

<ReservationUpdateItem UpdateId="3">

<AncillaryServicesUpdate id="25" op="D"/>

</ReservationUpdateItem>

<ReceivedFrom>

<AgentName>Cancel2AE</AgentName>

</ReceivedFrom>

</ReservationUpdateList>

<UpdateToken>-55bb9a5dc0f41113f34b66dae2bdc06ef1248f90c7076af7</UpdateToken>

</UpdateReservationRQ>

Page 28: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Transactional Workflow Scenarios 29

3.1.16 ( R S ) C a n c e l - M u l t i p l e i t e m s v 1 . 1 2 . 0

<UpdateReservationRS xmlns="http://webservices.sabre.com/pnrbuilder/v1_12"

xmlns:ns2="http://services.sabre.com/res/or/v1_3">

<Success>OK</Success>

<Results>

<UpdateResult UpdateId="1" Status="Success">

<Item type="P" op="D"/>

</UpdateResult>

<UpdateResult UpdateId="3" Status="Success">

<Item type="P" op="D"/>

</UpdateResult>

</Results>

</UpdateReservationRS>

Page 29: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved UpdateReservation Request 30

R e q u e s t E l e m e n t s

See the UpdateReservationRQ document on Sabre Dev Studio (https://developer.sabre.com)

for a complete list of elements. The mandatory elements are as follows:

4 UpdateReservation Request

Name DataType Required Default SampleValue Description

UpdateReservationRQ Y

Version N xmlns="http://webservices.sabr

e.com/pnrbuilder

RequestType RequestType Y/N Stateless Describes the request type, allowed values are: Stateless, Stateful, "Stateless" request deals with PNRs that have been committed and stored in database. This request type requires "PNR Locator” Only Stateless is supported at this time. .Stateful" request deals with PNR available in AAA session (have not been committed), therefore "Locator" is not required.

ReservationUpdateList

ReservationUpdateItem UpdateId

ReservationUpdateItem" is used to specify which PNR element should be updated. "UpdateId" optional (but strongly recommended) attribute (text or number) used to recognize particular ReservationUpdateItem' in response error messages

Locator String Y MIZYCL Locator" identifies particular PNR. It is required for “Stateless” request.

AncillaryServicesUpdate Y C "AncillaryServicesUpdate" is used to update AE elements. Attribute can be used to specify operation type as follows: C=Create, U=Update, D=Delete.

NameAssociationList Y/N NameAssociationList" is used to correlate item being updated with particular passengers

Page 30: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved UpdateReservation Request 31

NameAssociationTag Y

LastName

Y SMITH

FirstName Y JOHN MR

NameRefNumber Y 01.01 NameRefNumber" reflects how passenger is defined in a PNR structure

SegmentAssociationList Y/N SegmentAssociationList" is used to correlate item being updated with particular segment

SegmentAssociationTag

Y

CarrierCode

Y AA

FlightNumber Y 0010

DepartureDate Y 2014-07-20

BoardPoint Y LAX

OffPoint Y JFK

ClassofService Y Y

BookingStatus

Y HK

NumberOfItems Y 1 Number of ancillary items requeted

RficSubcode Y 0CD Reason for Issuance Subcode – used to identify ancillary requested

OwningCarrierCode Y AM Carrier filing ancillary fees

EquivalentPrice N

Price N 10.0 Equivalent price

Currency N MXN Equivalent currency

OriginalBasePrice N

Price

N 25.0 Base Price of Ancillary item

Currency N USD Currency of base price

TTLPrice N

Price

N 25.0 Total Price of Ancillary item

Currency N USD Currency of total price

GroupCode Y BG GroupCode" is used to indicate type of ancillary service as per IATA standard (2 letter code defined in ARIMP manual

AgentName Y SMITH "ReceivedFrom" is required when "RequestType" value is set to "Stateless"

PriceQuoteIndicator N 1 Price Quote (PQ) ID

PriceMismatchAction N ACCEPT_ANY_PRICE Option for Client to provide for how to manage if price mismatch occurs: Options are: REJECT (default if not provided) ACCEPT_LOWER_PRICE ACCEPT_ANY_PRICE

Page 31: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved UpdateReservation Response 32

R e s p o n s e E l e m e n t s

See the UpdateReservationRQ document on Sabre Dev Studio (https://developer.sabre.com) for a complete

list of Response elements.

The most relevant elements are as follows:

5 UpdateReservation Response

Name DataType Required Default SampleValue Description

UpdateReservationRS Y

Version N xmlns="http://webservices.sabre.

com/pnrbuilder

Success Y/N OK “OK" indicates that request was successfully processed

Reservation NumberInSegment

BookingDetails

"BookingDetails" element is used as a container for PNR's primary metadata description.

RecordLocator N

AncillaryServices “AncillaryService" element is used as a container for information about particulary ancillary service.

AncillaryService id Y 8

CommercialName Y SECOND CHECKED BAG

RficCode Y C

RficSubcode Y 0CD

OwningCarrierCode Y AA

BookingIndicator ? "BookingIndicator" indicates booking method requirement e.g. carrier must be contacted. If blank then there is no specific booking requirement

Vendor Y

EMDType N

PurchaseTimestamp Y

Page 32: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved UpdateReservation Response 33

TTLPrice Y “TTLPrice" indicates one unit price of the ancillary service after taxation.

Price 25.0 Currency USD

OriginalBasePrice Y "OrginalBasePrice" indicates one unit price of the ancillary service before taxation.

Price 25.0

Currency USD

RefundIndicator N Y

CommisionIndicator N Y

InterlineIndicator N Y

FeeApplicationIndicator N 3 "FeeApplicationIndicator" indicates if the fee is based on a flight segment, multiple flight segments or entire ticket.

PassengerTypeCode N ADT “PassengerTypeCode" is used to identify the type of passenger to whom the record applies like "ADT"(Adult) or “CNN” (Child) If none supplied – will default to ADT.

TaxesIncluded N true

TotalOriginalBasePrice Y

TotalTTLPrice Y "TotalTTLPrice" indicates "TTLPrice" multiplied by "NumberOfItems".

Price 25.0

Currency USD

TotalTaxes N

NumberOfItems 1

ActionCode N HD

SegmentIndicator Y P "SegmentIndicator" indicates if ancillary service is associated with particular segment or more than one segment.

RefundFormIndicator N "RefundFormIndicator" indicates how the fee may be refunded in case refund is required.

BookingSource N 0 "BookingSource" indicates source of ancillary service request e.g. 01=TTY GDS,02=TTY OA,03=SSW,04=Kiosk,05/06=Interact, 07=Arline Direct Channel, 08=PRS.

TicketingIndicator N

GroupCode Y BG “GroupCode" is used to indicate type of ancillary service as per IATA standard (2 letter code

Page 33: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved UpdateReservation Response 34

defined in ARIMP manual

TicketUsedForEMDPricing N

TravelPortions N "TravelPortions" element is used as a container for segments assiociated with particular ancillary service.

N

TravelPortion sequence N

AirlineCode N

FlightNumber N

ClassOfService N

DepartureDate N

BoardPoint N

OffPoint N

Page 34: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Request 35

R e q u e s t E l e m e n t s

See the AncillaryPriceRQ User Guide on Sabre Dev Studio (SDS) for a complete list of elements.

NOTE: The Ancillary Pricing Service’s webservices are accessible by the means of USG.

There are three types of requests:

• Payload

• Stateful

• Stateless

“Payload” type request contains Itinerary criteria with segments information. “Stateful” type request

doesn’t contain Itinerary criteria but segments information is taken from current user session (retrieved

from Trip). In case of stateless type request contains record locator and based on this segments

information is retrieved from Trip.

All types of requests can contain ancillary service criteria (group code, rfic sub code, currency) however

it’s optional. If no group codes and sub codes provided in the request then all possible ancillary services

for given segments will be retrieved in response.

S a m p l e A n c i l l a r y P r i c e R Q R e q u e s t

<GetPriceListRQ xmlns="http://webservices.sabre.com/pnrbuilder">

<RequestType>Payload</RequestType>

<ItineraryCriteria ItineraryID="1">

<SegmentCriteria SegmentID="1">

<DepartureAirportCode>KRK</DepartureAirportCode>

<ArrivalAirportCode>CDG</ArrivalAirportCode>

<DepartureDate>2013-08-20</DepartureDate>

<DepartureTime>15:00:00</DepartureTime>

<ArrivalDate>2013-08-20</ArrivalDate>

<ArrivalTime>17:15:00</ArrivalTime>

<MarketingCarrierCode>XX</MarketingCarrierCode>

<ClassOfService>Y</ClassOfService>

<FlightNumber>XXXX</FlightNumber>

<EquipmentType>319</EquipmentType>

</SegmentCriteria>

<SegmentCriteria SegmentID="2">

<DepartureAirportCode>ORY</DepartureAirportCode>

<ArrivalAirportCode>FCO</ArrivalAirportCode>

<DepartureDate>2013-08-22</DepartureDate>

<DepartureTime>12:35:00</DepartureTime>

<ArrivalDate>2013-08-22</ArrivalDate>

<ArrivalTime>14:30:00</ArrivalTime>

<MarketingCarrierCode>XX</MarketingCarrierCode>

<ClassOfService>Y</ClassOfService>

6 AncillaryPrice Request

Page 35: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Request 36

<FlightNumber>XXXX</FlightNumber>

<EquipmentType>320</EquipmentType>

</SegmentCriteria>

</ItineraryCriteria>

<ItineraryCriteria ItineraryID="2">

<PassengerTypeCriteria>

<Code>ADT</Code>

<Quantity>1</Quantity>

</PassengerTypeCriteria>

<SegmentCriteria SegmentID="1">

<DepartureAirportCode>KRK</DepartureAirportCode>

<ArrivalAirportCode>CDG</ArrivalAirportCode>

<DepartureDate>2013-08-20</DepartureDate>

<DepartureTime>15:00:00</DepartureTime>

<ArrivalDate>2013-08-20</ArrivalDate>

<ArrivalTime>17:15:00</ArrivalTime>

<MarketingCarrierCode>XX</MarketingCarrierCode>

<FlightNumber>XXXX</FlightNumber>

</SegmentCriteria>

<SegmentCriteria SegmentID="2">

<DepartureAirportCode>ORY</DepartureAirportCode>

<ArrivalAirportCode>FCO</ArrivalAirportCode>

<DepartureDate>2013-08-22</DepartureDate>

<DepartureTime>12:35:00</DepartureTime>

<ArrivalDate>2013-08-22</ArrivalDate>

<ArrivalTime>14:30:00</ArrivalTime>

<MarketingCarrierCode>XX</MarketingCarrierCode>

<FlightNumber>XXXX</FlightNumber>

</SegmentCriteria>

</ItineraryCriteria>

<AncillaryServiceCriteria>

<CurrencyCode>GBP</CurrencyCode>

</AncillaryServiceCriteria>

</GetPriceListRQ>

Page 36: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Response 37

R e s p o n s e E l e m e n t s

See the AncillaryPrice User Guide on the Sabre Dev Studio (SDS) for a complete list of elements.

S a m p l e A n c i l l a r y P r i c e R S

<ns3:GetPriceListRS xmlns:ns3="http://webservices.sabre.com/pnrbuilder"

xmlns:ns2="http://services.sabre.com/STL/v01"

xmlns:ns3_="http://www.atse.sabre.com/AncillaryPricing/Request"

xmlns:ns4="http://www.atse.sabre.com/AncillaryPricing/Response">

<ns3:AncillaryPriceList>

<ns3:Itinerary ItineraryID="1">

<ns3:AncillaryGroup GroupCode="BG">

<ns3:AncillaryService>

<ns3:CommercialName>STANDARD BAGGAGE</ns3:CommercialName>

<ns3:RficCode>C</ns3:RficCode>

<ns3:RficSubcode>0AA</ns3:RficSubcode>

<ns3:SSRCode>BGAD</ns3:SSRCode>

<ns3:OwningCarrierCode>XX</ns3:OwningCarrierCode>

<ns3:Vendor>XX</ns3:Vendor>

<ns3:EMDType>4</ns3:EMDType>

<ns3:ServiceFeeLineNumber>1</ns3:ServiceFeeLineNumber>

<ns3:DisplayOnlyIndicator>false</ns3:DisplayOnlyIndicator>

<ns3:optionalAncillaryServiceInformation>

<ns3:SegmentNumber>1</ns3:SegmentNumber>

<ns3:EquivalentPrice>

<ns3:Price>15.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:EquivalentPrice>

<ns3:TTLPrice>

<ns3:Price>15.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TTLPrice>

<ns3:PortionOfTravelIndicator>S</ns3:PortionOfTravelIndicator>

<ns3:OriginalBasePrice>

<ns3:Price>15.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:OriginalBasePrice>

<ns3:RefundIndicator>N</ns3:RefundIndicator>

<ns3:CommisionIndicator>N</ns3:CommisionIndicator>

<ns3:InterlineIndicator>N</ns3:InterlineIndicator>

<ns3:PassengerTypeCode>ADT</ns3:PassengerTypeCode>

<ns3:BoardPoint>KRK</ns3:BoardPoint>

<ns3:OffPoint>CDG</ns3:OffPoint>

<ns3:TravelDateEffective>2013-08-20</ns3:TravelDateEffective>

<ns3:LatestTravelDatePermitted>9999-12-31</ns3:LatestTravelDatePermitted>

<ns3:PurchaseByDate>2013-07-18T23:59:59</ns3:PurchaseByDate>

<ns3:TotalOriginalBasePrice>

<ns3:Price>15.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TotalOriginalBasePrice>

7 AncillaryPrice Response

Page 37: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Response 38

</ns3:optionalAncillaryServiceInformation>

</ns3:AncillaryService>

<ns3:AncillaryService>

<ns3:CommercialName>STANDARD BAGGAGE</ns3:CommercialName>

<ns3:RficCode>C</ns3:RficCode>

<ns3:RficSubcode>0AA</ns3:RficSubcode>

<ns3:SSRCode>BGAD</ns3:SSRCode>

<ns3:OwningCarrierCode>XX</ns3:OwningCarrierCode>

<ns3:Vendor>XX</ns3:Vendor>

<ns3:EMDType>4</ns3:EMDType>

<ns3:ServiceFeeLineNumber>2</ns3:ServiceFeeLineNumber>

<ns3:DisplayOnlyIndicator>false</ns3:DisplayOnlyIndicator>

<ns3:optionalAncillaryServiceInformation>

<ns3:SegmentNumber>2</ns3:SegmentNumber>

<ns3:EquivalentPrice>

<ns3:Price>14.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:EquivalentPrice>

<ns3:TTLPrice>

<ns3:Price>14.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TTLPrice>

<ns3:PortionOfTravelIndicator>S</ns3:PortionOfTravelIndicator>

<ns3:OriginalBasePrice>

<ns3:Price>14.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:OriginalBasePrice>

<ns3:RefundIndicator>N</ns3:RefundIndicator>

<ns3:CommisionIndicator>N</ns3:CommisionIndicator>

<ns3:InterlineIndicator>N</ns3:InterlineIndicator>

<ns3:PassengerTypeCode>ADT</ns3:PassengerTypeCode>

<ns3:BoardPoint>ORY</ns3:BoardPoint>

<ns3:OffPoint>FCO</ns3:OffPoint>

<ns3:TravelDateEffective>2013-08-22</ns3:TravelDateEffective>

<ns3:LatestTravelDatePermitted>9999-12-31</ns3:LatestTravelDatePermitted>

<ns3:PurchaseByDate>2013-07-18T23:59:59</ns3:PurchaseByDate>

<ns3:TotalOriginalBasePrice>

<ns3:Price>14.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TotalOriginalBasePrice>

</ns3:optionalAncillaryServiceInformation>

</ns3:AncillaryService>

<ns3:StatusIndicator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">N</ns3:StatusIndicator>

</ns3:AncillaryGroup>

<ns3:AncillaryGroup GroupCode="SA">

<ns3:AncillaryService>

<ns3:CommercialName>EXTRA LEGROOM SEAT</ns3:CommercialName>

<ns3:RficCode>A</ns3:RficCode>

<ns3:RficSubcode>0B5</ns3:RficSubcode>

<ns3:SSRCode>SEAT</ns3:SSRCode>

<ns3:OwningCarrierCode>XX</ns3:OwningCarrierCode>

<ns3:Vendor>XX</ns3:Vendor>

<ns3:EMDType>4</ns3:EMDType>

<ns3:DisplayOnlyIndicator>true</ns3:DisplayOnlyIndicator>

<ns3:optionalAncillaryServiceInformation>

<ns3:SegmentNumber>1</ns3:SegmentNumber>

<ns3:EquivalentPrice>

<ns3:Price>12.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:EquivalentPrice>

<ns3:TTLPrice>

<ns3:Price>12.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TTLPrice>

<ns3:PortionOfTravelIndicator>S</ns3:PortionOfTravelIndicator>

<ns3:OriginalBasePrice>

<ns3:Price>12.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:OriginalBasePrice>

Page 38: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Response 39

<ns3:RefundIndicator>N</ns3:RefundIndicator>

<ns3:CommisionIndicator>N</ns3:CommisionIndicator>

<ns3:InterlineIndicator>N</ns3:InterlineIndicator>

<ns3:PassengerTypeCode>ADT</ns3:PassengerTypeCode>

<ns3:BoardPoint>KRK</ns3:BoardPoint>

<ns3:OffPoint>CDG</ns3:OffPoint>

<ns3:TravelDateEffective>2013-08-20</ns3:TravelDateEffective>

<ns3:LatestTravelDatePermitted>9999-12-31</ns3:LatestTravelDatePermitted>

<ns3:PurchaseByDate>2013-07-18T23:59:59</ns3:PurchaseByDate>

<ns3:TotalOriginalBasePrice>

<ns3:Price>12.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TotalOriginalBasePrice>

</ns3:optionalAncillaryServiceInformation>

</ns3:AncillaryService>

<ns3:AncillaryService>

<ns3:CommercialName>UP FRONT SEAT</ns3:CommercialName>

<ns3:RficCode>A</ns3:RficCode>

<ns3:RficSubcode>0B5</ns3:RficSubcode>

<ns3:SSRCode>SEAT</ns3:SSRCode>

<ns3:OwningCarrierCode>XX</ns3:OwningCarrierCode>

<ns3:Vendor>XX</ns3:Vendor>

<ns3:EMDType>4</ns3:EMDType>

<ns3:DisplayOnlyIndicator>true</ns3:DisplayOnlyIndicator>

<ns3:optionalAncillaryServiceInformation>

<ns3:SegmentNumber>1</ns3:SegmentNumber>

<ns3:EquivalentPrice>

<ns3:Price>8.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:EquivalentPrice>

<ns3:TTLPrice>

<ns3:Price>8.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TTLPrice>

<ns3:PortionOfTravelIndicator>S</ns3:PortionOfTravelIndicator>

<ns3:OriginalBasePrice>

<ns3:Price>8.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:OriginalBasePrice>

<ns3:RefundIndicator>N</ns3:RefundIndicator>

<ns3:CommisionIndicator>N</ns3:CommisionIndicator>

<ns3:InterlineIndicator>N</ns3:InterlineIndicator>

<ns3:PassengerTypeCode>ADT</ns3:PassengerTypeCode>

<ns3:BoardPoint>KRK</ns3:BoardPoint>

<ns3:OffPoint>CDG</ns3:OffPoint>

<ns3:TravelDateEffective>2013-08-20</ns3:TravelDateEffective>

<ns3:LatestTravelDatePermitted>9999-12-31</ns3:LatestTravelDatePermitted>

<ns3:PurchaseByDate>2013-07-18T23:59:59</ns3:PurchaseByDate>

<ns3:TotalOriginalBasePrice>

<ns3:Price>8.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TotalOriginalBasePrice>

</ns3:optionalAncillaryServiceInformation>

</ns3:AncillaryService>

<ns3:AncillaryService>

<ns3:CommercialName>STANDARD SEAT</ns3:CommercialName>

<ns3:RficCode>A</ns3:RficCode>

<ns3:RficSubcode>0B5</ns3:RficSubcode>

<ns3:SSRCode>SEAT</ns3:SSRCode>

<ns3:OwningCarrierCode>XX</ns3:OwningCarrierCode>

<ns3:Vendor>XX</ns3:Vendor>

<ns3:EMDType>4</ns3:EMDType>

<ns3:DisplayOnlyIndicator>true</ns3:DisplayOnlyIndicator>

<ns3:optionalAncillaryServiceInformation>

<ns3:SegmentNumber>1</ns3:SegmentNumber>

<ns3:EquivalentPrice>

<ns3:Price>3.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:EquivalentPrice>

<ns3:TTLPrice>

Page 39: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Response 40

<ns3:Price>3.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TTLPrice>

<ns3:PortionOfTravelIndicator>S</ns3:PortionOfTravelIndicator>

<ns3:OriginalBasePrice>

<ns3:Price>3.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:OriginalBasePrice>

<ns3:RefundIndicator>N</ns3:RefundIndicator>

<ns3:CommisionIndicator>N</ns3:CommisionIndicator>

<ns3:InterlineIndicator>N</ns3:InterlineIndicator>

<ns3:PassengerTypeCode>ADT</ns3:PassengerTypeCode>

<ns3:BoardPoint>KRK</ns3:BoardPoint>

<ns3:OffPoint>CDG</ns3:OffPoint>

<ns3:TravelDateEffective>2013-08-20</ns3:TravelDateEffective>

<ns3:LatestTravelDatePermitted>9999-12-31</ns3:LatestTravelDatePermitted>

<ns3:PurchaseByDate>2013-07-18T23:59:59</ns3:PurchaseByDate>

<ns3:TotalOriginalBasePrice>

<ns3:Price>3.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TotalOriginalBasePrice>

</ns3:optionalAncillaryServiceInformation>

</ns3:AncillaryService>

<ns3:AncillaryService>

<ns3:CommercialName>EXTRA LEGROOM SEAT</ns3:CommercialName>

<ns3:RficCode>A</ns3:RficCode>

<ns3:RficSubcode>0B5</ns3:RficSubcode>

<ns3:SSRCode>SEAT</ns3:SSRCode>

<ns3:OwningCarrierCode>XX</ns3:OwningCarrierCode>

<ns3:Vendor>XX</ns3:Vendor>

<ns3:EMDType>4</ns3:EMDType>

<ns3:DisplayOnlyIndicator>true</ns3:DisplayOnlyIndicator>

<ns3:optionalAncillaryServiceInformation>

<ns3:SegmentNumber>2</ns3:SegmentNumber>

<ns3:EquivalentPrice>

<ns3:Price>12.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:EquivalentPrice>

<ns3:TTLPrice>

<ns3:Price>12.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TTLPrice>

<ns3:PortionOfTravelIndicator>S</ns3:PortionOfTravelIndicator>

<ns3:OriginalBasePrice>

<ns3:Price>12.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:OriginalBasePrice>

<ns3:RefundIndicator>N</ns3:RefundIndicator>

<ns3:CommisionIndicator>N</ns3:CommisionIndicator>

<ns3:InterlineIndicator>N</ns3:InterlineIndicator>

<ns3:PassengerTypeCode>ADT</ns3:PassengerTypeCode>

<ns3:BoardPoint>ORY</ns3:BoardPoint>

<ns3:OffPoint>FCO</ns3:OffPoint>

<ns3:TravelDateEffective>2013-08-22</ns3:TravelDateEffective>

<ns3:LatestTravelDatePermitted>9999-12-31</ns3:LatestTravelDatePermitted>

<ns3:PurchaseByDate>2013-07-18T23:59:59</ns3:PurchaseByDate>

<ns3:TotalOriginalBasePrice>

<ns3:Price>12.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TotalOriginalBasePrice>

</ns3:optionalAncillaryServiceInformation>

</ns3:AncillaryService>

<ns3:AncillaryService>

<ns3:CommercialName>UP FRONT SEAT</ns3:CommercialName>

<ns3:RficCode>A</ns3:RficCode>

<ns3:RficSubcode>0B5</ns3:RficSubcode>

<ns3:SSRCode>SEAT</ns3:SSRCode>

<ns3:OwningCarrierCode>XX</ns3:OwningCarrierCode>

<ns3:Vendor>XX</ns3:Vendor>

<ns3:EMDType>4</ns3:EMDType>

Page 40: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Response 41

<ns3:DisplayOnlyIndicator>true</ns3:DisplayOnlyIndicator>

<ns3:optionalAncillaryServiceInformation>

<ns3:SegmentNumber>2</ns3:SegmentNumber>

<ns3:EquivalentPrice>

<ns3:Price>8.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:EquivalentPrice>

<ns3:TTLPrice>

<ns3:Price>8.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TTLPrice>

<ns3:PortionOfTravelIndicator>S</ns3:PortionOfTravelIndicator>

<ns3:OriginalBasePrice>

<ns3:Price>8.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:OriginalBasePrice>

<ns3:RefundIndicator>N</ns3:RefundIndicator>

<ns3:CommisionIndicator>N</ns3:CommisionIndicator>

<ns3:InterlineIndicator>N</ns3:InterlineIndicator>

<ns3:PassengerTypeCode>ADT</ns3:PassengerTypeCode>

<ns3:BoardPoint>ORY</ns3:BoardPoint>

<ns3:OffPoint>FCO</ns3:OffPoint>

<ns3:TravelDateEffective>2013-08-22</ns3:TravelDateEffective>

<ns3:LatestTravelDatePermitted>9999-12-31</ns3:LatestTravelDatePermitted>

<ns3:PurchaseByDate>2013-07-18T23:59:59</ns3:PurchaseByDate>

<ns3:TotalOriginalBasePrice>

<ns3:Price>8.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TotalOriginalBasePrice>

</ns3:optionalAncillaryServiceInformation>

</ns3:AncillaryService>

<ns3:AncillaryService>

<ns3:CommercialName>STANDARD SEAT</ns3:CommercialName>

<ns3:RficCode>A</ns3:RficCode>

<ns3:RficSubcode>0B5</ns3:RficSubcode>

<ns3:SSRCode>SEAT</ns3:SSRCode>

<ns3:OwningCarrierCode>XX</ns3:OwningCarrierCode>

<ns3:Vendor>XX</ns3:Vendor>

<ns3:EMDType>4</ns3:EMDType>

<ns3:DisplayOnlyIndicator>true</ns3:DisplayOnlyIndicator>

<ns3:optionalAncillaryServiceInformation>

<ns3:SegmentNumber>2</ns3:SegmentNumber>

<ns3:EquivalentPrice>

<ns3:Price>3.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:EquivalentPrice>

<ns3:TTLPrice>

<ns3:Price>3.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TTLPrice>

<ns3:PortionOfTravelIndicator>S</ns3:PortionOfTravelIndicator>

<ns3:OriginalBasePrice>

<ns3:Price>3.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:OriginalBasePrice>

<ns3:RefundIndicator>N</ns3:RefundIndicator>

<ns3:CommisionIndicator>N</ns3:CommisionIndicator>

<ns3:InterlineIndicator>N</ns3:InterlineIndicator>

<ns3:PassengerTypeCode>ADT</ns3:PassengerTypeCode>

<ns3:BoardPoint>ORY</ns3:BoardPoint>

<ns3:OffPoint>FCO</ns3:OffPoint>

<ns3:TravelDateEffective>2013-08-22</ns3:TravelDateEffective>

<ns3:LatestTravelDatePermitted>9999-12-31</ns3:LatestTravelDatePermitted>

<ns3:PurchaseByDate>2013-07-18T23:59:59</ns3:PurchaseByDate>

<ns3:TotalOriginalBasePrice>

<ns3:Price>3.00</ns3:Price>

<ns3:Currency>GBP</ns3:Currency>

</ns3:TotalOriginalBasePrice>

</ns3:optionalAncillaryServiceInformation>

</ns3:AncillaryService>

Page 41: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Response 42

<ns3:StatusIndicator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">¤</ns3:StatusIndicator>

</ns3:AncillaryGroup>

<ns3:AncillaryGroup GroupCode="GT">

<ns3:StatusCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">NF</ns3:StatusCode>

</ns3:AncillaryGroup>

<ns3:AncillaryGroup GroupCode="IE">

<ns3:StatusCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">NF</ns3:StatusCode>

</ns3:AncillaryGroup>

<ns3:AncillaryGroup GroupCode="LG">

<ns3:StatusCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">NF</ns3:StatusCode>

</ns3:AncillaryGroup>

<ns3:AncillaryGroup GroupCode="MD">

<ns3:StatusCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">NF</ns3:StatusCode>

</ns3:AncillaryGroup>

<ns3:AncillaryGroup GroupCode="ML">

<ns3:StatusCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">NF</ns3:StatusCode>

</ns3:AncillaryGroup>

<ns3:AncillaryGroup GroupCode="PT">

<ns3:StatusCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">NF</ns3:StatusCode>

</ns3:AncillaryGroup>

<ns3:AncillaryGroup GroupCode="UN">

<ns3:StatusCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">NF</ns3:StatusCode>

</ns3:AncillaryGroup>

</ns3:Itinerary>

<ns3:PDCAprMessages>

<ns3:PDCAprMsg AncillaryGroupCode="BG">

<ns3:PDCMsg>

<ns3:MsgType>X</ns3:MsgType>

<ns3:MsgNumber>3</ns3:MsgNumber>

<ns3:Message>BG-BAGGAGE CXR SEG/CPA

FEE</ns3:Message>

</ns3:PDCMsg>

<ns3:PDCMsg>

<ns3:MsgType>X</ns3:MsgType>

<ns3:MsgNumber>3</ns3:MsgNumber>

<ns3:Message>1 ADT-STANDARD BAGGAGE XX 1-KRKCDG 15.00

N</ns3:Message>

</ns3:PDCMsg>

<ns3:PDCMsg>

<ns3:MsgType>X</ns3:MsgType>

<ns3:MsgNumber>3</ns3:MsgNumber>

<ns3:Message>2 ADT-STANDARD BAGGAGE XX 2-ORYFCO 14.00

N</ns3:Message>

</ns3:PDCMsg>

</ns3:PDCAprMsg>

<ns3:PDCAprMsg AncillaryGroupCode="SA">

<ns3:PDCMsg>

<ns3:MsgType>X</ns3:MsgType>

<ns3:MsgNumber>3</ns3:MsgNumber>

<ns3:Message>SA-SEAT ASSIGNMENT CXR SEG/CPA

FEE</ns3:Message>

</ns3:PDCMsg>

<ns3:PDCMsg>

<ns3:MsgType>X</ns3:MsgType>

<ns3:MsgNumber>3</ns3:MsgNumber>

<ns3:Message>-- ADT-EXTRA LEGROOM SEAT XX 1-KRKCDG 12.00

¤</ns3:Message>

</ns3:PDCMsg>

<ns3:PDCMsg>

<ns3:MsgType>X</ns3:MsgType>

<ns3:MsgNumber>3</ns3:MsgNumber>

Page 42: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Response 43

<ns3:Message>-- ADT-UP FRONT SEAT XX 1-KRKCDG 8.00

¤</ns3:Message>

</ns3:PDCMsg>

<ns3:PDCMsg>

<ns3:MsgType>X</ns3:MsgType>

<ns3:MsgNumber>3</ns3:MsgNumber>

<ns3:Message>-- ADT-STANDARD SEAT XX 1-KRKCDG 3.00

¤</ns3:Message>

</ns3:PDCMsg>

<ns3:PDCMsg>

<ns3:MsgType>X</ns3:MsgType>

<ns3:MsgNumber>3</ns3:MsgNumber>

<ns3:Message>-- ADT-EXTRA LEGROOM SEAT XX 2-ORYFCO 12.00

¤</ns3:Message>

</ns3:PDCMsg>

<ns3:PDCMsg>

<ns3:MsgType>X</ns3:MsgType>

<ns3:MsgNumber>3</ns3:MsgNumber>

<ns3:Message>-- ADT-UP FRONT SEAT XX 2-ORYFCO 8.00

¤</ns3:Message>

</ns3:PDCMsg>

<ns3:PDCMsg>

<ns3:MsgType>X</ns3:MsgType>

<ns3:MsgNumber>3</ns3:MsgNumber>

<ns3:Message>-- ADT-STANDARD SEAT XX 2-ORYFCO 3.00

¤</ns3:Message>

</ns3:PDCMsg>

</ns3:PDCAprMsg>

</ns3:PDCAprMessages>

</ns3:AncillaryPriceList>

</ns3:GetPriceListRS>

S a m p l e T r a v e l I t i n e r a r y R e a d ( w h e n A E ’ s e x i s t )

<TravelItineraryReadRQ Version="3.4.0" TimeStamp="2012-09-19T10:00:00-06:00"

xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dd="http://webservices.sabre.com/dd2">

<MessagingDetails>

<SubjectAreas>

<SubjectArea>FULL</SubjectArea>

</SubjectAreas>

</MessagingDetails>

<UniqueID ID="KTUFIV"/>

<EchoToken>INT</EchoToken>

</TravelItineraryReadRQ>

<TravelItineraryReadRS xmlns="http://webservices.sabre.com/sabreXML/2011/10"

xmlns:ns4="http://services.sabre.com/res/ortl/v0" xmlns:ns3="http://services.sabre.com/res/or/v1_0"

xmlns:ns5="http://services.sabre.com/res/ores/v0"

xmlns:ns6="http://services.sabre.com/STL_Header/v120" xmlns:stl="http://services.sabre.com/STL/v01"

Version="3.4.0">

<stl:ApplicationResults status="Complete">

<stl:Success timeStamp="2014-08-20T17:12:45.004-05:00"/>

</stl:ApplicationResults>

<TravelItinerary>

<CustomerInfo>

<ContactNumbers>

<ContactNumber LocationCode="LAR" Phone="1800123456" RPH="001"/>

</ContactNumbers>

<PersonName WithInfant="false" NameNumber="01.01" RPH="1">

<Email>‡[email protected]‡</Email>

<GivenName>JUY</GivenName>

<Surname>EROR</Surname>

Page 43: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Response 44

</PersonName>

</CustomerInfo>

<ItineraryInfo>

<ReservationItems>

<Item RPH="1">

<FlightSegment AirMilesFlown="2090" ArrivalDateTime="09-18T13:00"

DayOfWeekInd="4" DepartureDateTime="2014-09-18T07:15" ElapsedTime="04.45" eTicket="true"

FlightNumber="0408" NumberInParty="01" ResBookDesigCode="B" SegmentNumber="0001"

SmokingAllowed="false" SpecialMeal="false" Status="HK" StopQuantity="00">

<DestinationLocation LocationCode="JFK" Terminal="TERMINAL 1"

TerminalCode="1"/>

<Equipment AirEquipType="788"/>

<MarketingAirline Code="AM" FlightNumber="0408"/>

<Meal Code="H"/>

<Meal Code="B"/>

<OperatingAirline/>

<OriginLocation LocationCode="MEX" Terminal="TERMINAL 2" TerminalCode="2"/>

<SupplierRef ID="DCAM*GZUFFH"/>

<UpdatedArrivalTime>09-18T13:00</UpdatedArrivalTime>

<UpdatedDepartureTime>09-18T07:15</UpdatedDepartureTime>

</FlightSegment>

</Item>

<Item RPH="2">

<Ancillaries>

<AncillaryService id="13" SequenceNumber="1" NameNumber="01.01"

NumberOfItems="1" ActionCode="HD" SegmentIndicator="S" BookingIndicator=" " RefundIndicator="Y"

CommisionIndicator="Y" InterlineIndicator="Y" FeeApplicationIndicator="3" RefundFormIndicator=" "

TicketingIndicator="0">

<CommercialName>SNACK</CommercialName>

<RficCode>G</RficCode>

<RficSubcode>0AT</RficSubcode>

<OwningCarrierCode>AM</OwningCarrierCode>

<Vendor>MMGR</Vendor>

<EMDType>2</EMDType>

<EquivalentPrice Price="23.20" Currency="USD"/>

<TTLPrice Price="24.10" Currency="USD"/>

<OriginalBasePrice Price="300" Currency="MXN"/>

<PassengerTypeCode>ADT</PassengerTypeCode>

<TaxesIncluded>true</TaxesIncluded>

<Taxes>

<Tax TaxAmount="0.90" TaxCode="XOA"/>

</Taxes>

<TotalOriginalBasePrice Price="300" Currency="MXN"/>

<TotalEquivalentPrice Price="23.20" Currency="USD"/>

<TotalTTLPrice Price="24.10" Currency="USD"/>

<TotalTaxes>

<Tax>

<TaxAmount>0.90</TaxAmount>

<TaxCode>XOA</TaxCode>

</Tax>

</TotalTaxes>

<BookingSource>0</BookingSource>

<GroupCode>ML</GroupCode>

<TicketUsedForEMDPricing>N</TicketUsedForEMDPricing>

<TaxExemption>N</TaxExemption>

<Segment>

<AirlineCode>AM</AirlineCode>

<FlightNumber>0408</FlightNumber>

<ClassOfService>B</ClassOfService>

<DepartureDate>2014-09-18</DepartureDate>

<BoardPoint>MEX</BoardPoint>

<OffPoint>JFK</OffPoint>

</Segment>

</AncillaryService>

</Ancillaries>

</Item>

<Item RPH="3">

<Ancillaries>

Page 44: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved AncillaryPrice Response 45

<AncillaryService id="15" SequenceNumber="2" NameNumber="01.01"

NumberOfItems="1" ActionCode="HD" SegmentIndicator="S" BookingIndicator=" " RefundIndicator="Y"

CommisionIndicator="Y" InterlineIndicator="Y" FeeApplicationIndicator="3" RefundFormIndicator=" "

TicketingIndicator="0">

<CommercialName>MEAL CHILDRENS CHICKEN</CommercialName>

<RficCode>G</RficCode>

<RficSubcode>0HF</RficSubcode>

<OwningCarrierCode>AM</OwningCarrierCode>

<Vendor>MMGR</Vendor>

<EMDType>2</EMDType>

<EquivalentPrice Price="0"/>

<TTLPrice Price="10.00" Currency="USD"/>

<OriginalBasePrice Price="10.00" Currency="USD"/>

<PassengerTypeCode>ADT</PassengerTypeCode>

<TotalOriginalBasePrice Price="10.00" Currency="USD"/>

<TotalEquivalentPrice Price="0"/>

<TotalTTLPrice Price="10.00" Currency="USD"/>

<BookingSource>0</BookingSource>

<GroupCode>ML</GroupCode>

<TicketUsedForEMDPricing>N</TicketUsedForEMDPricing>

<TaxExemption>N</TaxExemption>

<Segment>

<AirlineCode>AM</AirlineCode>

<FlightNumber>0408</FlightNumber>

<ClassOfService>B</ClassOfService>

<DepartureDate>2014-09-18</DepartureDate>

<BoardPoint>MEX</BoardPoint>

<OffPoint>JFK</OffPoint>

</Segment>

</AncillaryService>

</Ancillaries>

</Item>

</ReservationItems>

<Ticketing RPH="01" TicketTimeLimit="TAW/*"/>

</ItineraryInfo>

<ItineraryRef AirExtras="true" CustomerIdentifier="1234567890" ID="KTUFIV" InhibitCode="U"

PartitionID="AA" PrimeHostID="1S">

<Source AAA_PseudoCityCode="WD40" CreateDateTime="2014-08-20T17:12" CreationAgent="LK2"

HomePseudoCityCode="HDQ" PseudoCityCode="WD40" ReceivedFrom="QA TESTING" LastUpdateDateTime="2014-

08-20T17:12" SequenceNumber="2"/>

</ItineraryRef>

<RemarkInfo>

<Remark RPH="001" Type="Client Address"/>

<Remark RPH="002" Type="Itinerary"/>

</RemarkInfo>

<SpecialServiceInfo RPH="001" Type="GFX">

<Service SSR_Code="SSR" SSR_Type="DOCS">

<Airline Code="AM"/>

<PersonName NameNumber="01.01">EROR/JUY</PersonName>

<Text>HK1/P/AM/787568/AM/17MAY76/M/29DEC18/LAST/FIRST/MR</Text>

</Service>

</SpecialServiceInfo>

</TravelItinerary>

</TravelItineraryReadRS>

Page 45: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved OTA_AirPriceLLSRQ 46

Sabre recommended API is AncillaryPriceRQ (GetPriceListRQ) to obtain available ancillaries and fees.

OTA_AirPriceLLSRQ may be used, however future enhancements will not be supported (example Ancillary

Inventory which will include Sold Out Indicator in AncillaryPriceRQ). In addition, element names will need to be

mapped from response to UpdateReservationRQ elements.

Below are some of the element names for reference.

Element

description

UpdateReservationRQ GetPriceListRS OTA_AirPriceLLSRS AirAALAirPrice

Element ID

Name Number (to

tie fees - such as

meals by type,

pillows, DVD, etc.)

NameAssociationTag TravelerRefNr NameNumber 03JE

Segment(s) to

which ancillary is

applicable

SegmentAssociationTag SegmentNumber SegmentNumber 03K1

Number of items NumberofItems Quantity

RFI subcode RficSubcode RficSubcode ReasonForIssuance /

Code

03JG

Owning Carrier

Code (fee owner)

OwningCarrierCode OwningCarrierCode Owner 03JD

Group code GroupCode GroupCode PassengerTypeQuantit

y / Group

03JF

OriginalBasePrice

(Price - optional)

OriginalBasePrice / Price OriginalBasePrice.Price Base /Amount 03J1

OriginalBasePrice

(Currency -

optional)

OriginalBasePrice /Currency OriginalBasePrice.Currency Base /CurrencyCode 03J2

Tax Amount

(Optional)

TaxAmount TaxAmount Tax / Amount 03J6

Tax Code (Optional) TaxCode TaxCode Tax / TaxCode 03J7

EquivalentPrice EquivalentPrice / Price EquivalentPrice.Price Equiv / Amount 03J3

8 OTA_AirPriceLLSRQ

Page 46: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved OTA_AirPriceLLSRQ 47

(Price - optional)

EquivalentPrice

(Currency -

optional)

EquivalentBasePrice /

Currency

EquivalentPrice.Currency Equive /

CurrencyCode

03J4

TTLPrice (Price) TTLPrice.Price TTLPrice.Price Total Amount 03J8

TTLPrice (Currency) TTLPrice.Currency TTLPrice.Currency n/a

Passenger Type

Code

PassengerTypeCode PassengerTypeCode PassengerTypeQuantit

y / Code

03JB

Commercial Name CommercialName CommercialName CommericalName 03J9

RFIC - Reason for

Issuance

RficCode RficCode ReasonForIssuance 03JI

Reply/action code ActionCode

Segment/Journey/C

oupon indicator

SegmentIndicator PortionOfTravelIndicator SegmentJourneyCoup

onInd

03JM

EMD Type EMDType EMDType EMD_Type 03JK

Psgr Type Code PassengerTypeCode PassengerTypeCode PassengerTypeQuantit

y / Code

03JB

Vendor Vendor Vendor VendorPrefs / Airline

Code

03JH

Purchase by field

(PARS date and

system time)

PurchaseTimestamp PurchaseByDate PurchaseBy 03JW

Not Available No

Charge indicator

NoChargeNotAvailIndicator NoChargeNotAvailIndicator NoChargeInd 03JA

Taxes included

indicator

TaxesIncluded TaxesIncluded Taxes / Ind 03J5

SSR SSRCode SSRCode SSR / Code 03JJ

RefundIndicator,

CommisionIndicator,

InterlineIndicator

RefundIndicator,

CommisionIndicator,

InterlineIndicator

IATA_Application 03JL

Fee Application

Indicator

FeeApplicationIndicator FeeApplicationIndicator FeeApplication 03JO

Form Of refund RefundFormIndicator FormOfRefund RefundForm 03JP

Fee Guarantee Ind FareGuaranteedIndicator FeeNotGuaranteedIndicator GuaranteeInd 03JQ

Ticket Number TicketCouponNumberAssociati

on.TicketCouponNumber

TicketPassengerData.TicketN

umber

Ticket / Number 03JR

Simulataneous

Ticket Ind

SimultaneousTicketIndicator SimultaneousTicketIndicator Ticket / Simultaneous 03JS

Page 47: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved OTA_AirPriceLLSRQ 48

SSIM Code SsimCode SsimCode SSIM / Code 03JT

TRAVEL DATE -

EFFECTIVE

FirstTravelDate TravelDateEffective EffectiveDate 03JU

TRAVEL DATE -

DISCONTINUE

LastTravelDate LatestTravelDatePermitted DiscontinueDate 03JV

FQTV Tier level FQTVTierLevel FQTVTierLevel FQTV_Tier 03JX

Tour Code TourCode TourCode TourCode 03JY

Page 48: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved UpdateReservation Defined Errors for AE Sell/Cancel 49

See the UpdateReservation document on Sabre Dev Studio for a complete list of error codes. Below are the

new errors being introduced for AE Sell/Cancel functionality.

Error Code Message

500680 ANCS Messaging Error

500681 Ancillary re-price was not successful,

500682 Ancillary price from pricing is different than ancillary price from Air Extras

field in PNR

500683 Ancillary price from pricing is not available

500684 ANCS Unknown error

500685 ANCS AthXml or AthId is required

500686 ANCS Security data are required

500687 Check Currency

500688 Seat Sell is not allowed

500689 Please include UpdateID for each ancillary in your UpdateReservation

request to get more detailed information about errors that may be returned in

the response

S a m p l e E r r o r R e s p o n s e

Error when price difference (includes new price):

NOTE – when no indicator included – or REJECT – and price mismatch – No ancillaries will be added.

<ns4:UpdateReservationRS xmlns:ns4="http://webservices.sabre.com/pnrbuilder"

xmlns:ns2="http://services.sabre.com/res/ortl/v0" xmlns="http://services.sabre.com/res/or/v1_0"

xmlns:ns3="http://services.sabre.com/res/ores/v0" xmlns:ns5="http://services.sabre.com/STL/v01">

<ns4:Errors>

<ns4:Error UpdateId="ID_2">

<ns4:Code>500682</ns4:Code>

<ns4:Message>Ancillary price from pricing is different than ancillary price from Air

Extras field in PNR</ns4:Message>

</ns4:Error>

</ns4:Errors>

<ns4:Results>

<ns4:UpdateResult UpdateId="ID_1">

<ns4:Item>

<ns4:AncillaryServicePricing>

<ns4:OriginalBasePrice>

<ns4:Price>10.00</ns4:Price>

<ns4:Currency>USD</ns4:Currency>

</ns4:OriginalBasePrice>

<ns4:TTLPrice>

9 UpdateReservation Defined Errors for

AE Sell/Cancel

Page 49: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved UpdateReservation Defined Errors for AE Sell/Cancel 50

<ns4:Price>10.00</ns4:Price>

<ns4:Currency>USD</ns4:Currency>

</ns4:TTLPrice>

</ns4:AncillaryServicePricing>

</ns4:Item>

</ns4:UpdateResult>

<ns4:UpdateResult UpdateId="ID_2">

<ns4:Item>

<ns4:AncillaryServicePricing>

<ns4:OriginalBasePrice>

<ns4:Price>25.00</ns4:Price>

<ns4:Currency>USD</ns4:Currency>

</ns4:OriginalBasePrice>

<ns4:TTLPrice>

<ns4:Price>25.00</ns4:Price>

<ns4:Currency>USD</ns4:Currency>

</ns4:TTLPrice>

</ns4:AncillaryServicePricing>

</ns4:Item>

</ns4:UpdateResult>

</ns4:Results>

</ns4:UpdateReservationRS>

Warning message when UpdateID not included and error returned:

<UpdateReservationRS xmlns="http://webservices.sabre.com/pnrbuilder/v1_12"

xmlns:ns2="http://services.sabre.com/res/or/v1_3">

<Success>FALSE</Success>

<Warnings>

<Warning>

<Code>500689</Code>

<Message>Please include UpdateID for each ancillary in your UpdateReservation request to get more

detailed information about errors that may be returned in the response</Message>

</Warning>

</Warnings>

<Errors>

<Error>

<Code>1000</Code>

<Message>Item number 2 returned error:

Ancillary price from pricing is different than ancillary price from Air Extras field in

PNR</Message>

<Severity/>

</Error>

</Errors>

<Results>

<UpdateResult>

<Item>

<AncillaryServicePricing>

<OriginalBasePrice>

<Price>900.00</Price>

<Currency>USD</Currency>

</OriginalBasePrice>

<TTLPrice>

<Price>900.00</Price>

<Currency>USD</Currency>

</TTLPrice>

</AncillaryServicePricing>

</Item>

</UpdateResult>

</Results>

</UpdateReservationRS>

Page 50: Using Sabre APIs to Sell/Cancel Air Extras User Guide

Sabre Inc. Confidential/All Rights Reserved Glossary 51

Term Explanation

AAA Agent Assembly Area – refers to the buffer in the Sabre system where

content is retained while a Sabre Host session is active.

ANCS Ancillary Services

Locator PNR locator

AE Air Extra – Sabre field for storing Ancillary items.(also knowns as OC or

Optional Services)

SDS – Sabre Dev Studio – Sabre Developer portal, and repository for Sabre API

resources

Lrec PNR Logical Record

OTA Online Travel Agency

PNR Passenger Name Record

Profile Contains data describing particular traveler

PSS Passenger Service System also known as Sabre Host

Segment Itinerary field of a Passenger Name Record holding actual booking (Air, Car,

Hotel etc.)

SNTE Sabre Native Terminal Emulator

SSR Special Service Request is used when action or response from carrier is

required

STL SABRE XML format

Sabre APIs Sabre’s SOAP APIs

10 Glossary