2.2.2.1 价格查询
约 1991 字大约 7 分钟
2025-11-03
注意
- 必须
- Klook 调用此接口查询供应商指定酒店、日期和入住信息下的实时报价
URL
接入方自行定义并提供给 Klook URL
入参
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
hotelList | List<String> | true | 接入方酒店 ID 列表 任务抓价时会存在多个酒店 List 最大 size 参考 2.2.2.5 线下提供及固定配置数据说明中的查价支持最大酒店请求数 |
checkIn | String | true | 入住时间,格式:yyyy-MM-dd |
checkOut | String | true | 离店时间,格式:yyyy-MM-dd |
roomCount | int | true | 房间数量 |
occupancy | Occupancy | true | 房间入住信息(单间入住信息) |
countryCode | String | true | 标准国家二字码 (如: HK, CN)用户IP国籍 |
language | String | true | 标准语言 Code (如:zh_CN, en_US)默认使用 en_US |
currency | String | true | 标准币种三字码 (如: HKD, CNY) |
platform | String | true | 请求来源平台枚举:website, mobile |
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": {
"hotelList": [
"26546159",
"123456"
],
"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"
}
}出参
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
hotelRoomRateList | List<HotelRoomRate> | true | 酒店报价列表 |
HotelRoomRate
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
hotelId | String | true | 接入方酒店 ID |
roomId | String | true | 接入方房型 ID |
roomName | String | false | 接入方房型名称 |
ratePlanId | String | true | 报价 Rate Plan ID 需在 supplierHotelId 级别全局唯一,否则会存在查价异常.非必要尽量不要带特殊字符 |
currency | String | true | 币种 需要和入参币种保持一致 |
availableRooms | Integer | false | 房间剩余库存若无法提供,Klook 会以查价入参中的房间数量作为剩余库存 |
roomDetailBedList | List<RoomDetailBed> | false | 房间详情床型列表若查价不返回床型信息,则 Klook 使用静态数据中房型对应的床型 |
cancelPolicyList | List<CancelPolicy> | false | 取消政策列表1:需按照起始时间start从小到大排列列表 2:为空代表不可取消 3:第一段start之前的时间段,Klook 侧会全部当成免费取消处理 4:即使完全免费取消也需给到1条带罚金的取消,可以参考check in当天罚100% |
maxAdultOccupancy | Integer | false | 房间最大入住成人数(单间房间)若未提供,则以查价入参的成人数为准 |
maxChildOccupancy | Integer | false | 房间最大入住儿童数(单间房间)若未提供,则以查价入参的儿童数为准 |
mealInfo | MealInfo | false | 餐食信息 若未给餐食,统一当成无餐食处理 |
totalPrice | TotalPrice | true | 总房间价(多间多晚) |
perRoomDailyPriceList | List<PerRoomDailyPrice> | true | 单房多晚报价(单房每日价格可能不一样)1:需按照日期date从小到大排序该价格需准确,Klook 所有价格处理优先基于此列表 2:只需给出1间房的每日价格明细即可,默认总价等于单间房乘以房间数 |
perRoomArrivalFeeList | List<ArrivalFee> | false | 到店税费(单间多晚)若存在到店需要支付的费用,则需要提供 |
perRoomFeeAndTaxList | List<FeeAndTax> | false | 税费明细-非到店(计算在总价里,单间多晚)单间税前总价 + perRoomFeeAndTaxList= 单间税后总价 |
benefitInfoList | List<BenefitInfo> | false | 接入方报价设施列表 |
promotionDetailList | List<PromotionDetail> | false | 促销详情列表 |
configData | String | false | 接入方查价返回自定义数据长度不超过64,Klook会将该参数带入验价请求入参 |
RoomDetailBed (房间床型详情)
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
roomName | String | false | 房间名称 |
roomDesc | String | false | 房间描述 |
bedList | List<List<BedStructure>> | true | 房间床型 (影响 mapping)第一层的 List 内部节点是**“或”**关系第二层 List 内部节点是“且”**关系(示例:(1张超大床和2张单床) 或(2张大床和3张单床)) |
BedStructure (床型结构)
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
bedId | String | true | 接入方床型类型 IDKlook会根据供应商字典supplierKey进行转换 (dataType = 11) |
bedName | String | false | 接入方床型名称 |
width | double | false | 床型宽度,单位米 (影响 mapping) |
length | double | false | 床型长度,单位米 (影响 mapping) |
quantity | int | true | 床数量 |
BenefitInfo
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
benefitCode | String | true | Benefit CodeKlook会根据供应商字典supplierKey进行转换 (dataType = 10) |
count | int | false | 数量 |
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: 按人数大于 0: 实际餐食份数为空或 -1 或 -100 时, Klook 侧会全部处理成餐食份数 = 人数 |
TotalPrice
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
amountBeforeTax | String | false | 税前价单位:元 |
amountAfterTax | String | true | 税后价单位:元 |
commission | String | false | 佣金若接入方能提供,则使用接入方的佣金,否则 Klook 按商户合作的设定自行计算 |
PerRoomDailyPrice
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
date | String | true | 日期,格式:yyyy-MM-dd |
amountBeforeTax | String | false | 税前价单位:元 |
amountAfterTax | String | true | 税后价单位:元 |
commission | String | false | 佣金若接入方能提供,则使用接入方的佣金,否则 Klook 按商户合作的佣金设定自行计算 |
ArrivalFee
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
typeCode | String | true | 供应商税费类型Klook会根据字典进行转换 (dataType = 17)Klook枚举: mandatory_fee,mandatory_tax, resort_fee, amenities_fee |
currency | String | false | 币种若不返回,则当成价格币种处理(请求商户币种) |
amount | String | true | 税费金额 |
frequencyUnit | String | false | 供应商税费单位Klook会根据供应商字典supplierKey进行转换 (dataType = 19)Klook枚举 per_personper_roomper_accommodationper_houseper_apartmentper_adultothersunknown |
scopeUnit | String | false | 供应商税费范围Klook会根据供应商字典supplierKey进行转换 (dataType = 18)Klook枚举 per_nightper_day per_stayper_weekround_tripone_wayunknown |
FeeAndTax
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
typeCode | String | true | 供应商税费类型Klook会根据供应商字典supplierKey进行转换 (dataType = 12)Klook枚举 sales_tax surcharge_or_adjustmenttotal_recovery_chargestax_and_service_feeextra_guest_feeproperty_feecompensationhotel_accommodation_tax |
amount | String | true | 税费金额 |
PromotionDetail
| 字段 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
description | String | false | 促销描述 若接入方促销 code 固定,此处可使用促销 code 代替促销描述返回,需实现促销描述字典 |
出参示例
示例
{
"success": true,
"error": {
"code": "",
"message": ""
},
"result": {
"hotelRoomRateList": [
{
"hotelId": "26546159",
"roomId": "104841831",
"roomName": "海景双床房",
"ratePlanId": "1432185081",
"currency": "CNY",
"availableRooms": 5,
"roomDetailBedList": [
{
"roomName": "大床房",
"roomDesc": "大床房多张床",
"bedList": [
[
{
"bedId": "0",
"bedName": "big bed name",
"width": 1.2,
"length": 2.2,
"quantity": 2
}
]
]
},
{
"roomName": "双床房",
"roomDesc": "双床房多张床",
"bedList": [
[
{
"bedId": "0",
"bedName": "double bed name",
"width": 1.2,
"length": 2.5,
"quantity": 3
}
]
]
}
],
"cancelPolicyList": [
{
"amount": "449.10",
"start": "2022-11-25T12:00:00.000+08:00",
"end": "2025-08-20T00:00:00.000+08:00"
}
],
"maxAdultOccupancy": 6,
"maxChildOccupancy": 2,
"mealInfo": {
"mealCode": "4",
"mealCount": 1
},
"totalPrice": {
"amountBeforeTax": "45",
"amountAfterTax": "50",
"commission": "0.55"
},
"perRoomDailyPriceList": [
{
"date": "2025-10-01",
"amountBeforeTax": "21.22",
"amountAfterTax": "25",
"commission": "0.55"
}
],
"perRoomArrivalFeeList": [
{
"typeCode": "mandatory_fee",
"currency": "HKD",
"amount": "8",
"frequencyUnit": "per_night",
"scopeUnit": "per_person"
}
],
"perRoomFeeAndTaxList": [
{
"typeCode": "sales_tax",
"amount": "20.26"
}
],
"benefitInfoList": [
{
"benefitCode": "Free gift",
"count": 1
}
],
"promotionDetailList": [
{
"description": "夏日优惠"
}
],
"configData": "AAAABBBBCCCCCBDDDDBBDDDD"
}
]
}
}