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.
It helps prevent booking failures due to:
• Expired or changed rates
• Room availability mismatches
• Incorrect pricing information submitted by the client
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": {
"InDate": "2025-07-24",
"OutDate": "2025-07-25",
"EchoToken": "Ech0001",
"PropertyId": "ChIJeXrzAF12NIQRzC1Cl0_AFsM",
"RoomSelection": [
{
"RoomTypeCode": "TWN.DX",
"RoomSelectionKey": "20250724|20250725|W|71|6855|DBL.CB-KG|ID_B2B_88|BB|B2BUSXX|1~2~1|8|N@07~~206f0~2053365280~N~~~NOR~~7D76EF8695A5458175325916176905AADE00010001000105206f0"
}
]
}
}
Request Field Details
BookReservation
Field
Type
Description
InDate
string (yyyy-MM-dd)
Check-in date.
OutDate
string (yyyy-MM-dd)
Check-out date. Must be later than InDate.
EchoToken
string
Unique identifier for tracking/logging the request.
PropertyId
string
Unique ID of the property.internal hotel ID.
RoomSelection
List<RoomSelection>
Array of room selections for booking.
Nested Object: RoomSelection
Field
Type
Description
RoomTypeCode
string
Code representing the type of room (e.g., TWN.DX for Twin Deluxe).
RoomSelectionKey
string
Encoded string that contains rate, room, and pricing selection metadata.
Successful Response (Rate Check Passed)
{
"body": {
"PreCheckResponse": {
"checkIn": "2025-07-24",
"checkOut": "2025-07-25",
"code": 6855,
"name": "Las Brisas Ixtapa",
"categoryCode": "5EST",
"categoryName": "5 STARS",
"destinationCode": "IXT",
"destinationName": "Ixtapa - Zihuatanejo",
"zoneCode": 10,
"zoneName": "Ixtapa",
"latitude": "17.64815200000000000000",
"longitude": "-101.59624500000000000000",
"rooms": [
{
"RoomCode": "DBL.CB-KG",
"name": "DOUBLE CLUB KING BED",
"status": null,
"id": 0,
"supplierReference": null,
"paxes": null,
"rates": [
{
"rateKey": "20250724|20250725|W|71|6855|DBL.CB-KG|ID_B2B_88|BB|B2BUSXX|1~2~1|8|N@07~~206f0~2053365280~N~~~NOR~~7D76EF8695A5458175325916176905AADE00010001000105206f0",
"RateCode": "NOR",
"rateType": "BOOKABLE",
"TotalPrice": "264.07",
"allotment": 3,
"rateCommentsId": null,
"rateComments": ". Check-in hour 16:00-09:00.Car park YES (With additional debit notes).",
"paymentType": "AT_WEB",
"packaging": false,
"boardCode": "BB",
"boardName": "BED AND BREAKFAST",
"cancellationPolicies": [
{
"amount": "264.07",
"from": "2025-07-22T23:59:00-06:00"
}
],
"taxes": null,
"rooms": 1,
"adults": 2,
"children": 1,
"offers": null
}
]
}
],
"minRate": null,
"maxRate": null,
"currency": "EUR",
"totalNet": "264.07",
"paymentDataRequired": false,
"modificationPolicies": {
"cancellation": true,
"modification": false
}
},
"booking": null
},
"status": true,
"description": null,
"statusCode": 200
}
Response Field Details
Top-Level Response
status
boolean
Indicates whether the response was successful (true or false)
statusCode
integer
HTTP status code (e.g., 200 for success)
description
string/null
Error/response details if applicable (usually null)
body
array
List of available hotel results
body.
PreCheckResponse
High-level structure describing pre-booking data.
PreCheckResponse
checkIn
string
Check-in date (yyyy-MM-dd).
checkOut
string
Check-out date (yyyy-MM-dd).
code
int
Internal hotel code.
name
string
Hotel name.
categoryCode
string
Category code (e.g., 5EST).
categoryName
string
Category name (e.g., 5 STARS).
destinationCode
string
Destination code.
destinationName
string
Destination name.
zoneCode
int
Zone code.
zoneName
string
Zone name.
latitude
string
Hotel latitude.
longitude
string
Hotel longitude.
rooms
List<Room>
Room details.
currency
string
Currency (e.g., EUR).
totalNet
string
Total net price.
paymentDataRequired
bool
Whether payment data is required.
modificationPolicies
object
Policies about cancellation and modification.
Rooms Array object
Rooms Array object
RoomCode
string
Internal room code.
name
string
Room name.
status
string
Room availability status
rates
List<Rate>
List of rate plans for the room.
Rates Array object
Rates Array object
rateKey
string
Unique encoded identifier for the rate.
RateCode
string
Internal rate code.
rateType
string
Type of rate (e.g., BOOKABLE).
TotalPrice
string
Total price for this rate.
allotment
int
Number of available rooms.
rateComments
string
Notes about the rate or facilities.
paymentType
string
Payment type (AT_WEB = pay at web).
packaging
bool
Indicates if the rate is part of a package.
boardCode
string
Meal plan code (e.g., BB).
boardName
string
Meal plan description (e.g., BED AND BREAKFAST).
cancellationPolicies
List<Policy>
Cancellation policy details.
taxes
object
Taxes applicable (not provided in this example).
rooms
int
Number of rooms booked.
adults
int
Number of adults.
children
int
Number of children.
Represents the room being quoted for booking.
cancelPolicy
cancelPolicy
Field
Type
Description
amount
string
Cancellation charge.
from
datetime
Deadline time before which cancellation is free.
modificationPolicies
modificationPolicies
cancellation
bool
Indicates whether the booking can be cancelled.
modification
bool
Indicates whether the booking can be modified (e.g., change dates, guests).
Use Cases
· Before Creating Reservation, use this API to:
o Validate rate is current
o Retrieve fresh cancellation policy
Last updated