试单

试单会校验商品价格、房间数量、销售条款、支付类型,校验失败时会返回正确的价格、销售条款、剩余的房量,成功仅返回响应code(10000)。试单成功,下单不一定成功,下单会根据实际的ARI进行最后确认

试单独立于下单之外:利于监测酒店商品及价格库存数据同步的及时性,持续关注该接口的成功率有助于提升分销商侧用户的体验

请求方式#

POST

uri: /reservation/prebook

Content-Type: application/json


请求参数说明#

RequestHeader#

公共请求头[引用]

RequestBody#

参数类型是否必填最大长度示例描述
hotelIdStringY3212**567华住酒店ID
checkinTypeStringY16DAY入住类型,区分大小写,取值参考枚举
reservationsList<PreBookReservationInfo>Y-房单信息,暂只支持单酒店,单产品的预订,集合只需传1个
paymentTypeStringY16枚举值:
参考枚举
paymentCardPaymentCardN-担保信用卡信息

PreBookReservationInfo#

参数类型是否必填最大长度示例描述
roomTypeCodeStringY64DR1房型Code
rateCodeStringY64Base-NTR房价码
checkinDateY-2021-10-01入住日期,格式 yyyy-MM-dd
checkoutDateY-2021-10-02离店日期,格式 yyyy-MM-dd,传价格不包含离店日,时租入离同一天
amountAfterTaxList<BigDecimal>Y-[ 100, 130]含税价,规则同 amountBeforeTax
amountBeforeTaxList<BigDecimal>N-[ 100, 120]不含税价,根据 stayRange.checkin 至 stayRange.checkout 逐天依次排列,不包含 checkout
eg: [101.00,102.00] 代表 checkin 当天价格为101,checkin + 1天的价格为 102
currencyCodeStringY8CNY价格对应的币种,参考国际标准: ISO-4217
roomCountIntegerY-2房间数量,最多预订3间
adultCountIntegerY-1每间房成人数,人数限制依赖酒店详情对应的人数
childCountIntegerN-2每间房儿童数,人数限制依赖酒店详情对应的人数
childAgesList<Integer>N-长度为2的list儿童年龄段,长度需与儿童数量保持一致
hourlyRoomHourlyRoomN-时租房信息

PaymentCard#

参数类型是否必填最大长度示例描述
cardTypeStringY16VCC卡类型: MA MC VI VCC
cardHolderNameStringY64持卡人姓名
cardNumberStringY32卡号
expireDateStringY32过期时间(月2个数字,年2个数字), 格式: MMYY

HourlyRoom#

参数类型是否必填最大长度示例描述
hourlyRateStartTimeStringN509:00时租计费开始时间,格式 HH:mm
hourlyRateEndTimeStringN513:00时租计费结束时间,格式 HH:mm

响应参数说明#

公共响应参数[引用]

响应码-code[引用]

content#

参数类型是否必填最大长度示例描述
hotelIdStringY3212**567华住酒店ID
preBookTokenStringN647132E7B17A219A4CCAAF86CD0D9EF1F1试单成功凭证,试单成功才返回,下单可传入
reservationsAriList<ReservationAri>Y-房价、库存、销售条款信息

ReservationAri#

参数类型是否必填最大长度示例描述
checkinStringY-2021-10-01入住日期,格式 yyyy-MM-dd
checkoutStringY-2021-10-02离店日期,格式 yyyy-MM-dd (查询出的ARI不包含这一天,时租入离同一天取入住日期),一次最大支持入离间隔60天的订单,即checkout-checkin=60
roomTypeCodeStringY64DR1房型Code
rateCodeStringY64Base-NTR房价码Code
currencyCodeStringY8CNY价格对应的币种
mealPlanTypeStringY8餐饮类型
mealPlanCountsList<Integer>Y-对应餐饮类型每天数量
inventoriesList<Integer>Y-从checkin至checkout,不包含endDate,每日剩于房量
ratesList<RateInfo>Y不包含endDate,每日房价信息
restrictionRestrictionInfoY限制条款信息
guaranteePoliciesList<GuaranteePolicy >Y包含endDate,担保政策,按照预订入住日规则为准
cancelPoliciesList<CancelPolicy >Y包含endDate,取消政策,按照预订入住日规则为准

GuaranteePolicy#

参数类型是否必填最大长度示例描述
codeStringY16担保code,取值参考枚举

CancelPolicy#

参数类型是否必填最大长度示例描述
codeStringY16取消策略code,取值参考枚举

RateInfo#

参数类型是否必填最大长度示例描述
rackRateList<BigDecimal>N-[ 110, 130]门市价
amountBeforeTaxList<BigDecimal>N-[ 100, 120]不含税价
amountAfterTaxList<BigDecimal>Y-[ 100, 130]含税价
maxAdultCountIntegerY-1最大成人数,小于等于maxAdultCount的价格与此节点对应
maxChildCountIntegerN-2最大儿童数,为null表示不限制
childAgesList<Integer>N-长度为2的list儿童年龄段,长度需与最大儿童数量保持一致,为null表示不限制

RestrictionInfo#

参考说明示例:销售条款示例

