Skip to main content

订单相关接口

预订单状态变更推送(回调接口)

说明:

B2B渠道订单状态发生变化后,实时推送订单状态。回调接口响应时长不能超过1秒。如果逻辑处理耗时较多,建议异步处理。随着接口升级有可能会增加字段,请注意兼容

对接预订单状态变更推送服务,企业需提供通知接口,通知接口标准参数定义见下:

  • 请求方式:POST

HttpHeaders增加参数验证:

time:取系统当前时间,格式:yyyy-MM-dd HH:mm:ss

sign:客户的Secret + time,MD5加密

客户接收数据时,自行验签:拿到请求头中的time和自己公司的Secret,MD5加密,生成sign1,比较sign和sign1

sign1 = MD5Utils.encodeMD5(String.format("%s%s", 客户的Secret, time));

注:接口仅用于接收数据,不要做任何逻辑处理,另写一个服务去处理数据,响应时长不能超过3s,随着接口升级有可能会增加字段,需要兼容

sign1 = MD5Utils.encodeMD5(String.format("%s%s", 客户的Secret, time));
  • 入参说明:
参数名参数类型备注
orderIdString订单号
hotelIdString酒店ID
businessTypeString业务模式
CASH:现付,例如:到门店付
COMPANY_ADVANCE:企业预付,例如:支付宝立即扣、中航结立即扣
CREDIT:信用,例如:担保金月结,担保金离店T+N扣款
outerRefIdStringOA关联号
bookStatusString订单状态
P:处理中(中间态)
R:预订成功
E:完成
X:取消
pmsAdapterOrderStatusString实际订单状态
R:预订成功
I:入住
O:离店
N:NoShow
E:完成
X:取消
cardIdString卡号
bookerIdString预订卡号(如果是tmc客户就是托管卡)
  • 出参说明:
参数名参数类型备注
codeString响应码 200 成功,其他为失败
messageString响应消息
{
"pmsAdapterOrderStatus": "X",
"bookStatus": "X",
"bookerId": "VCENTCRM1016431303",
"businessType": "CREDIT",
"cardId": "VCENTCRM1016431303",
"hotelId": "2000014",
"orderId": "R2000014071677475021",
"outerRefId": "0000000"
}

注:若通知接口返回code不是200,B2B会重复推送,重复推送最多10次。

预订单信息推送企业(回调接口)

注意:

  • 如果华住推送的订单在客户自有系统中不存在,建议在客户系统中补录订单或发起取消,以免造成差异。有问题请及时联系华住相关人员配合处理。

说明:

B2B渠道客户预订成功后,实时推送预订单信息。回调接口响应时长不能超过1秒。如果逻辑处理耗时较多,建议异步处理。随着接口升级有可能会增加字段,请注意兼容

对接预订单信息,企业需提供通知接口,通知接口标准参数定义见下:

请求方式:POST

HttpHeaders增加参数验证:

time:取系统当前时间,格式:yyyy-MM-dd HH:mm:ss

sign:客户的Secret + time,MD5加密

客户接收数据时,自行验签:拿到请求头中的time和自己公司的Secret,MD5加密,生成sign1,比较sign和sign1

sign1 = MD5Utils.encodeMD5(String.format("%s%s", 客户的Secret, time));

注:接口仅用于接收数据,不要做任何逻辑处理,另写一个服务去处理数据,响应时长不能超过3s,随着接口升级有可能会增加字段,需要兼容

