Skip to main content

Enhanced Hotel Book

2.2.0
Hotel
Reservation
SOAP API
Travel Agency
  • Added capability to pass or reference Strong Customer Authentication (SCA) data during a payment card transaction.
  • Added capability to reference a previously stored payment card .
  • As of this release the API will use a different path in order to decode the booking key. Instead of data retrieved from a liberary, the booking key contents will be collected from an internal API call.
  • Expanded the business logic for ../PaymentInformation/FormOfPaymentReference/@ref for legacy GDS bookings. As of this release form of payment references will be validated in a unified fashion using the accurate payment indexes.
  • Replaced Amount After Tax with Highest Nightly Rate comparison. We have modified the API in the legacy GDS path to look at highest /HotelPropertyDescriptionRS/RoomStay/RoomRates/RoomRate/Rates/Rate/@Amount and compare it with the content of the booking key. When the amounts mismatch the user will be informed that "The highest nightly rate does not match the one returned during shopping".
  • (12/09/2021) Added @insertAfter, which is used to specify a segment number to place the new hotel segment after. This attribute can only be used for legacy GDS hotel bookings.
  • (03/08/2022) Fixed internal mapping for requestorID (/EnhancedHotelBookRQ/POS/Source/RequestorID) .From now on the value will be properly passed to domain systems.
  • (04/28/2022) Added capability to pass flight arrival and departure information during the hotel booking at /EnhancedHotelBookRQ/ArrivalDepartureInformation. This applies only to CSL hotel bookings.
  • (06/28/2022) Downstream CSL booking calls will now be invoked via UpdateReservationRQ_v1.19.16. This does not change functionality, but prepares the API for future changes. This change was applied to all Enhanced Hotel Book versions.
  • (11/17/2022) CSL Only - The API will now automatically pass default value of Guest Index at /EnhancedHotelBookRQ/Rooms/Room/Guests/Guest/@Index. The API will now populate guest indices in UpdateReservationRQ to avoid loyalty and frequent flyer identifier mapping issues in CSL. Previously they were being lost during booking and incorrect rates could be applied.
  • (11/17/2022) Legacy booking path only/back-end change - The API will no longer be passing currency code in the internal rate search process. This resolves TNTCSL-1165 JIRA.
  • (02/14/2023) (CSL path only) - Special instruction text passed to downline services will no longer contain an extra white space and a dot at the end of each instruction. The text will be passed as is to the supplier.
  • (04/04/2023) (CSL path ONLY) - Fixed an issue, where an override of Requestor ID would generate a down-line service schema validation error.
  • (09/12/2023) The change introduces a new @legacyIURforCSL flag that will let you request legacy Interface User Record (IUR) to be created while booking CSL or aggregator hotel segments.

API Information

Format
XML
Current Version
2.2.0
Environment
Production

What's New

  • Added capability to pass or reference Strong Customer Authentication (SCA) data during a payment card transaction.
  • Added capability to reference a previously stored payment card .
  • As of this release the API will use a different path in order to decode the booking key. Instead of data retrieved from a liberary, the booking key contents will be collected from an internal API call.
  • Expanded the business logic for ../PaymentInformation/FormOfPaymentReference/@ref for legacy GDS bookings. As of this release form of payment references will be validated in a unified fashion using the accurate payment indexes.
  • Replaced Amount After Tax with Highest Nightly Rate comparison. We have modified the API in the legacy GDS path to look at highest /HotelPropertyDescriptionRS/RoomStay/RoomRates/RoomRate/Rates/Rate/@Amount and compare it with the content of the booking key. When the amounts mismatch the user will be informed that "The highest nightly rate does not match the one returned during shopping".
  • (12/09/2021) Added @insertAfter, which is used to specify a segment number to place the new hotel segment after. This attribute can only be used for legacy GDS hotel bookings.
  • (03/08/2022) Fixed internal mapping for requestorID (/EnhancedHotelBookRQ/POS/Source/RequestorID) .From now on the value will be properly passed to domain systems.
  • (04/28/2022) Added capability to pass flight arrival and departure information during the hotel booking at /EnhancedHotelBookRQ/ArrivalDepartureInformation. This applies only to CSL hotel bookings.
  • (06/28/2022) Downstream CSL booking calls will now be invoked via UpdateReservationRQ_v1.19.16. This does not change functionality, but prepares the API for future changes. This change was applied to all Enhanced Hotel Book versions.
  • (11/17/2022) CSL Only - The API will now automatically pass default value of Guest Index at /EnhancedHotelBookRQ/Rooms/Room/Guests/Guest/@Index. The API will now populate guest indices in UpdateReservationRQ to avoid loyalty and frequent flyer identifier mapping issues in CSL. Previously they were being lost during booking and incorrect rates could be applied.
  • (11/17/2022) Legacy booking path only/back-end change - The API will no longer be passing currency code in the internal rate search process. This resolves TNTCSL-1165 JIRA.
  • (02/14/2023) (CSL path only) - Special instruction text passed to downline services will no longer contain an extra white space and a dot at the end of each instruction. The text will be passed as is to the supplier.
  • (04/04/2023) (CSL path ONLY) - Fixed an issue, where an override of Requestor ID would generate a down-line service schema validation error.
  • (09/12/2023) The change introduces a new @legacyIURforCSL flag that will let you request legacy Interface User Record (IUR) to be created while booking CSL or aggregator hotel segments.

