2.2.2.2 价格验证
约 1038 字大约 3 分钟
2025-11-04
注意
- Klook 调用此接口对用户选中的 Rate Plan 进行实时价格、库存及政策的有效性验证
URL
接入方自行定义并提供给 Klook URL
入参
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
hotelId | String | true | 接入方酒店 ID |
roomId | String | true | 接入方房型 ID |
ratePlanId | String | true | 接入方 Rate Plan ID |
checkIn | String | true | 入住时间,格式:yyyy-MM-dd |
checkOut | String | true | 离店时间,格式:yyyy-MM-dd |
roomCount | int | true | 房间数量 |
occupancy | Occupancy | true | 房间入住信息(单间入住信息) |
countryCode | String | true | 标准国家二字码用户IP国籍 |
language | String | true | 请求标准语言 Code 若接入方不支持该语言,则默认使用 en_US |
currency | String | true | 请求币种商户结算币种 |
platform | String | true | 请求来源平台枚举:website, mobile |
configData | String | false | 接入方查价返回的自定义数据,长度不超过 64 |
Occupancy
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
adultCount | Integer | true | 单间房成人数 |
childCount | Integer | true | 单间房儿童数 |
childrenAges | List<Integer> | false | 当儿童数不为 0 时,childrenAges 才会存在数据 |
Base 入参扩展字段
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
supplierAccount | String | false | openApi 供应商账号数据 接入方自行定义账号数据1:账号是为了处理供应商不同账号下资源露出不同的问题,支持多账号2:若接入方无多账号,则传值为null3:长度不超过128字符串 |
入参示例
示例
{
"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"
}
}出参
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
status | String | true | 验价状态1:请参考3.1 订单状态说明2: klook侧会自行进行验价价格和查价价格对比,若价格不等,会走klook侧内部容差逻辑 |
hotelRoomRate | HotelRoomRate | false | 酒店最新的报价数据1:当status = checkSuccess时,必须返回 |
configData | String | false | 接入方验价返回自定义数据需要 Klook 带入到接入方下单接口非必须,长度不能超过 64 |
HotelRoomRate (同查价 HotelRoomRate,但仅需部分字段)
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
currency | String | true | 币种 |
availableRooms | Integer | false | 房间剩余库存若返回availableRooms字段,则klook则会库存二次校验 |
cancelPolicyList | List<CancelPolicy> | false | 取消政策列表1:需按照起始时间start从小到大排列列表 2:为空代表不可取消 3:start之前的时间段,Klook 侧会全部当成免费取消处理 |
mealInfo | MealInfo | false | 餐食 |
totalPrice | TotalPrice | true | 总房间价(请求人数和房间数对应的总价) |
importantInfo | ImportantInfo | false | 报价提示重要信息如果存在,请提供给 Klook,Klook 将在下单页展示这些信息 |
CancelPolicy
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
start | String | true | 起始时间 需带上时区,格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX |
end | String | true | 结束时间 需带上时区,格式: yyyy-MM-dd'T'HH:mm:ss.SSSXXX |
amount | String | true | 金额 (罚金) |
MealInfo
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
mealCode | String | true | 接入方的餐食类型Klook会根据字典进行转换 (dataType = 8) |
mealCount | integer | false | 餐食份数为空或 -1 或 -100 时, Klook 侧目前会全部处理成餐食份数 = 人数 |
TotalPrice
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
amountBeforeTax | String | false | 税前价单位:元 |
amountAfterTax | String | true | 税后价单位:元 |
commission | String | false | 佣金若接入方能提供,则使用接入方的佣金,否则 Klook 按商户合作的设定自行计算 |
ImportantInfo
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
title | String | false | 提示信息标题 |
descriptionList | List<String> | true | 描述列表 |
出参示例
示例
{
"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"
}
}