请求参数说明:
参数名参数类型备注
orderIdString订单号
hotelIdString酒店ID
businessTypeString业务模式
1:现付,例如:到门店付
2:企业预付,例如:支付宝立即扣、中航结立即扣
4:信用,例如:担保金月结,担保金离店T+N扣款
outerRefIdStringOA关联号
bookStatusString订单状态
P:处理中(中间态)
R:预订成功
E:完成
X:取消
pmsOrderAdapterStatusString实际订单状态
R:预订成功
I:入住
O:离店
N:NoShow
E:完成
X:取消
cardIdString卡号
bookerIdString预订卡号
orgNameString酒店名称
orgCityIdString城市ID
orgCityNameString城市名称
orgAddressString酒店地址
roomTypeIdNameString房型名称
checkInDateDate入住日期 格式:时间戳
checkOutDateDate离店日期 格式:时间戳
bookerPriceTypeString预订价格类型:0 个人,1 企业
roomCountInteger房间数
bookerPersonIdString预订人员工编号
totalPriceBigDecimal预订单价格(整单)
isInternationalInteger国内国际类型: 0 国内,1 国际
travelTypeString出行方式:因公 COMPANY,因私 PERSON
createTimeDate创建时间 格式:时间戳
personPayDateDate支付时间 格式:时间戳
costCenterList<String>成本中心
linkNameString联系人姓名
linkMobileString联系人手机号
linkPersonIdString联系人员工编号
dailyPriceListsList<DailyPriceDTO>每日房价信息

DailyPriceDTO:

参数名参数类型备注
roomTypeIdString房型
bizDateString营业日 格式:时间戳
currencyCodeDate币种
marketPriceBigDecimal门市价
marketCnyPriceBigDecimal人民币门市价(含税价)
beforeTaxPriceBigDecimal税前价(净价)
beforeTaxCnyPriceBigDecimal人民币税前价(净价)
afterTaxPriceBigDecimal税后价(含税价)
afterTaxCnyPriceBigDecimal人民币税后价(含税价)
companyToGroupPriceBigDecimal公司总对总价(含税价+税点差价)
companyToGroupCnyPriceBigDecimal人民币公司总对总价(含税价+税点差价)

请求示例:

{
"bookStatus": "X",
"bookerId": "VCENTCRM1032595964",
"bookerPriceType": "1",
"businessType": 4,
"cardId": "VCENTCRM1032595964",
"checkInDate": 1716307200000,
"checkOutDate": 1716393600000,
"createTime": 1716375653000,
"dailyPriceLists": [
{
"afterTaxCnyPrice": 1838.44,
"afterTaxPrice": 234.00,
"beforeTaxCnyPrice": 1718.16,
"beforeTaxPrice": 218.69,
"bizDate": 1716307200000,
"companyToGroupCnyPrice": 1961.98,
"companyToGroupPrice": 249.72,
"currencyCode": "EUR",
"marketCnyPrice": 1838.44,
"marketPrice": 234.00
}
],
"hotelId": "9007366",
"isInternational": 1,
"linkMobile": "18357319905",
"linkName": "keqi Zhao",
"costCenter": [
"张三",
"李四"
],
"orderId": "900736600401551",
"orgCityId": "BER",
"orgCityName": "柏林",
"orgName": "3.0交叉销售测试酒店",
"outerRefId": "370244477",
"roomCount": 1,
"roomTypeIdName": "SU1",
"totalPrice": 1838.44,
"travelType": "COMPANY"
}
返回参数说明:
参数名参数类型备注
codeString响应码 200 成功,其他为失败
messageString响应消息

注:若通知接口返回code不是200,B2B会重复推送,重复推送最多10次

企业接待单推送(回调接口)

  • 说明:

B2B渠道订单退房后,预订单离店日+1天推送信接待单息。回调接口响应时长不能超过1秒。如果逻辑处理耗时较多,建议异步处理。随着接口升级有可能会增加字段,请注意兼容

对接订单接待信息推送服务,企业需提供通知接口,通知接口标准参数定义见下:

  • 请求方式:POST

HttpHeaders增加参数验证:

time:取系统当前时间,格式:yyyy-MM-dd HH:mm:ss

sign:客户的Secret + time,MD5加密

客户接收数据时,自行验签:拿到请求头中的time和自己公司的Secret,MD5加密,生成sign1,比较sign和sign1

sign1 = MD5Utils.encodeMD5(String.format("%s%s", 客户的Secret, time));

注:接口仅用于接收数据,不要做任何逻辑处理,另写一个服务去处理数据,响应时长不能超过3s,随着接口升级有可能会增加字段,需要兼容

sign1 = MD5Utils.encodeMD5(String.format("%s%s", 客户的Secret, time));
  • 入参说明:
