Skip to main content

试单

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

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

请求方式#

POST

uri: /reservation/prebook

Content-Type: application/json


请求参数说明#

RequestHeader#

公共请求头[引用]

RequestBody#

参数类型是否必填最大长度示例描述
hotelIdStringY3212**567华住酒店ID
checkinTypeStringY16DAY入住类型,区分大小写,取值参考枚举
mobileStringY1615612341234订单用户手机号:非会员会进行会员注册
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
guaranteePolicyCodeStringY32担保政策code,传则会校验此参数,取值参考枚举
cancelPolicyCodeStringY64取消政策code,传则会校验此参数,取值参考code规则
roomCountIntegerY-2房间数量,最多预订3间
adultCountIntegerY-1每间房成人数,人数限制依赖酒店详情对应的人数
childCountIntegerN-2每间房儿童数,人数限制依赖酒店详情对应的人数
childAgesList<Integer>N-长度为2的list儿童年龄段,长度需与儿童数量保持一致

PaymentCard#

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

响应参数说明#

公共响应参数[引用]

响应码-code[引用]

content#

参数类型是否必填最大长度示例描述
hotelIdStringY3212**567华住酒店ID
reservationsAriList<ReservationAri>Y-房价、库存、销售条款信息

ReservationAri#

参数类型是否必填最大长度示例描述
checkinStringY-2021-10-01入住日期,格式 yyyy-MM-dd
checkoutStringY-2021-10-02离店日期,格式 yyyy-MM-dd (查询出的ARI不包含这一天)
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-每日最小连住天数,针对订单入住首日生效,0表示当天,元素为null表示不限制
maxStayArrivalList<Integer>Y-每日最大连住天数,针对订单入住首日生效,0表示当天,元素为null表示不限制
minStayThroughList<Integer>Y-每日穿过最小连住天数,针对订单经过那天生效,0表示当天,元素为null表示不限制
maxStayThroughList<Integer>Y-每日穿过最大连住天数,针对订单经过那天生效,0表示当天,元素为null表示不限制
minAdvanceDayList<Integer>Y-每日最小提前预订天数,针对订单入住首日生效,0表示当天,元素为null表示不限制
maxAdvanceDayList<Integer>Y-每日最大提前预订天数,针对订单入住首日生效,0表示当天,元素为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
其他全局异常码全局异常[引用]

报文示例#

Case1: 单一产品校验#

请求示例#

{    "hotelId":"12**567",    "checkinType": "DAY",    "paymentType":"OPN",    "reservations":[      {          "checkin":"2021-07-08",          "checkout":"2021-07-10",          "roomCount":1,          "maxAdultCount":2,          "amountAfterTax":[            560,            560          ],          "amountAfterTax":[              549,              549          ],          "currencyCode":"CNY",          "rateCode":"B15A14NBF",          "roomTypeCode":"SQ1",          "guaranteePolicyCode": "PN",          "cancelPolicyCode": "AD0_0"      }       ]}

校验成功示例#

{    "code":1000}

校验失败示例#

{    "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":[                    {                        "adultCount":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"                    ]                }            }        ]    }}