Skip Navigation

EMD Exchange

1.8.0
Air
Ticketing
SOAP API
Travel Agency

Not Signed In.

Looks like you may not have access to all of the resources and documentation for this page.
Please log-in or contact your support desk team if you believe you should have access.

The EMD Exchange (TKT_ExchangeRefundRQ) API is used to exchange an EMD-A for another EMD-A, an ET for one single EMD-S, a GDS/airline EMD for an ET, and calculates exchange pricing.

Target Audience
Travel Agency
API Version
1.8.0
Authentication
Session Token
Service Action Code
TKT_ExchangeRefundRQ

What is it?

The EMD Exchange API is a SOAP-based service that can exchange:

  • Electronic Miscellaneous Document Associated (EMD-A) for another EMD-A
  • Electronic Ticket (ET) for a single EMD Stand-Alone (EMD-S)
  • Global Distribution System (GDS)/airline EMD for an ET, with the following features:
    • Can be with or without a Refundable Balance EMD-S
    • Prices and processes air ticket refunds
    • Performs an air ticket even exchange after a planned airline schedule change

With EMD Exchange, you can also perform price calculations for EMD-to-EMD exchanges or EMD-to-ET exchanges.

Packaged within a single API, EMD Exchange contains the following services:

  • Sabre Automated Refunds
  • Sabre Schedule Change
  • Sabre EMD Exchange

Note: A TJR update is required to use these services for refunds and exchange scheduling. However, a TJR update is not required to use these services for EMD exchanges.

Why use it?

EMD-A to EMD-A exchanges

Today, travelers must contact the carrier when an agency-issued EMD-A exchange is needed. With the introduction of this API, agencies can now service the customer directly.

An EMD exchange is needed for:

  • A voluntary or involuntary change to the itinerary, resulting in the need to exchange an Electronic Ticket. When a flight is canceled, Air Extras are automatically canceled; however, there is no automatic action to take on the EMD document and the EMD will retain its value. With the introduction of this service, if the passenger desires to re-book the ancillary as well, the agency can book a new Air Extra item, complete the Ticket exchange, and then exchange the existing EMD as payment for the new Air Extra item.
  • The traveler wants to apply the value of previously purchased services toward the purchase of new ancillaries.

ET to EMD-S exchanges

These exchanges are needed to transfer ticket values to an EMD that will be used as future value toward a new ticket.

EMD (A or S) to ET exchanges

Note: The following is true whether the exchange is performed with or without a Refundable Balance EMD-S.

An EMD-to-ET exchange is needed to transfer the EMD value to a new ticket. This EMD can be a GDS or airline-issued EMD-A or EMD-S.

In some cases, if the EMD was the result of an ET-to-EMD-S exchange where the value of the ET was transferred to an EMD-S, the EMD-S might be of higher value than the ET created after the EMD-to-ET exchange. In this case, a Refundable Balance EMD-S will be created for the residual value.

How does it work?

There are two ways to make a request. For EMD-to-EMD, ET-to-EMD, and EMD-to-ET (with Refundable Balance EMD-S) exchanges:

  • Exchange Fulfillment

For exchange calculation summaries related to EMD-to-EMD and EMD-to-ET exchanges:

  • Exchange Calculation Summary

Refer to the artifacts under the Resources tab for full Exchange Fulfillment and Exchange Calculation Summary schema documentation and code samples.

How to use

For detailed instructions, refer to the EMD Exchange API User Guide in the Help tab above.


Request

Refer to the table below to request either an Exchange Calculation Summary or an Exchange Fulfillment:

Element Attribute Description
POS.Company  

Required

The 2-digit GDS code. Can be: 1S (Sabre TN), 1B (Sabre TN APAC), or 1F (INFINI)

Example: 1S

POS.Pseudo  

Required

Sabre/INFINI pseudo city code.

Example: 1Z1Z

TransactionInfo requestType

Required

Identifies the type of request to be made.

Enter EmdToEtktPriceComparison to request an EMD-to-ET exchange Price Calculation Summary response. This does not fulfill the exchange.

Enter Fulfill to request an EMD-to-EMD Exchange Fulfillment response. When used, the system will generate the new EMD, but not return the price comparison data. Refer to the Exchange Fulfillment optional qualifiers section below for more.

Enter EtktToEmdExchange to request an ET-to-EMD Exchange Fulfillment response.

Enter EmdToEtktExchange to request an EMD-to-ET Exchange Fulfillment response.

TransactionInfo.TicketingDocument  

Required