Business Value

  • This release makes Enhanced Hotel Book API compliant with the EU Payment Services Directive (PSD2).

New Features

In the Request

Optional

Parameter: FormOfPaymentReference

Type: element

Description: Element used to refer to an existing payment card or Strong Customer Authentication Data during booking.

Sample Value:

<EnhancedHotelBookRQ xmlns="http://services.sabre.com/sp/enhanced/hotel/book/v2_2" version="2.2.0">
<BookingInfo RequestorID="SG000000">
<BookingKey>fef21245-d571-4fb8-8cbb-38143e44f29e</BookingKey>
</BookingInfo>
<Rooms>
<Room RoomIndex="1" NonSmoking="true">
<Guests>
<Guest FirstName="TEST" LastName="API" Email="Witold.Petriczek@sabre.com" Type="10" Index="1" LeadGuest="true">
<Contact Phone="817-555-1212"/>
</Guest>
</Guests>
</Room>
</Rooms>
<PaymentInformation Type="GUARANTEE">
<FormOfPaymentReference ref="1" strongCustomerAuthenticationRef="2" cardSecurityCode="123"/>
</PaymentInformation>
</EnhancedHotelBookRQ>

In the Request

Optional

Parameter: StrongCustomerAuthentication

Type: element

Description: Element used to apply Strong Customer Authentication data to a payment card booking.

Sample Value:

<EnhancedHotelBookRQ xmlns="http://services.sabre.com/sp/enhanced/hotel/book/v2_2" version="2.2.0">
<BookingInfo RequestorID="SG000000">
<BookingKey>fef21245-d571-4fb8-8cbb-38143e44f29e</BookingKey>
</BookingInfo>
<Rooms>
<Room RoomIndex="1" NonSmoking="true">
<Guests>
<Guest FirstName="TEST" LastName="API" Email="Witold.Petriczek@sabre.com" Type="10" Index="1" LeadGuest="true">
<Contact Phone="817-555-1212"/>
</Guest>
</Guests>
</Room>
</Rooms>
<PaymentInformation Type="GUARANTEE">
<FormOfPayment>
<PaymentCard>
<PaymentType>CC</PaymentType>
<CardCode>VI</CardCode>
<CardNumber>4000000000006</CardNumber>
<ExpiryMonth>7</ExpiryMonth>
<ExpiryYear>2021</ExpiryYear>
<FullCardHolderName>
<FirstName>TEST</FirstName>
<LastName>API</LastName>
<Email>Witold@sabre.com</Email>
</FullCardHolderName>
<CSC>123</CSC>
<Phone>
<PhoneNumber>817-555-1212</PhoneNumber>
</Phone>
<StrongCustomerAuthentication Channel="SC" CardNumberCollection="K" ExemptionCode="SC" MandateType="NS" OriginalPaymentRef="1234547839012345" MerchantName="TEST CREDIT CARD" T3DSAuthValue="ABC123455533533444455555678" TAVV="ABC3434334343556677487312567" ECI="12" DirectoryServerTrxID="ABCDEFGHI123456789012!.1234567890123" Version="120" AuthenticationIssues="AO" PurchaseAmount="1234.56" PurchaseCurrency="USD" VerificationResult="PASS" AuthenticationResult="OK" LastUpdateTime="2020-08-19T09:35:10"/>
</PaymentCard>
</FormOfPayment>
</PaymentInformation>
</EnhancedHotelBookRQ>

Resolved Issues

In the Request

Optional

Description: (03/08/2022) Fixed internal mapping for requestorID (/EnhancedHotelBookRQ/POS/Source/RequestorID) .From now on the value will be properly passed to domain systems.


  • Implemented support for bcom authorized charges. The aggregator requires specific process to pass mandatory information related to virtual form of payment. The new version of the webservice handles this process automatically by fetching the relevant data from /EnhancedHotelBookRQ/PaymentInformation/FormOfPayment/VirtualCard/SpecialInstructions/SpecialInstruction. The change only applies to CSL hotel booking path.

API Information

Format
XML
Current Version
2.1.1
Environment
Production

What's New

  • Implemented support for bcom authorized charges. The aggregator requires specific process to pass mandatory information related to virtual form of payment. The new version of the webservice handles this process automatically by fetching the relevant data from /EnhancedHotelBookRQ/PaymentInformation/FormOfPayment/VirtualCard/SpecialInstructions/SpecialInstruction. The change only applies to CSL hotel booking path.