参数类型是否必填最大长度示例描述
closeList<Boolean>Y-每日关房状态,true:关房, false:未关房
minStayArrivalList<Integer>Y-每日最小连住天数,针对订单入住首日生效,元素为null表示不限制
maxStayArrivalList<Integer>Y-每日最大连住天数,针对订单入住首日生效,元素为null表示不限制
minStayThroughList<Integer>Y-每日穿过最小连住天数,针对订单经过那天生效,元素为null表示不限制
maxStayThroughList<Integer>Y-每日穿过最大连住天数,针对订单经过那天生效,元素为null表示不限制
minAdvanceDayList<Integer>Y-每日最小提前预订天数,针对订单入住首日生效,元素为null表示不限制
maxAdvanceDayList<Integer>Y-每日最大提前预订天数,针对订单入住首日生效,元素为null表示不限制
ctaList<Boolean>Y-每日是否可到达Close To Arrival (CTA),针对订单入住首日生效,true:生效; false:不生效,即不限制,元素为null表示不限制
ctdList<Boolean>Y-每日是否可离店Close To Departure (CTD),针对订单离店日生效,true:生效; false:不生效,即不限制,元素为null表示不限制
fplosList<String>Y-每日全程连住天数限制Full Patten LOS,每日设置最长31位,元素为null或空字符串表示不限制

响应码#

异常码异常类型说明
1000Success
5101Checkin and checkout does not match the rules入住离店日期不符合规则
5102End date is invalid离店日无效
5103Start date is invalid入住日无效
5104Invalid hotel Id酒店Id不存在
5105Hotel is closed酒店停业
5106Invalid currency code不支持的币种
5107Too far in advance提前预订天数过大
5108Price incorrect for room房价校验失败
5109No rooms available for requested dates预订日期房间数量不足
5110Invalid number of rooms, exceed max number of room count预订房间数超过最大限制
5111Invalid number of adults, exceed max number of adult count成人数超过最大限制
5112Invalid rate code for requested hotel请求的酒店无此房价码
5113Invalid room type for requested hotel请求的酒店无此房型
5114Payment type invalid支付类型错误
5115Credit card number is invalid不支持的信用卡
5116Reservation requires credit card data需要信用卡信息才可预订
5117Invalid guarantee policy code校验担保政策失败,具体信息参考响应描述:responseDes
5118Invalid cancel policy code校验取消政策失败,具体信息参考响应描述:responseDes
5119Invalid product for requested hotel酒店商品校验失败
5120Restriction verification failed销售条款校验失败,具体信息参考响应描述:responseDes
5121Parent-child room check failed亲子房校验失败,不支持
5122Reservation status invalid预订状态错误,具体信息参考响应描述:responseDes
其他全局异常码全局异常[引用]

报文示例#

Case1: 单一产品校验#

请求示例#

{
"hotelId":"12**567",
"checkinType": "DAY",
"paymentType":"OPN",
"reservations":[
{
"checkin":"2021-07-08",
"checkout":"2021-07-10",
"roomCount":1,
"adultCount":2,
"amountAfterTax":[
560,
560
],
"rackRate":[
559,
549
],
"amountBeforeTax":[
559,
549
],
"currencyCode":"CNY",
"rateCode":"B15A14NBF",
"roomTypeCode":"SQ1"
}
]
}

校验成功示例#

{
"code":1000,
"content":{
"hotelId":"12**567",
"preBookToken": "7132E7B17A219A4CCAAF86CD0D9EF1F1",
"reservationsAri":[
{
"checkin":"2021-10-06",
"checkout":"2021-10-08",
"roomTypeCode":"K1B",
"rateCode":"Base-ODC401",
"currencyCode":"CNY",
"rates":[
{
"maxAdultCount":2,
"amountAfterTax":[
328,
328
],
"amountBeforeTax":[
309,
309
],
"childCount":0
}
],
"inventories":[
0,
2
],
"mealPlanType":"BB",
"mealPlanCounts":[
1,
1
],
"guaranteePolicies":[
{
"code":"PL"
},
{
"code":"PN"
}
],
"cancelPolicies":[
{
"code":"AD0_0"
},
{
"code":"AD100_6PM0D1N_1N"
}
],
"restriction":{
"close":[
false,
false
],
"cta":[
false,
false
],
"ctd":[
false,
false
],
"maxAdvanceDay":[
999,
999
],
"maxStayArrival":[
999,
999
],
"maxStayThrough":[
0,
0
],
"minAdvanceDay":[
3,
3
],
"minStayArrival":[
5,
5
],
"minStayThrough":[
0,
0
],
"fplos": [
"0000000",
"1110111"
]
}
}
]
}
}

校验失败示例#

{
"code":5108,
"message":"Price incorrect for room",
"content":{
"hotelId":"12**567",
"reservationsAri":[
{
"checkin":"2021-10-06",
"checkout":"2021-10-08",
"roomTypeCode":"K1B",
"rateCode":"Base-ODC401",
"currencyCode":"CNY",
"rates":[
{
"maxAdultCount":2,
"amountAfterTax":[
328,
328
],
"amountBeforeTax":[
309,
309
],
"childCount":0
}
],
"inventories":[
0,
2
],
"mealPlanType":"BB",
"mealPlanCounts":[
1,
1
],
"guaranteePolicies":[
{
"code":"PL"
},
{
"code":"PN"
}
],
"cancelPolicies":[
{
"code":"AD0_0"
},
{
"code":"AD100_6PM0D1N_1N"
}
],
"restriction":{
"close":[
false,
false
],
"cta":[
false,
false
],
"ctd":[
false,
false
],
"maxAdvanceDay":[
999,
999
],
"maxStayArrival":[
999,
999
],
"maxStayThrough":[
0,
0
],
"minAdvanceDay":[
3,
3
],
"minStayArrival":[
5,
5
],
"minStayThrough":[
0,
0
],
"fplos": [
"0000000",
"1110111"
]
}
}
]
}
}