The EMD number being exchanged. Can also be the ET number in the event of an ET-to-EMD exchange.

TransactionInfo.TicketingDocument.TicketReference  

Required

The 1-2 digit Ticket Reference number from the *T field of the PNR.

Example: 3

TransactionInfo.Reservation.AirExtra  

Required for EMD-to-EMD and ET-to-EMD exchanges

The 1-3 digit Air Extra Number for the service(s) being fulfilled with the exchange transaction. May be repeated if you wish to fulfill more than one (1) Air Extra with the exchange transaction.

Example: 2

TransactionInfo.Reservation.Name  

Required

The traveler’s name reference number. This field is optional, but it is required by the background systems when the PNR contains more than one name.

TransactionInfo.Reservation.PriceQuote  

Required

The 1-3 digit PQ for the ET being fulfilled with the exchange transaction.

Example: 2

TransactionInfo.Options.EmdToEtktExchange.TravellerName  

Required - Airline EMD-to-ET exchanges

The name of the EMD owner in LastName/FirstName format.

Exchange Fulfillment optional qualifiers

The following elements and attributes are optional qualifiers when making an Exchange Fulfillment request that are used in addition to the elements and attributes listed above. Refer to the artifacts under the Resources tab for full schema documentation.

Element Attribute Description

Fulfill.Commission.Commission

  If the EMD Exchange is an additional collection, and that additional collection is commissionable, specify the add/collect commission with these elements.
Fulfill.Commission.Commission.Amount   The monetary amount of the commission.
Fulfill.Commission.Commission.Percent   The percentage of the commission.
Fulfill.Commission.NewTicketFullCommission   For use in ARC locations only. If the agent took commission on the old EMD, include that commission plus any commission on an additional collection with this element. Always expressed as an amount. 
Fulfill.Payment   Use with additional collection exchanges to show how the amount due was paid for.
Fulfill.Payment.Card   Contains payment card information.
  vendorCode

The two-character credit card vendor code.

Example: AX

  number The payment card number.
  expireDate The expiration date of the payment card.
  manualApprovalCode Use if you have manually obtained the credit card approval code. When used, the internal automated system credit card authorization code will not be invoked.
Fulfill.Payment.ReservationFOP   If your agency uses the TJR option PNAPNR, and stores the form of Payment in the *FOP field, include the *FOP reference number with this element.
Fulfill.Payment.Virtual   If your agency accepts Virtual Credit Card payments and has an account with Conferma, use the traveler’s CAC code with this element.
Fulfill.Payment.Miscellaneous   If your agency uses Miscellaneous FOP, the Sabre green screen #MS qualifier, include the miscellaneous information (a string) with this element.
EmdToEtktExchange.InhibitRefundableBalance  

EMD-to-ET exchanges only

If true, inhibits the generation of a Refundable Balance EMD-S. The residual value will be forfeited. Can be true or false.

EmdToEtktExchange.AllowDuplicateDocument  

EMD-to-ET exchanges only

If true, generates a duplicate ET after an exchange if the PNR already had an ET. Can be true or false.

 


Response Structure

Refer to the tables below for both Exchange Calculation Summary and Exchange Fulfillment response documentation:

Exchange Calculation Summary

Element Attribute Description
BaseComparison.Old   Provides the value of the EMD presented for exchange.
BaseComparison.New   Provides the cost of the Air Extra(s) to be fulfilled with the exchange.
BaseComparison.Difference   Provides the difference in price between the EMD to be exchanged and the Air Extra items to be fulfilled.
PriceComparison.ResidualAmount   If the exchange is fulfilled, provides the residual amount forfeited.
  currencyCode Currency code of the residual amount.
  decimalPlaces Decimal places in the currency code of the residual amount.

Exchange Fulfillment

Element Attribute Description
Results.Success   Identifies whether the request was successful or not.
TransactionInfo   Contains all details of the exchange transaction.
  reservationAutoEndProcessed If true, the agency has the TJR option for AUTOEND active. Can be true or false.
  reservationAutoRetrievedProcessed If true, the agency has the TJR option for AUTOER active. Can be true or false.
Message  

Repeatable element that sends the success response a user would normally see in Sabre greenscreen for the same transaction. Contains the invoice number issued at the time of the end transaction following a fulfillment transaction.

If the exchange was an additional collection, with a Credit Card form of payment, the CC approval code will be sent in this element.

Example: OK      18.00  Y76623

  type

Can be E for Exchange or I for Invoice.

 