Resolved Issues

In the Request

Optional

Description: System will automatically pass loyaltyID and/or frequent flyer number from shopping (booking key) to booking. If the values are present in the API Request and not within the booking key, then the value from the payload will be passed. If the values are present both in request and within the content of the booking key then the booking key value will take precedence. This change applies only to legacy GDS booking path.


  • Added capability to book CSL hotel content by means of a Sabre Virtual Payment method.
  • (09/12/2023) The change introduces a new @legacyIURforCSL flag that will let you request legacy Interface User Record (IUR) to be created while booking CSL or aggregator hotel segments.

API Information

Format
XML
Current Version
2.1.0
Environment
Production

What's New

  • Added capability to book CSL hotel content by means of a Sabre Virtual Payment method.
  • (09/12/2023) The change introduces a new @legacyIURforCSL flag that will let you request legacy Interface User Record (IUR) to be created while booking CSL or aggregator hotel segments.

New Features

In the Request

Optional

Parameter: VirtualCard

Type: element

Description: Passes the Sabre Virtual Payment details needed to complete a booking with using that method.

Sample Value:

<PaymentInformation Type="DEPOSIT">
  <FormOfPayment>
    <VirtualCard>
      <CustomerAccountCode>SABREAIRONE</CustomerAccountCode>
      <Agency Email="sp.support@sabre.com"/>
      <HotelInfo Fax="19524694659" HotelName="Holiday Inn Hotel Suites Lakeville"/>
      <RoomDescription Name="BOOK EARLY N SAVE NO REFUNDS">
        <Text>1 KING BED LEISURE NONSMOKING WITH FREE WI FI ACCESS 2 PHONES AND FREE LCL CALLS THIS ACCOMMODATING ROOM ENSURES WITH FREE WI FI ACCESS 2 PHONES AND FREE LCL CALLS THIS ACCOMMODATING ROOM ENSURES THAT YOU STAY CONNECTED. A DESK AND ERGONOMIC CHAIR PROVIDE THE PERFECT WORK SPACE FOR YOUR HOME AWAY FROM HOME AND A COMFORTABLE EASY CHAIR WITH AN OTTOMAN OFFERS A GREAT SPOT TO RELAX AND WATCH HBO OR ESPN.</Text>
      </RoomDescription>
      <RateInfo AmountAfterTax="356.02" CurrencyCode="USD"/>
      <SpecialInstructions>
        <SpecialInstruction>Room Only</SpecialInstruction>
      </SpecialInstructions>
    </VirtualCard>
  </FormOfPayment>
</PaymentInformation>

Functional Updates And Enhancements

In the Request

N/A

Parameter: VirtualCard

Type: N/A

Description: Added extra validation to VFOP - In some specific cases Sabre Virtual Payment will fail if the ... /VirtualCard/RateInfo/@AmountAfterTax and/or /VirtualCard/RateInfo/@CurrencyCode is not sent in the request, this change will see the application return with a specific error message back to the user, prompting the user to fill in the missing data: "Unable to pass Virtual FOP information – ... /VirtualCard/RateInfo/@AmountAfterTax and/or /VirtualCard/RateInfo/@CurrencyCode missing". This applies mostly to hotel aggregators such as BedsOnline and Expedia Rapid.

In the Request

Optional

Parameter: CustomerAccontCode

Type: string

Description: Sending a invalid value of CustomerAccountCode when attempting to use Sabre Virtual Payment will now result in the API returning "CustomerAccountCode must be 1-18 alphanumeric" error message.

Resolved Issues

In the Response

Optional

Description: The informative messages returned by OTA_HotelResRS will now be passed as warnings at /EnhancedHotelBookRS/ApplicationResults/Warning. This applies only to legacy hotel bookings.


  • Create default mapping for /EnhancedHotelBookRQ/Rooms/Room/Guests/Guest/@Type. When user does not specify /EnhancedHotelBookRQ/Rooms/Room/Guests/Guest/@Type the API will pass the default value of "10" (Adult).
  • (09/12/2023) The change introduces a new @legacyIURforCSL flag that will let you request legacy Interface User Record (IUR) to be created while booking CSL or aggregator hotel segments.

API Information

Format
XML
Current Version
2.0.0
Environment
Production

What's New

  • Create default mapping for /EnhancedHotelBookRQ/Rooms/Room/Guests/Guest/@Type. When user does not specify /EnhancedHotelBookRQ/Rooms/Room/Guests/Guest/@Type the API will pass the default value of "10" (Adult).
  • (09/12/2023) The change introduces a new @legacyIURforCSL flag that will let you request legacy Interface User Record (IUR) to be created while booking CSL or aggregator hotel segments.

Resolved Issues

In the Response

N/A

Description: Applies to CSL bookings only. The API will now stop processing upon encountering a downline error message from UpdateReservation RQ: "PARTIAL ERROR"