Auto Exchange and Refund

 

Please note that this service is restricted to SabreSonicRes-based airline customers.

API Information

Target Audience
Sabre Airline Solutions
Current Version
1.5.3
Authentication
Session Token
Service Action Code
AERRQ

The Automated Exchanges and Refunds ( AER) web service prices exchanges and refunds, prices itineraries based on varying degrees of manual pricing criteria, retains the pricing result and/or fulfills the exchange or refund. Additional related functions include irregular operations such as involuntary reroute, schedule change and no coupon situations. For a Sabre hosted carrier, these functions are based in whole or in part on the information stored in the Virtual Coupon Record ( VCR) electronic ticketing database, the manually provided ticket information (if no electronic record is available), the itinerary in the Agent Assembly Area ( AAA), the fares filed in the Sabre GDS, the historical fare information and related CAT31 rules as filed with Sabre, the tables configured in the Sabre GDS such as the options table and the form number table and any override parameters that are part of the XML request. AER relies on the binary security token obtained on a prior call to SessionCreateRQ.

The AER web service uses the AER package in TPF to complete AER transactions. Generally, a transaction is priced and retained and if the price satisfies the customer, the transaction is then fulfilled. Depending on whether an exchange is requested or a refund is requested and whether the result requires additional money to be collected or a refund to be issued, different documents are generated (eg electronic ticket, refund receipt, voucher, etc.). When issuing a ticket, AER updates the AAA with the TE line for electronic tickets. When retaining a price, AER updates the AAA with the price quote record. Exchange pricing and fulfillment requires the AAA to contain the new itinerary. This may be accomplished outside of the AER web service. Refunds and exchanges require a document to exchange. Electronic documents may be referred to by document number. Manual documents require data entered in the XML request. Manual pricing requests require a AAA with new itinerary data.

The response to pricing requests include the ticketing data (if exchanging or refunding) as well as the pricing result data including the comparison data. Messages that would have come from TPF AER are also included in the response. Fulfillment request responses include the new document number as well as the pricing data. Data in the XML is limited to what's provided in the TPF data transmission record. The XML contains most of the TPF data transmission record fields.

For Ticketing to provide support to a carrier when using Ticketing web services such as MISCServicesRQ and AERRQ, the carrier needs to provide access credentials almost identical to what the carrier will use to access the web service. The ID should be robotic, contain a non-expiring password, be able to issue tickets and be present in RES (production), CERT (certification) and TSTS (integration). Recommended, but not required: ID should be created inactive in RES; ID should be given duty code Cross of Lorraine.

The ID will be used in the automated regression test suite and will be used when researching questions and problems. Once Ticketing receives the ID, Ticketing will request allocation of a TAM pool and the associated ICE security attributes for accessing the web service.

Sample Request

<AER_RQ version="1.5.3" xmlns="http://services.sabre.com/ticketing/aer/1.0">
    <AERDetails>
        <Transaction Action="Refund">
            <SubAction Retain="true" />
        </Transaction>
        <ExchDoc allowEMDRefund="true">
            <Number PlatingCarrier="001">8205187643</Number>
            <Type Database="true" EmdType="A" Flight="false" />
            <CouponNumbers Booklet="1" Coupons="1" />
            <CouponNumbers Booklet="1" Coupons="2" />
            <Coupons Booklet="1" Flown="U" Transaction="R" />
            <Coupons Booklet="2" Flown="U" Transaction="R" />
        </ExchDoc>
        <NewDoc>
            <Fare>
                <Fees Raw="N/A" Usage="N" />
            </Fare>
        </NewDoc>
    </AERDetails>
</AER_RQ>

Sample Response