Sample Request
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Header>
        <ns1:MessageHeader
               xmlns:ns1="http://www.ebxml.org/namespaces/messageHeader" ns1:version="">
            <ns1:From>
                <ns1:PartyId>999999</ns1:PartyId>
            </ns1:From>
            <ns1:To>
                <ns1:PartyId>123123</ns1:PartyId>
            </ns1:To>
            <ns1:CPAId>IPCC</ns1:CPAId>
            <ns1:ConversationId>ABC123</ns1:ConversationId>
            <ns1:Service>TKT_ExchangeRefundRQ</ns1:Service>
            <ns1:Action>TKT_ExchangeRefundRQ</ns1:Action>
            <ns1:MessageData>
                <ns1:MessageId/>
                <ns1:Timestamp/>
            </ns1:MessageData>
        </ns1:MessageHeader>
        <ns1:Security
               xmlns:ns1="http://schemas.xmlsoap.org/ws/2002/12/secext">
            <ns1:BinarySecurityToken>Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/STSA!ICESMSLB\/STS.LB!1591195272769!343!9</ns1:BinarySecurityToken>
        </ns1:Security>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <ExchangeEmdRQ xmlns="http://www.sabre.com/ns/Ticketing/ExchangeRefund/1.0"
                      xmlns:ns2="http://www.sabre.com/ns/Ticketing/TTL/1.0"
                      version="1.8.0">
            <Header>
                <ns2:DiagnosticData>WEMDX0454408292816*PQ2-BOSE/SOUMEN$EXEE</ns2:DiagnosticData>
            </Header>
            <POS>
                <ns2:Company>1S</ns2:Company>
                <ns2:Pseudo>WY79</ns2:Pseudo>
            </POS>
            <TransactionInfo requestType="EmdToEtktExchange">
                <TicketingDocument>
                    <Number>0454408292816</Number>
                </TicketingDocument>
                <Reservation>
                    <PriceQuote>2</PriceQuote>
                </Reservation>
                <Options>
                    <EmdToEtktExchange>
                        <InhibitRefundableBalance>false</InhibitRefundableBalance>
                        <AllowDuplicateDocument>false</AllowDuplicateDocument>
                        <TravellerName>BOSE/SOUMEN</TravellerName>
                    </EmdToEtktExchange>
                </Options>
            </TransactionInfo>
        </ExchangeEmdRQ>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Sample Response
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope
       xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <eb:MessageHeader
               xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1">
            <eb:From>
                <eb:PartyId eb:type="URI">123123</eb:PartyId>
            </eb:From>
            <eb:To>
                <eb:PartyId eb:type="URI">999999</eb:PartyId>
            </eb:To>
            <eb:CPAId>IPCC</eb:CPAId>
            <eb:ConversationId>ABC123</eb:ConversationId>
            <eb:Service>TKT_ExchangeRefundRQ</eb:Service>
            <eb:Action>TKT_ExchangeRefundRS</eb:Action>
            <eb:MessageData>
                <eb:MessageId>1115492528964670150</eb:MessageId>
                <eb:Timestamp>2020-06-03T14:41:53</eb:Timestamp>
            </eb:MessageData>
        </eb:MessageHeader>
        <wsse:Security
               xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
            <wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/STSA!ICESMSLB\/STS.LB!1591195272769!343!9</wsse:BinarySecurityToken>
        </wsse:Security>
    </soap-env:Header>
    <soap-env:Body>
        <ns2:ExchangeEmdRS xmlns:ns2="http://www.sabre.com/ns/Ticketing/ExchangeRefund/1.0" xmlns="http://www.sabre.com/ns/Ticketing/TTL/1.0" version="1.8.0">
            <ns2:Header messageID="AADSD1B9RG3-43516-1926056330-1685625173180-1-arex" timeStamp="2023-06-01T18:42:00.000">
                <OrchestrationID>AADSD1B9RG3-43516-1926056330-1685625173180-1-arex</OrchestrationID>
                <Results>
                    <Success>
                        <System>TKT-DS</System>
                        <Source>AREX</Source>
                    </Success>
                </Results>
            </ns2:Header>
            <ns2:TransactionInfo reservationAutoEndProcessed="false" reservationAutoRetrieveProcessed="false" wnEarlyBirdEmdExchange="false">
                <ns2:Message type="I">OK     0.00</ns2:Message>
                <ns2:Message type="I">ETR EXCHANGE PROCESSED</ns2:Message>
                <ns2:Message type="I">OK 6.6</ns2:Message>
            </ns2:TransactionInfo>
        </ns2:ExchangeEmdRS>
    </soap-env:Body>
</soap-env:Envelope>