v2.2.0 | September 23, 2021
- 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.
API Information
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.
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>Note:
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>Note:
Resolved Issues
In the Request
Optional
(03/08/2022) Fixed internal mapping for requestorID (/EnhancedHotelBookRQ/POS/Source/RequestorID) .From now on the value will be properly passed to domain systems.
Relase note ID: 16405
v2.1.1 | March 8, 2021
- 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
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
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.
Relase note ID: 15665
v2.1.0 | January 7, 2021
- Added capability to book CSL hotel content by means of a Sabre Virtual Payment method.
API Information
What's New
- Added capability to book CSL hotel content by means of a Sabre Virtual Payment method.
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>Note:
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.
Sample Value:
Note:
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.
Sample Value:
Note:
Resolved Issues
In the Response
Optional
The informative messages returned by OTA_HotelResRS will now be passed as warnings at /EnhancedHotelBookRS/ApplicationResults/Warning. This applies only to legacy hotel bookings.
Relase note ID: 15179
v2.0.0 | August 19, 2020
- 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).
API Information
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).
Resolved Issues
In the Response
N/A
Applies to CSL bookings only. The API will now stop processing upon encountering a downline error message from UpdateReservation RQ: "PARTIAL ERROR"
Relase note ID: 14371