<AER_RS timeStamp="2017-10-02T10:22:40" transactionIdentifier="KTHLI701-1506957760629-23164-aer" version="1.5.3" xmlns="http://services.sabre.com/ticketing/aer/1.0">
    <AERDetails>
        <Transaction Action="Refund" PNR="MTETMM">
            <Host Country="1" Currency="USD" DecimalPlaces="2" />
            <AAA Currency="EUR" DecimalPlaces="2" />
            <Agent LNIATA="000000" Type="Ticket" />
            <SubAction Retain="true" />
        </Transaction>
        <ExchDoc CRS="AA">
            <Number CheckDigit="6" PlatingCarrier="001">8205187643</Number>
            <Type Database="true" EmdType="A" Flight="false" Form="EMD" NonFlight="E" SubType="N" />
            <CouponNumbers Booklet="1" Coupons="12" />
            <Point>
                <Issue Date="2017-10-02">
                    <Location>
                        <LocationCode>HDQ</LocationCode>
                        <CountryCode>US</CountryCode>
                    </Location>
                </Issue>
                <Sale>
                    <LocationCode>HDQ</LocationCode>
                </Sale>
                <Ticket>
                    <LocationCode>HDQ</LocationCode>
                </Ticket>
            </Point>
            <Passenger PassengerTypeCode="ADT">
                <PersonName>
                    <GivenName>FOURTEEN</GivenName>
                    <Surname>AERTEST</Surname>
                </PersonName>
            </Passenger>
            <Misc Commissionable="true" Refundable="N">
                <Rfic Code="C">BAGGAGE</Rfic>
            </Misc>
            <Coupons Booklet="1" Flown="U" Transaction="R">
                <EmdInfo GrpCd="BG">
                    <Rfisc Code="0GO" Quantity="01">UPTO50LB 23KG AND</Rfisc>
                    <InConWith CpnNbr="1" DocNbr="0012141072749" />
                </EmdInfo>
                <FlightSegment status="1">
                    <MarketingAirline>AA</MarketingAirline>
                    <OperatingAirline>AA</OperatingAirline>
                    <Departure>
                        <Airport>DFW</Airport>
                        <DateTime>2017-10-03T00:00:00</DateTime>
                    </Departure>
                    <Arrival>
                        <Airport>PHL</Airport>
                    </Arrival>
                </FlightSegment>
                <FareInfo FareComponent="0">
                    <Base Amount="0" DecimalPlaces="0" />
                </FareInfo>
            </Coupons>
            <Coupons Booklet="2" Flown="U" Transaction="R">
                <EmdInfo GrpCd="BG">
                    <Rfisc Code="0GO" Quantity="01">UPTO50LB 23KG AND</Rfisc>
                    <InConWith CpnNbr="2" DocNbr="0012141072749" />
                </EmdInfo>
                <FlightSegment status="1">
                    <MarketingAirline>AA</MarketingAirline>
                    <OperatingAirline>AA</OperatingAirline>
                    <Departure>
                        <Airport>PHL</Airport>
                        <DateTime>2017-10-03T00:00:00</DateTime>
                    </Departure>
                    <Arrival>
                        <Airport>AMS</Airport>
                    </Arrival>
                </FlightSegment>
                <FareInfo FareComponent="0">
                    <Base Amount="0" DecimalPlaces="0" />
                </FareInfo>
            </Coupons>
            <Fare>
                <BaseFare CurrencyCode="EUR" DecimalPlaces="2" Raw="42.50">42.50</BaseFare>
                <EquivFare>0</EquivFare>
                <TotalFare CurrencyCode="EUR" DecimalPlaces="2" Raw="42.50">42.50</TotalFare>
                <AERTaxes>
                    <Bucket1 Amount="0.00" DecimalPlaces="2" />
                    <Bucket2 Amount="0.00" DecimalPlaces="2" />
                    <Bucket3 Amount="0.00" DecimalPlaces="2" />
                </AERTaxes>
                <Modifiers appliedDiscount="false" appliedTicketDesignator="false" />
            </Fare>
        </ExchDoc>
        <NewDoc OverrideValCarrier="AA" Purchase="2017-10-02">
            <Passenger CorporateID="false" PassengerTypeCode="ADT">
                <PersonName>
                    <GivenName>FOURTEEN</GivenName>
                    <Surname>AERTEST</Surname>
                </PersonName>
                <TravelerRefNumber surnameRefNumber="1">1.1</TravelerRefNumber>
            </Passenger>
            <Reissue>
                <LocationCode>MAD</LocationCode>
                <CountryCode>ES</CountryCode>
            </Reissue>
            <PointOfSale>
                <LocationCode>HDQ</LocationCode>
                <CountryCode>ES</CountryCode>
            </PointOfSale>
            <PointOfTicket>
                <LocationCode>HDQ</LocationCode>
                <CountryCode>ES</CountryCode>
            </PointOfTicket>
            <Fare ExchPrice="false" ReissuePrice="false">
                <BaseFare CurrencyCode="EUR" DecimalPlaces="2">0.00</BaseFare>
                <EquivFare>0</EquivFare>
                <Fees FeeCode="CHG" Raw="N/A" Usage="N" waiverSource="AGENT" />
                <TotalFare CurrencyCode="EUR" DecimalPlaces="2">0.00</TotalFare>
                <UnstructuredFareCalc Currency="NUC">NO FARE CALC ENTERED</UnstructuredFareCalc>
                <AERTaxes>
                    <Bucket1 Amount="0" />
                    <Bucket2 Amount="0" />
                    <Bucket3 Amount="0" />
                </AERTaxes>
                <Modifiers appliedDiscount="false" appliedTicketDesignator="false" />
            </Fare>
        </NewDoc>
        <Comparison>
            <Summary CurrencyType="R" ticketUse="true">
                <Differences>
                    <Base Raw="-42.50">-42.50</Base>
                    <CurrencyFare CurrencyCode="EUR" DecimalPlaces="2" Raw="-42.50">-42.50</CurrencyFare>
                    <TotalTax CurrencyCode="EUR" DecimalPlaces="2" Raw="0.00">0.00</TotalTax>
                    <SubTotal CurrencyCode="EUR" DecimalPlaces="2" Raw="-42.50">-42.50</SubTotal>
                    <GrandTotal CurrencyCode="EUR" DecimalPlaces="2" Raw="-42.50">-42.50</GrandTotal>
                </Differences>
                <Fees>
                    <Fee CurrencyCode="EUR" FeeCode="CHG" Raw="N/A" Usage="N" waiverSource="AGENT">0</Fee>
                </Fees>
            </Summary>
        </Comparison>
        <Refund>
            <Total Amount="42.50" CurrencyCode="EUR" DecimalPlaces="2" />
        </Refund>
        <Message Type="D">TRANSACTION RETAINED</Message>
        <Message Type="X">EMD ISSUE TEST CASE 001</Message>
        <Message Type="W">Default FeeCode is change Fee and last occurrence of change fee/Other Fee is considered in case of multiple repeats</Message>
    </AERDetails>
</AER_RS>

If you are a Sabre customer currently using Sabre APIs in production, access  Resources

Docs Navigation