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 the CreateReservation 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

Header Name
Value / Example
Required
Description

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

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

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)

Field
Type
Description

property

object

Hotel and rate details

token

string

Session/pre-book context token

Rate Plan Fields

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

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