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 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": {

"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

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

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

Field

Type

Description

amount

string

Cancellation charge.

from

datetime

Deadline time before which cancellation is free.

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