2.2.2.2 Price check
About 803 wordsAbout 3 min
2025-11-04
Warning
- Klook calls this interface to verify the real-time price, availability (inventory), and policy validity of the Rate Plan selected by the user.
URL
Integrator to define and provide the URL to Klook
Input Parameters
| Field | Type | Mandatory | Description |
|---|---|---|---|
hotelId | String | true | Integrator Hotel ID |
roomId | String | true | Integrator Room ID |
ratePlanId | String | true | Integrator Rate Plan ID |
checkIn | String | true | Check-in Time, format: yyyy-MM-dd |
checkOut | String | true | Check-out Time, format: yyyy-MM-dd |
roomCount | int | true | Number of Rooms |
occupancy | Occupancy | true | Room occupancy information (occupancy information of one room) |
countryCode | String | true | standard two-letter country codeUser IP Country |
language | String | true | Requested standard Language Code If the integrator does not support this language, en_US is used by default |
currency | String | true | Requested CurrencyMerchant settlement currency |
platform | String | true | Request source platform Enum: website, mobile |
configData | String | false | Custom data returned by the integrator's price search, length must not exceed 64 |
Occupancy
| Field | Type | Mandatory | Description |
|---|---|---|---|
adultCount | Integer | true | Number of adults per room |
childCount | Integer | true | Number of children per room |
childrenAges | List<Integer> | false | childrenAges will only exist if the number of children is not 0 |
Base Input Parameter Extension Fields
| Field | Type | Mandatory | Description |
|---|---|---|---|
supplierAccount | String | false | openApi supplier account data Integrator defines the account data1: The account is used to handle different rate resources for different selling conditions. For example, a Member account returns rates for Members only, non-Members will not see the rate. It supports multiple accounts2: If the integrator does not have multiple accounts, the value passed is null3: Length does not exceed 128 characters |
Input Parameter Example
Example
{
"base": {
"requestId": "xxxx",
"requestTime": "xxx",
"requestAgent": "xxx",
"openApiSign": "xx",
"supplierAccount": "account1",
"version": "xxx"
},
"requestData": {
"hotelId": "26546159",
"roomId": "room1",
"ratePlanId": "AABBCC",
"checkIn": "2025-05-26",
"checkOut": "2025-05-28",
"roomCount": 1,
"occupancy": {
"adultCount": 2,
"childCount": 1,
"childrenAges": [
8
]
},
"countryCode": "HK",
"language": "en_US",
"currency": "CNY",
"platform": "website",
"configData": "AAAABBBDDDBBDDDDDDD"
}
}Output Parameters
| Field | Type | Mandatory | Description |
|---|---|---|---|
status | String | true | Price verification status1: Please refer to 3.1 Order Status Description2: Klook will automatically compare the verified price with the queried price. If prices change, Klook's internal tolerance logic will apply |
hotelRoomRate | HotelRoomRate | false | Latest hotel rate data1: Must be returned when status = checkSuccess |
configData | String | false | Integrator custom data returned from price verificationKlook will include this in the booking request. Optional, length must not exceed 64 |
HotelRoomRate (Same as Price Search HotelRoomRate, but only a subset of fields are required)
| Field | Type | Mandatory | Description |
|---|---|---|---|
currency | String | true | Currency |
availableRooms | Integer | false | Remaining room availability (inventory)If the availableRooms field is returned, Klook will perform inventory verification |
cancelPolicyList | List<CancelPolicy> | false | Cancellation Policy List1: Must be ordered by starting time 'start' from smallest to largest 2: Empty means non-cancellable 3: For time periods before 'start', Klook will treat all as free cancellation |
mealInfo | MealInfo | false | Meal informationIf no meal info is provided, the price search meal info will be used |
totalPrice | TotalPrice | true | Total room price (total price corresponding to the requested number of guests and rooms) |
importantInfo | ImportantInfo | false | rate important information/notesProvide to Klook if any. Klook will display this information on the booking page |
CancelPolicy
| Field | Type | Mandatory | Description |
|---|---|---|---|
start | String | true | Start Time Must include timezone, format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX |
end | String | true | End Time Must include timezone, format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX |
amount | String | true | Amount (Penalty) |
MealInfo
| Field | Type | Mandatory | Description |
|---|---|---|---|
mealCode | String | true | Integrator's Meal TypeKlook will convert based on the dictionary (dataType = 8) |
mealCount | integer | false | Number of mealsIf empty, -1, or -100, Klook currently treats the number of meals = number of guests |
TotalPrice
| Field | Type | Mandatory | Description |
|---|---|---|---|
amountBeforeTax | String | false | Price before tax. Unit: currency unit |
amountAfterTax | String | true | Price after tax. Unit: currency unit |
commission | String | false | CommissionIf the integrator can provide it, Klook will use the integrator's commission; otherwise, Klook calculates it based on the merchant cooperation settings |
ImportantInfo
| Field | Type | Mandatory | Description |
|---|---|---|---|
title | String | false | Tip information title |
descriptionList | List<String> | true | Description list |
Output Parameter Example
Example
{
"success": true,
"error": {
"code": "",
"message": ""
},
"result": {
"status": "checkSuccess",
"hotelRoomRate": {
"currency": "CNY",
"availableRooms": 5,
"cancelPolicyList": [
{
"amount": "449.10",
"start": "2022-11-25T12:00:00.000+08:00",
"end": "2025-08-20T00:00:00.000+08:00"
}
],
"mealInfo": {
"mealCode": "breakfast",
"mealCount": 1
},
"totalPrice": {
"amountBeforeTax": "45.25",
"amountAfterTax": "50.48",
"commission": "0.55"
},
"importantInfo": {
"title": "xxx importantInfo",
"descriptionList": [
"importantInfo importantInfo importantInfo111",
"importantInfo importantInfo importantInfo222"
]
}
},
"configData": "AAAABBBBCCCCCBDDDDBBDDDD"
}
}