参数名参数类型备注
bookRoomIdlong主键(按订单一个房间1条)
outerRefIdstring第三方订单号
employeeIdString预订人员工编号
linkEmployeeIdString联系人员工编号(暂只针对部分客户开放)
linkNameString联系人姓名
companyNamestring公司名称
cardIdstring公司卡
guaranteeModestring支持的担保模式
NONE:无
FIRST_NIGHT:首晚担保
FULL_AMOUNT:全额担保
1、到付和预付区别
a、guaranteeMode是NONE,则支持到店付或者预付
b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付
2、担保模式使用
a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式)
b、活动价按照房价码担保模式(注:活动价下单时,验价及下单接口必须要传 activityId,否则会视为会员价),判断BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码)
3、现付客户不能使用活动价注意事项
由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。
brandNamestring品牌名称
cityNamestring城市名称
hotelIdstring酒店ID
hotelNamestring酒店名称
orderIdstring订单ID
checkInDateDate入住日期 格式:yyyy-MM-dd
checkOutDateDate离店日期 格式:yyyy-MM-dd
roomCountint房间数
daysint间夜数(暂不推送)
bookStatusstring订单状态
P:处理中(中间态)
R:预订成功
E:完成
X:取消
totalPricedecimal预订单价格(整单)
checkInNamestring入住人姓名
roomTypeIdstring房型
realCheckInDatedate实际入住日期 格式:yyyy-MM-dd HH:mm:ss
realCheckOutDatedate实际离店日期 格式:yyyy-MM-dd HH:mm:ss
realCheckInAmountdecimal当前房间的不含税点差的房费(房间)
realCheckInStatusstring实际入住状态
R:预订成功
X:取消
I:入住
O:离店
N:NoShow
S:临时挂账
realCheckInStatusNamestring入住状态说明
taxpayerTypestring纳税人性质
NONE:无,未知
GENERAL:一般纳税人
COMMON:小规模纳税人
invoiceTypestring发票性质
SPECIAL:专票
GENERAL:普票
taxDiffAmountdecimal税点差额(整单)
settleShiftTaxDiffAmountdecimal结算金额不含税点差额(整单)
settleContainTaxDiffAmountdecimal结算金额含税点差额(整单)
remarkstring备注
{
"bookRoomId": 673067597935149056,
"bookStatus": "R",
"brandId": "0002",
"brandName": "汉庭",
"cardId": "VCENTCRM1016431303",
"checkInDate": "2024-12-16",
"checkOutDate": "2024-12-18",
"cityId": "310100",
"cityName": "上海",
"companyConfirmStatus": "PENDING",
"companyName": "海康",
"confirmAmount": 0.00,
"employeeId": "hz00231",
"guaranteeMode": "NONE",
"hotelId": "2000014",
"hotelName": "汉庭上海人民广场酒店",
"invoiceType": "SPECIAL",
"isConfirm": false,
"linkEmployeeId": "hz00231",
"linkName": "张三",
"orderId": "R2000014071000733001",
"outerRefId": "0000000",
"realCheckInAdapterStatus": "O",
"realCheckInAmount": 247.00,
"realCheckInDate": "2024-12-16 18:20:32",
"realCheckInStatus": "O",
"realCheckOutDate": "2024-12-18 10:20:11",
"refundAmount": 0.00,
"roomCount": 1,
"roomTypeId": "DRX1",
"roomTypeName": "大床房A",
"settleContainTaxDiffAmount": 247.00,
"settleShiftTaxDiffAmount": 247.00,
"taxDiffAmount": 0.00,
"taxpayerType": "GENERAL",
"totalPrice": 247.00
}
  • 出参说明:
参数名参数类型备注
codeString响应码 200 成功,其他为失败
messageString响应消息

注:若通知接口返回code不是200,B2B会重复推送,重复推送最多10次

个人接待信息推送企业(回调接口)

注意:

  • 如果华住推送的订单在客户自有系统中不存在,建议在客户系统中补录订单或发起取消,以免造成差异。有问题请及时联系华住相关人员配合处理。

说明:

B2B渠道订单退房后,预订单离店日+1天推送接待单信息。回调接口响应时长不能超过1秒。如果逻辑处理耗时较多,建议异步处理。随着接口升级有可能会增加字段,请注意兼容

对接订单接待信息推送服务,企业需提供通知接口,通知接口标准参数定义见下:

请求方式:POST

HttpHeaders增加参数验证:

time:取系统当前时间,格式:yyyy-MM-dd HH:mm:ss

注:接口仅用于接收数据,不要做任何逻辑处理,另写一个服务去处理数据,响应时长不能超过3s,随着接口升级有可能会增加字段,需要兼容

请求参数说明:
参数名参数类型备注
bookRoomIdLong主键(按订单一个房间1条)
orderMonthDate账期
cardIdString企业卡号(ID)
bookerIdString预订公司卡(ID)
orderIdString预订订单号
guaranteeModeString支持的担保模式
NONE:无
FIRST_NIGHT:首晚担保
FULL_AMOUNT:全额担保
1、到付和预付区别
a、guaranteeMode是NONE,则支持到店付或者预付
b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付
2、担保模式使用
a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式)
b、活动价按照房价码担保模式(注:活动价下单时,验价及下单接口必须要传 activityId,否则会视为会员价),判断BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码)
3、现付客户不能使用活动价注意事项
由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。
brandIdString品牌ID
brandNameString品牌名称
hotelIdString酒店ID
hotelNameString酒店名称
checkInDateDate预订单入住日期 格式:时间戳
checkOutDateDate预订单离店日期 格式:时间戳
roomCountInt房间数
nightInt订单间夜
bookStatusString预订单状态
P:处理中(中间态)
R:预订成功
E:完成
X:取消
totalPriceDecimal预订单价格(整单)
linkNameString联系人姓名
linkEmployeeIdString联系人员工编号
roomTypeIdString房型
taxpayerTypeString纳税人性质
NONE:无,未知
GENERAL:一般纳税人
employeeIdString预订人员工编号
outerRefIdString外部关联ID
realCheckInDateDate实际入住时间 格式:时间戳
realCheckOutDateDate实际离店时间 格式:时间戳
realCheckInAmountDecimal当前房间的不含税点差的房费(房间)
realCheckInTotalAmountDecimal当前房间的不含税点差的房费(整单)
invoiceTypeString发票性质
SPECIAL:专票
GENERAL:普票
remarkString备注

请求示例:

{
"bookRoomId": 673067597935149056,
"orderMonth": "2024-06-01",
"cardId": "VCENTCRM1016431303",
"bookerId": "VCENTCRM1016431303",
"orderId": "R2000014071000733001",
"guaranteeMode": "NONE",
"brandId": "0002",
"brandName": "汉庭",
"hotelId": "2000014",
"hotelName": "汉庭上海人民广场酒店",
"checkInDate": 1638201600000,
"checkOutDate": 1638288000000,
"roomCount": 1,
"night": 1,
"employeeId": "hz00231",
"bookStatus": "R",
"totalPrice": 247.00,
"linkEmployeeId": "hz00231",
"linkName": "张三",
"roomTypeId": "DRX1",
"taxpayerType": "GENERAL",
"outerRefId": "TXC0001",
"realCheckInDate": 1638268465000,
"realCheckOutDate": 1638268572000,
"realCheckInAmount": 247.00,
"realCheckInTotalAmount": 247.00,
"invoiceType": "SPECIAL",
"remark": "SPECIAL"
}
返回参数说明:
参数名参数类型备注
codeString响应码 200 成功,其他为失败
messageString响应消息

注:若通知接口返回code不是200,B2B会重复推送,重复推送最多10次。

企业查询账单信息

测试接口地址:https://test-hb2b.huazhu.com/bill/searchBillListByCompany

生产接口地址:https://hb2b.huazhu.com/bill/searchBillListByCompany

请求方式:POST

请求参数说明:

参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM1016431348
cardPassWordString公司卡授权码123321a
orderMonthDate结算月份2020-05-01
pageIndexInt当前页1
pageCountInt每页数量10

请求示例:

{
"orderMonth": "2020-05-01",
"cardId": "VCENTCRM1016431348",
"cardPassWord": "123321a",
"pageIndex": 1,
"pageCount": 10
}

返回参数说明:

参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentSearchAccountStatementResponse账单信息

SearchAccountStatementResponse:

参数名参数类型备注
pageIndexInt当前页
pageCountInt每页数量
totalPagesInt总页数
totalRowsInt总页数
rowsList<BillInfo>总页数

BillInfo:

参数名参数类型备注
outerRefIdStringOA号
cardIdString企业卡号(ID)
companyNameString企业名称
guaranteeModeString支持的担保模式
NONE:无
FIRST_NIGHT:首晚担保
FULL_AMOUNT:全额担保
1、到付和预付区别
a、guaranteeMode是NONE,则支持到店付或者预付
b、guaranteeMode是FIRST_NIGHT或者FULL_AMOUNT,则必须预付
2、担保模式使用
a、企业协议价按照企业卡的担保模式(运营开卡时确认的担保模式)
b、活动价按照房价码担保模式(注:活动价下单时,验价及下单接口必须要传 activityId,否则会视为会员价),判断BookDTO中的guaranteeMode(担保模式)(房量房价接口中activityId不为空就是活动房价码)
3、现付客户不能使用活动价注意事项
由于活动价的担保模式都是需预付,导致因公现付或者因私订单,下单后会在5分钟内自动取消。所以建议因公现付客户或者因私订单不要使用活动价,而是使用企业协议价下单。
brandNameString品牌名称
cityNameString城市名称
hotelIdString酒店ID
hotelNameString酒店名称
orderIdString预订订单号
checkInDateDate预订单入住日期 格式:yyyy-MM-dd HH:mm:ss
checkOutDateDate预订单离店日期 格式:yyyy-MM-dd HH:mm:ss
daysInt天数
bookStatusString预订单状态
P:处理中(中间态)
R:预订成功
E:完成
X:取消
totalPriceDecimal预订单价格(整单)
taxpayerTypeString门店类型
invoiceTypeString发票类型
taxDiffAmountDecimal税点差额(整单)
settleShiftTaxDiffAmountDecimal结算金额不含税点差额(整单)
settleContainTaxDiffAmountDecimal结算金额含税点差额(整单)
realCheckInStatusString实际入住状态
R:预订成功
X:取消
I:入住
O:离店
N:NoShow
S:临时挂账
checkInNameString入住人
realCheckInDateDate实际入住时间 格式:yyyy-MM-dd HH:mm:ss
realCheckOutDateDate实际离店时间 格式:yyyy-MM-dd HH:mm:ss
realCheckInAmountDecimal当前房间的不含税点差的房费(房间)
isConfirmBool是否已确认
confirmAmountDecimal确认金额
remarkString备注

返回示例:

{
"code": "200",
"message": "成功!",
"content": {
"pageIndex": 1,
"pageCount": 100,
"totalPages": 1,
"totalRows": 4,
"rows": [
{
"outerRefId": "HD2000014019242948001",
"cardId": "VCENTCRM1016431348",
"companyName": "测试公司",
"guaranteeMode": "FIRST_NIGHT",
"brandName": "汉庭",
"cityName": null,
"hotelId": "2000014",
"hotelName": "汉庭上海人民广场酒店",
"orderId": "R2000014019242948001",
"checkInDate": "2020-04-10 00:00:00",
"checkOutDate": "2020-04-12 00:00:00",
"days": null,
"bookStatus": "RESERVE",
"totalPrice": 662.0,
"taxpayerType": "GENERAL",
"invoiceType": "SPECIAL",
"taxDiffAmount": 0.0,
"settleShiftTaxDiffAmount": 662.0,
"settleContainTaxDiffAmount": 662.0,
"realCheckInStatus": "N",
"checkInName": "总对总测试数据",
"realCheckInDate": "2020-04-10 18:00:00",
"realCheckOutDate": "2020-04-12 10:00:00",
"realCheckInAmount": 662.0,
"isConfirm": false,
"confirmAmount": 0.0,
"remark": null
}
]
}
}