Skip Navigation

Enhanced End Transaction

1.0.0
Utility
Reservation
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 Enhanced End Transaction API (EnhancedEndTransactionRQ) is used to end transaction/committing records. It allows recovering from various, more complex errors that the original service was unable to recover from - in short, it handles common negative scenarios that prevent you from successfully committing the reservation.

Target Audience
Travel Agency
API Version
1.0.0
Authentication
Session Token
Service Action Code
EnhancedEndTransactionRQ

Why use it?

Critical business processes of TN customers in Sabre rely on the creation or modification of Passenger Name Records (PNRs).

In order to commit changes on PNRs, Sabre API customers have historically used the low-level EndTransactionLLSRQ API.

This legacy API mimics the behavior of the “E”, “ET”, etc. host commands, but with no business intelligence; this has forced Sabre API consumers to define business logic when specific messages (errors / warnings) are returned from this low-level API, in some cases valid errors that force developers to divert to an alternate path, but in some cases warnings that require simply a retry of the same low-level EndTransactionLLSRQ API to finally commit the PNR changes.

The EnhancedEndTransactionRQ API incorporates business logic to automatically recover from the most common errors/warnings received at time of End Transaction, therefore removing the need from developers to code a recovery logic with little business value. This API orchestrates calls to the low-level EndTransactionLLSRQ and validates the responses returned by Sabre’s host system, in order to define which recovery step to execute next.

 

How does it work?

The Enhanced End Transaction API calls the underlying low-level service API:

  • If the low level service API returns an error, the system will retry by means of sending another end transaction request, this time without .../Source/@ReceivedFrom. This usually bypasses the initial error and ends the transaction successfully.
  • If the low level service API returns a success combined with a warning "DIRECT CONNECT MESSAGES RECEIVED - ENTER *A OR *IM", then the following things will happen:
    • A subsequent call will be made, to bypass the Itinerary Message Display.
    • The system will retry by means of sending another end transaction request, this time without .../Source/@ReceivedFrom to end the transaction.
  • If you specify /EnhancedEndTransactionRQ/@shouldCheckRefId and the low level service API does not return the PNR Locator then the following things will happen:
    • The system will retry by means of sending another end transaction request, this time without .../Source/@ReceivedFrom to end the transaction.
    • If the subsequent call does not collect the PNR Locator, the system will return an error "Could not find the PNR locator in the End Transaction response".
    • If the subsequent call collects the PNR Locator, system will simply pass it in the response message at /EnhancedEndTransactionRS/ItineraryRef/@ID

How do I use it?

This API is used to simplify the booking process via two new key features:

  • You can specify the version of EndTransactionLLSRQ API (by default, the API uses the latest version).
  • You can specify whether the API should check if a Passenger Name Record (PNR) record locator was returned, and to return an error if it was not returned,

It also can be used for the existing features in the legacy EndTransactionLLSRQ API:

  • If finalizing or completing the PNR is the only action desired, only include /EnhancedEndTransactionRQ/@Ind="true" in the request.
  • If receiving the PNR is the only action desired, send the /EnhancedEndTransactionRQ/Source/@ReceivedFrom attribute in the request and set /EnhancedEndTransactionRQ/@Ind="false".

The API can be used in the same way as the low level service End Transaction API, please refer to sample request payloads to see examples, they include the following samples:

  • Receive and end transaction.
  • End transaction and email a copy of the record to the addresses contained in the PNR.
  • End transaction and email a text-based copy of the eTicket to the addresses contained in the PNR.
  • End transaction and email a PDF-based copy of the eTicket to the addresses contained in the PNR.
  • End transaction and email a text-based copy of the invoice to the addresses contained in the PNR.
  • End transaction and email a text-based copy of the itinerary to the addresses contained in the PNR.
  • End transaction and email a PDF-based copy of the itinerary to the addresses contained in the PNR.
  • End transaction and email a PDF-based copy of the itinerary to the email address contained in the PNR associated with the particular passenger name number.

Note: Some of the optional indicators used by the API might require changes in your Travel Journal Record configuration. Refer to the following Format Finder resource for information: pnrfo005

Sample Request
<?xml version="1.0" encoding="UTF-8"?>
<!--End transaction with received field.-->
<EnhancedEndTransactionRQ version="1.0.0" xmlns="http://services.sabre.com/sp/eet/v1">
    <EndTransaction Ind="true"/>
    <Source ReceivedFrom="API TEST"/>
</EnhancedEndTransactionRQ>
Sample Response
<?xml version="1.0" encoding="UTF-8"?>
<!--Successful EndTransaction response upon creating of a reservation with a guaranteed ticketing carrier.-->
<EnhancedEndTransactionRS xmlns="http://services.sabre.com/sp/eet/v1">
    <ApplicationResults xmlns="http://services.sabre.com/STL_Payload/v02_01" status="Complete">
        <Success timeStamp="2019-07-10T08:43:47.659-05:00"/>
        <Warning type="BusinessLogic" timeStamp="2019-07-10T08:43:47.448-05:00">
            <SystemSpecificResults>
                <Message code="WARN.SWS.HOST.ERROR_IN_RESPONSE">EndTransactionLLSRQ: CREDIT CARD WILL BE DEBITED-PENALTY APPLIES</Message>
                <Message>CREDIT CARD INFO WILL BE SENT TO ALL CARRIERS IN ITINERARY</Message>
            </SystemSpecificResults>
        </Warning>
        <Warning type="BusinessLogic" timeStamp="2019-07-10T08:43:47.649-05:00">
            <SystemSpecificResults>
                <Message code="WARN.SWS.HOST.WARNING_RESPONSE">EndTransactionLLSRQ: TTY REQ PEND</Message>
            </SystemSpecificResults>
        </Warning>
    </ApplicationResults>
    <ItineraryRef ID="MLNAHR">
        <Source CreateDateTime="2019-07-10T08:43"/>
    </ItineraryRef>
    <Text>OK 0843 MLNAHR TTY REQ PEND</Text>
</EnhancedEndTransactionRS>