PreCheckReservation
PreCheckReservation
The PreCheckReservation
API is a rate validation and availability check endpoint used before finalizing a hotel reservation. It acts as a pre-booking verification step to ensure that the selected room, rate, and inventory are still available and valid at the moment of confirmation.
Purpose
Validate real-time availability for the selected room (
RoomSelectionKey
)Ensure the submitted rate matches the actual supplier rate
Retrieve updated pricing and cancellation policies
Generate a
preBookReservationId
for use in the final booking via theCreateReservation
API
When to Use
Immediately before calling
CreateReservation
As a mandatory step in the booking workflow
To avoid booking errors such as:
Rate Mismatch
Room Not Available
Policy Changes
Endpoint
POST [SD-Domain]/api/SmartDistribution/PreCheckReservation
Headers
Content-Type
application/json
Yes
Content type of the request body
ApiKey
Test3HVW63CF9HQU
Yes
API key provided by RateGain
ApiSecret
TEStMYBYJ9CU
Yes
API secret provided by RateGain
Request Payload
{
"BookReservation": {
"RoomSelectionKey": "20250712|20250713|W|148|9234|SUI.EJ|ID_B2B_88|RO|B2BNRFAEXX|1~2~0||N@07~~2151a~282040361~N~~~NRF~~BDB2061EE70D480175221511751805AADE000100010002052151a",
"InDate": "2025-07-12",
"OutDate": "2025-07-13",
"PropertyId": "ChIJn7D4RFNqXz4RuLE7TlSgPlA",
"RatePlanCode": "HBR",
"RoomRate": "26.21",
"RoomTypeCode": "SUI.EJ",
"EchoToken": "ECHO123452342212ss2",
"Guest": {
"NumberOfAdults": 2,
"NumberOfBeds": 1,
"NumberOfRooms": 1,
"GuestCount": [
{
"Type": "Adult",
"Count": 2
}
]
}
}
}
Request Fields Description
Root Object: BookReservation
RoomSelectionKey
string
Unique identifier for the selected room offer (from search results)
InDate
string
Check-in date (YYYY-MM-DD
)
OutDate
string
Check-out date (YYYY-MM-DD
)
PropertyId
string
Google Place ID or internal property identifier
RatePlanCode
string
Rate plan code (e.g., HBR
)
RoomRate
string
Price of the room for the selected duration
RoomTypeCode
string
Room type code (e.g., SUI.EJ
)
EchoToken
string
Unique tracking token for idempotency/debugging
Nested Object: Guest
NumberOfAdults
integer
Number of adult guests
NumberOfBeds
integer
Number of beds requested
NumberOfRooms
integer
Number of rooms being booked
GuestCount
array
Breakdown of guests by type (e.g., Adult, Child)
GuestCount Object
Type
string
Type of guest (e.g., Adult)
Count
integer
Number of guests of that type
Success Response Sample
{
"status": true,
"body": {
"sdPreBookResponse": {
"property": {
"language": "en",
"token": "",
"rate": {
"ratePlan": {
"code": "HBR",
"commissionableStatus": "NonCommissionable",
"inDate": "2025-07-12",
"outDate": "2025-07-13",
"status": "Open",
"roomType": {
"bookableRate": "28.831",
"code": "SUI.EJ",
"roomSelectionKey": "20250712|20250713|W|148|9234|SUI.EJ|ID_B2B_88|RO|B2BNRFAEXX|1~2~0||N@07~~2151a~282040361~N~~~NRF~~BDB2061EE70D480175221511751805AADE000100010002052151a",
"nativeCurrency": "EUR",
"numberOfRooms": "1",
"numberOfPayingGuestsPerRoom": "2",
"numberOfChildren": "0",
"roomDescription": "SUITE EXECUTIVE",
"rateCommentText": "Check-in hour 15:00. Car park YES. Minimum check-in age 18.",
"totalRate": "26.21",
"totalRateInclusive": "26.21",
"cancelPolicy": {
"intervalOffsetType": "BeforeArrival",
"penaltyAmount": "28.831",
"time": "23:59:00.000",
"date": "2025-07-10"
},
"amenity": {
"code": "EP",
"description": "Room only"
}
}
}
}
}
},
"preBookReservationId": "5ecefd52-1ed8-45e8-a0be-2d3305ba3ff6",
"sdReservationResponse": null,
"reservationId": null
},
"description": null,
"hasNextValue": false
}
Response Fields Description
Top-Level Fields
status
boolean
Indicates if the API call was successful
body
object
Contains pre-booking and reservation details
description
string
Error or status message (nullable)
hasNextValue
boolean
Pagination indicator (usually false)
Pre-Booking Details (sdPreBookResponse
)
property
object
Hotel and rate details
token
string
Session/pre-book context token
Rate Plan Fields
code
string
Rate plan code (e.g., HBR
)
commissionableStatus
string
Commission status (e.g., NonCommissionable
)
inDate, outDate
string
Check-in and check-out dates
status
string
Rate availability status (e.g., Open
)
Room Type Fields
bookableRate
string
Base rate before taxes
totalRate, totalRateInclusive
string
Final rate (may include discounts or taxes)
roomSelectionKey
string
Encoded identifier for the selected room
code
string
Room type code
roomDescription
string
Human-readable room name
rateCommentText
string
Additional notes (e.g., check-in time)
numberOfRooms
string
Number of rooms
numberOfPayingGuestsPerRoom
string
Number of adult guests per room
numberOfChildren
string
Number of children per room
Cancel Policy Fields
intervalOffsetType
string
Cancellation condition (e.g., BeforeArrival
)
penaltyAmount
string
Cancellation penalty amount
date
string
Cutoff date for cancellation
time
string
Cutoff time on the cancellation date
Amenity Fields
code
string
Board basis code (e.g., EP
)
description
string
Board basis description (e.g., Room only
)
Use Cases
Validate rate and availability before final booking
Retrieve updated cancellation policies
Generate
preBookReservationId
for use
Last updated