Skip to main content

EnhancedHotelBookRQ

Enhanced Hotel Book - SOAP

Important! Refer to the Enhanced Hotel Book User Guide for full documentation.

This API integrates multiple sources of content from the Sabre Global Distribution System (GDS) and non-GDS sources, such as re-distributors, agency-sourced hotel content, and various aggregators.

Features include:

  • Books Aggregator hotel content through the Content Services for Lodging product suite
  • Books GDS as a Content Service for Lodging segment or as a legacy segment
  • Provides the ability to specify a hotel booking ID that uniquely identifies the hotel property, room type, room rate, number of guests, etc. This is the key element to trigger the hotel booking process.
  • Provides the ability to identify failures during the orchestrated process, and provides notification of the failure.

The API performs several steps when booking a single room:

  1. Decrypts and retrieves shopped rate details based on the provided booking key.
  2. Depending on the type of booking key and values entered, follows three strategies to book the desired hotel rate: Aggregator hotel via CSL, GDS via CSL, or GDS as a legacy segment.
    • If the booking is successful, validates the newly added segment statuses returned by the hotel vendor (HK/SS/NN/UC/NO).
    • Returns the current state of the session in the response payload (an internal call to TravelItineraryReadRQ).

Booking a Hotel Room

Note: To successfully book a hotel room, prior to calling Enhanced Hotel Book API, it is necessary to either retrieve an existing reservation (using GetReservationRQ) or add the agency name and address to the area (using PassengerDetailsRQ or UpdateReservationRQ).

The shopped hotel rate is encrypted within the hotel booking ID, which is generated after calling the HotelPriceCheckRQ API:

Hotel Price Check - SOAP

Hotel Price Check - REST

For the booking process to commence, the booking ID needs to be passed at /EnhancedHotelBookRQ/Booking/@key.

Enhanced Hotel Book will automatically decode the booking key, obtain the hotel rate, determine the source (GDS or Aggregator), and check the value of the attribute @bookGDSviaCSL.

If the @bookGDSviaCSL attribute is set to false, the GDS rate will be booked as a legacy segment. If the attribute is set to true, the GDS rate will be booked as a Content Service for Lodging segment.

To sum it up, there are three strategies that the API can follow:

  • Book Aggregator as Content Service for Lodging segment
  • Book GDS as Content Service for Lodging segment
  • Book GDS as legacy segment

Important! Ensure to pass guarantee or deposit details (such as credit card information) in the request, as lack of information will result in an unsuccessful transaction.

Upon the successful booking of any type of hotel segment, Enhanced Hotel Book will attempt to retrieve the current state of the session. It will internally call TravelItineraryReadRQ and pass its response as the final EnhancedHotelRS payload. At the same time, a final check is performed to validate whether the newly booked segment status equals HK, NN, or SS (these are determined as successful segment statuses). If not, the transaction will be terminated.

Booking a hotel room using a Virtual Card

Starting with version 2.1.0, Enhanced Hotel Book API provides capability to book CSL content by means of a Virtual Card booking method.

To successfully book a room using the Virtual Card you need to pass the payment details at: /EnhancedHotelBookRQ/PaymentInformation/FormOfPayment/VirtualCard

Element/Attribute Name Description
/PaymentInformation/@Type Payment type. Choose “GUARANTEE” or “DEPOSIT”
CustomerAccountCode virtual card number
Agency/@Email Agency contact email address
/HotelInfo/@Fax Hotel fax number
/HotelInfo/@HotelName Hotel name. Pass the value from: HotelPriceCheckRS/PriceCheckInfo/HotelInfo/@HotelName
/RoomDescription/@Name Room name. Pass the value from: HotelPriceCheckRS/PriceCheckInfo/HotelRateInfo/Rooms/Room/RoomDescription/@Name
/RoomDescription/Text Room text description. Pass the value from: HotelPriceCheckRS/PriceCheckInfo/HotelRateInfo/Rooms/oom/RoomDescription/Text
/RateInfo/@AmountAfterTax Booking total amount. Pass the value from: HotelPriceCheckRS/PriceCheckInfo/HotelRateInfo/RateInfos/RateInfo/@AmountAfterTax
/RateInfo/@CurrencyCode Currency code. Pass the value from: HotelPriceCheckRS/PriceCheckInfo/HotelRateInfo/RateInfos/RateInfo/@CurrencyCode
/SpecialInstructions/SpecialInstruction Use this to inform the hotel of any extra charges that will be covered by the virtual card. If the card is used to cover room only, pass “Room Only” value.

Error Handling

The below table illustrates error handling for EnhancedHotelBookRQ:

Location Scenario Error Message
Schema RQ Customer request schema validation has failed, customer provided an invalid input. SOAP Fault in response with schema validation details
Booking key retrieval error Booking key cannot be retrieved or decoded EnhancedHotelBookRS with Business error:
1. Unable to read Enterprise Shared Cache data - no data for provided key
2. Unable to read Enterprise Shared Cache data - data content is empty for provided key
3. Unable to read rateKey - wrong data format returned by Shared Cache
4. Unable to decode rateKey
5. Unable to decode rateKey - not supported type of rate key
6. Unable to use rateKey data - no XXX or empty
7. Unable to use rateKey data - XXX, "value should be higher than 0
Main business error Main error returned by the SP application. Will be followed by system specific errors generated by the application or the content providers. EnhancedHotelBookRS with Business error: Unable to perform hotel booking step. See below messages for details
HotelProperty DescriptionLLSRQ GDS as legacy only. Low level error coming from the provider. EnhancedHotelBookRS with Provider error: Unable to perform HotelPropertyDescriptionLLSRQ call. See below messages for details
HotelProperty DescriptionLLSRQ Multiple calls GDS as legacy only. Unable to find matching rate within any of the responses from the low-level API. EnhancedHotelBookRS with Business error: Unable to find a matching room rate code within HotelPropertyDescriptionLLSRQ response
HotelProperty DescriptionLLSRQ GDS as legacy only. Shopped rate was found but its price does not match the amount decoded from the booking key EnhancedHotelBookRS with Business error: The total booking price does not match price returned during shopping
HotelRateDescription LLSRQ GDS as legacy only. Low level error coming from the provider EnhancedHotelBookRS with Provider error: Unable to perform HotelRateDescriptionLLSRQ call. See below messages for details
OTA_HotelResLLSRQ GDS as legacy only. Low level error coming from the provider EnhancedHotelBookRS with Provider error: Unable to perform OTA_HotelResLLSRQ call. See below messages for details
OTA_HotelResLLSRQ GDS as legacy only. Low level service returned a success response but with an empty payload. EnhancedHotelBookRS with Provider error: Hotel segment created successfully but no booking details were retrieved from the provider. Please redisplay the reservation to validate the addition of a new hotel segment
TravelItineraryReadRQ All scenarios. Final segment status unsuccessful (either UC or NO) EnhancedHotelBookRS with Business error: Hotel booking segment status is unconfirmed. Please retry the transaction
TravelItineraryReadRQ All scenarios. Confirmation number from the hotel not present EnhancedHotelBookRS with Business warning: Hotel booking succeeded but was not confirmed by the property. No confirmation number present