退改签申请接口
(华住商旅退改签申请接口对接前,请先联系商务开通接口权限)
新建超时取消/提前离店申请单
功能描述:(1)处于特殊情况下的订单取消,创建超时取消单,只能申请未入住订单。
(2)已入住未离店订单的提前离店,创建提前离店申请单,只能申请已入住未离店且预订单只预订一间房的订单
(3)提前离店只支持企业总对总订单,不支持现付订单
接口地址:order/discrepantReservationCancel
请求方式:POST
请求参数说明:
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| cardId | String | 客户卡号 | Y |
| cardPassWord | String | 客户验证码 | Y |
| orderId | String | 华住订单号 | Y |
| applyReason | String | 需使用中文描述提交差异申请原因 | Y |
| applyType | String | 申请类型 CANCEL 申请取消 EARLY_DEPARTURE 申请提前离店 默认为 CANCEL 申请取消 |
N |
| adjustCheckOutDate | Date | 申请提前离店日期 日期格式:yyyy-MM-dd 如果申请类型为“申请提前离店”
则这个字段必填 1、申请离店需要在实际入住日期和实际离店日期之间;离店日最后一天不可申请提前离店 2、提前离店场景当天在线最晚申请时间为:企业卡会员级别对应的当日离店时间前30分钟,级别情况如下: 企业金/企业铂金是13点30分。 企业银会员/企业玫瑰金是12点30分, 非托管卡(TMC客户使用卡)是11点30分。 注:如门店30分钟不回复默认拒绝(PS: 申请原因必传,一般使用中文,描述越准确门店审批效率越高),华住系统同意后不支持修改 |
N |
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"orderId": "R2000311106135470001",
"applyReason": "出行目的地有变化,申请提前离店!",
"applyType":"CANCEL",
"adjustCheckOutDate":"2024-07-19"
}
返回参数说明:
| 参数名 | 参数类型 | 备注 |
|---|---|---|
| code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 3024:订单已取消 4015:离店日期不正确 6201:Reservation not found:订单不存在 6202:Invalid reservation status:订单状态异常 6203:Invalid discrepant reservation status:差异单状态异常 6204:Discrepant reservation not support:渠道不支持差异单 6205:Invalid reservation for distributorId:订单不属于该渠道 10502:订单状态为HOTEL_ROOM_CHECK_OUT,无法修改 10508:ds service error:调用gds推送服务失败 |
| message | String | 响应消息 |
| content | DiscrepantReservationCancelResponseDTO | DiscrepantReservationCancelResponseDTO |
DiscrepantReservationCancelResponseDTO:
| 参数 | 类型 | 描述 |
|---|---|---|
| orderId | String | 订单号 |
| discrepancyNo | String | 差异单单号 |
| requestNo | String | 下单请求号 |
返回示例:
{
"code": 200,
"content": {
"discrepancyNo": "bdf045dd1a4344e5a7e829c1e1e87064",
"orderId": "R2000311106135470001"
},
"message": "成功",
"echoToken": "aeed2c5f-2943-4834-beb3-65191b26868a"
}
撤销取消单/提前离店申请
功能描述:撤销创建完成的超时取消申请单,撤销提前离店申请单
接口地址:order/discrepantReservationRevocation
请求方式:POST
请求参数说明:
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| cardId | String | 客户卡号 | Y |
| cardPassWord | String | 客户验证码 | Y |
| orderId | String | 华住订单号 | Y |
| cancelReason | String | 撤销原因 | Y |
| applyType | String | 申请类型 CANCEL 申请取消 EARLY_DEPARTURE 申请提前离店 默认为 CANCEL 申请取消 |
N |
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"orderId": "R2000311106135470001",
"cancelReason": "有其他安排,申请取消订单"
}
返回参数说明:
| 参数名 | 参数类型 | 备注 |
|---|---|---|
| code | code | 状态码 200 成功! code不为200,表示撤销差异单失败 500 应用程序繁忙,请稍后再试! |
| message | String | 响应消息 |
| content | boolean | 布尔结果或通过状态码判断 |
返回示例:
{
"code": 200,
"content": true,
"message": "成功",
"echoToken": "aeed2c5f-2943-4834-beb3-65191b26868a"
}
查询取消/提前离店申请单详情
功能描述:可查询取消单/提前离店申请单详情。发起取消/提前离店申请之后,通过对接回调接口可以获得结果通知。为防止通知失败,客户也可以在发起申请之后主动调用此接口查询。
接口地址:order/discrepantReservationDetail
请求方式:POST
请求参数说明:
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| cardId | String | 客户卡号 | Y |
| cardPassWord | String | 客户验证码 | Y |
| orderId | String | 华住订单号 | Y |
| applyType | String | 申请类型 CANCEL 申请取消 EARLY_DEPARTURE 申请提前离店 默认为 CANCEL 申请取消 |
N |
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"orderId": "R2000311106135470001"
}
返回参数说明:
| 参数名 | 参数类型 | 备注 |
|---|---|---|
| code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! |
| message | String | 响应消息 |
| content | List<DiscrepantReservationListResponseDTO> | 申请单详情 |
DiscrepantReservationDetailResponseDTO
| 参数 | 类型 | 描述 |
|---|---|---|
| hotelId | String | 酒店ID |
| hotelName | String | 酒店名称 |
| orderId | String | 订单号 |
| outerNo | String | 渠道单号 |
| discrepancyNo | String | 差异单单号 |
| applyType | Integer | 差异单调整类型:0是超时取消,1是提前离店 |
| name | String | 预订人姓名 |
| memberLevel | String | 会员等级 |
| roomType | String | 预订房型 |
| roomCount | String | 预订房间数 |
| checkIn | String | 入住日期 格式:yyyy-MM-dd |
| checkOut | String | 离店日期 格式:yyyy-MM-dd |
| nightCount | Integer | 间夜 |
| orderTotalPrice | BigDecimal | 房费总金额 |
| createDate | String | 差异单创建日期 格式:yyyy-MM-dd HH:mm:ss |
| reviewDate | String | 差异单审核日期 格式:yyyy-MM-dd HH:mm:ss |
| reviewStatus | Integer | 差异单审核状态(1待处理,2已同意,3已拒绝 5已撤销) |
| applyReason | String | 需使用中文描述提交差异申请原因 |
| refuseReason | String | 差异单拒绝原因 1、提交申请后,默认30分钟内,无任何操作,系统会自动拒绝,内容是review timeout 2、提交申请后,30分钟内,店长操作申请拒绝,必须填写原因,内容是审核人填写的 |
| discrepancyInfo | DiscrepancyInfoDTO | 差异信息 |
DiscrepancyInfoDTO
| 参数 | 类型 | 描述 |
|---|---|---|
| totalOriginalRoomNights | Integer | 总原间夜数 |
| totalAdjustedRoomNights | Integer | 总调整后间夜数 |
| totalOriginalRoomPrice | BigDecimal | 原房间总价(不含税点差) |
| totalOriginalRoomTaxPrice | BigDecimal | 原房间总价(含税点差) |
| totalAdjustedRoomPrice | BigDecimal | 调整后房间总价(不含税点差) |
| totalAdjustedRoomTaxPrice | BigDecimal | 调整后房间总价(含税点差) |
| dailyDiscrepancyList | List<DailyDiscrepancy> | 每日差异信息 |
实际退款金额=totalAdjustedRoomTaxPrice-totalOriginalRoomTaxPrice
示例参考:Q&A文档中订单相关退改签内容
线上退款日期:
预订单中的离店日期+1天退款,若退款失败则可通过月结账单的差异单线下处理
DailyDiscrepancy
| 参数 | 类型 | 描述 |
|---|---|---|
| bizDate | String | 日期 格式:yyyy-MM-dd HH:mm:ss |
| originalRoomCount | Integer | 原房间数 |
| adjustedRoomCount | Integer | 调整后房间数 |
| marketPrice | BigDecimal | 门市价 |
| originalRoomPrice | BigDecimal | 原房间单价(不含税点差) |
| originalRoomTaxPrice | BigDecimal | 原房间单价(含税点差) |
| adjustedRoomPrice | BigDecimal | 调整后房价(不含税点差) |
| adjustedRoomTaxPrice | BigDecimal | 调整后房价(含税点差) |
| originalDailyAmount | BigDecimal | 原当天房费总计(不含税点差) |
| originalDailyTaxAmount | BigDecimal | 原当天房费总计(含税点差) |
| adjustedDailyAmount | BigDecimal | 调整后房费总计)(不含税点差) |
| adjustedDailyTaxAmount | BigDecimal | 调整后房费总计(含税点差) |
| additionalDailyAmount | BigDecimal | 调整后差价 |
返回示例:
{
"code": 1000,
"content": [
{
"hotelId": "7000014",
"hotelName": "测试",
"orderId": "R2000311106135470001",
"outerNo": "",
"discrepancyNo": "bdf045dd1a4344e5a7e829c1e1e87064",
"applyType": "0",
"name": "李四",
"phoneNumber": "13163357638",
"memberLevel": "1",
"roomCount": "1",
"checkIn": "1647311473",
"checkOut": "16473114789",
"nightCount": "1",
"serviceComment": "",
"orderTotalPrice": 299.00,
"initiator": "Distributor",
"initiatorId": "李四",
"reviewer": "",
"reviewerId": "",
"createDate": "1647311473",
"reviewDate": "1647311473",
"reviewStatus": "0",
"applyReason": "出行目的地有变化,申请提前离店!",
"refuseReason": "",
"discrepancyInfo": {
"totalOriginalRoomNights": 1,
"totalAdjustedRoomNights": 1,
"totalOriginalRoomPrice": 299.00,
"totalOriginalRoomTaxPrice": 299.00,
"totalAdjustedRoomPrice": 299.00,
"totalAdjustedRoomTaxPrice": 299.00,
"dailyDiscrepancyList": {
"bizDate": "1647311473",
"originalRoomCount": 3,
"adjustedRoomCount": 3,
"marketPrice": 299.00,
"originalRoomPrice": 299.00,
"originalRoomTaxPrice": 299.00,
"adjustedRoomPrice": 299.00,
"adjustedRoomTaxPrice": 299,
"originalDailyAmount": 299.00,
"originalDailyTaxAmount": 299.00,
"adjustedDailyAmount": 299.00,
"adjustedDailyTaxAmount": 299.00,
"additionalDailyAmount": 299.00
}
}
}
],
"message": "成功",
"echoToken": "aeed2c5f-2943-4834-beb3-65191b26868a"
}
取消/提前离店申请单结果通知
请求参数:
| 参数名 | 参数类型 | 备注 |
|---|---|---|
| hotelId | String | 酒店id |
| orderId | String | 订单号 |
| discrepancyNo | String | 申请单号 |
| result | bool | 申请单结果(true审批通过,false审批拒绝) |
| resultDesc | String | 申请结果描述 1、提交申请后,默认30分钟内,无任何操作,系统会自动拒绝,内容是review timeout 2、提交申请后,30分钟内,店长操作申请拒绝,必须填写原因,内容是审核人填写的 |
请求示例:
{
"hotelId": "2000014",
"orderId": "R20000141000001232123",
"discrepancyNo": "123111111",
"result": true,
"resultDesc": "同意取消"
}
返回要求
需要http返回码为200 即可
提前离店预审
接口地址:order/checkDiscrepantEarlyDeparture
请求方式:POST
请求参数说明:
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| cardId | String | 客户卡号 | Y |
| cardPassWord | String | 客户验证码 | Y |
| orderId | String | 华住订单号 | Y |
| adjustCheckOutDate | Date | 提前离店时间 日期格式:yyyy-MM-dd | Y |
请求示例:
{
"cardId": "VCENTCRM1032595964",
"cardPassWord": "7174ADC6-7A72-482B-80CD-35E52CB2D288",
"orderId": "R3100052121789221001",
"applyReason": "出行目的地有变化,申请提前离店!",
"adjustCheckOutDate": "2023-07-12"
}
返回参数说明:
| 参数名 | 参数类型 | 备注 |
|---|---|---|
| code | code | 状态码: 200 成功! 500 应用程序繁忙,请稍后再试! 4015:离店日期不正确 10502:订单状态为HOTEL_ROOM_CHECK_OUT,无法修改 |
| message | String | 响应消息 |
| content | DiscrepancyInfoDTO | 预审信息 |
DiscrepancyInfoDTO
| 参数 | 类型 | 描述 |
|---|---|---|
| totalOriginalRoomNights | Integer | 总原间夜数 |
| totalAdjustedRoomNights | Integer | 总调整后间夜数 |
| totalOriginalRoomPrice | BigDecimal | 原房间总价(不含税点差) |
| totalOriginalRoomTaxPrice | BigDecimal | 原房间总价(含税点差) |
| totalAdjustedRoomPrice | BigDecimal | 调整后房间总价(不含税点差) |
| totalAdjustedRoomTaxPrice | BigDecimal | 调整后房间总价(含税点差) |
| dailyDiscrepancyList | List<DailyDiscrepancy> | 每日差异信息 |
实际退款金额=totalAdjustedRoomTaxPrice-totalOriginalRoomTaxPrice
示例参考:Q&A文档中订单相关退改签内容
线上退款日期:
预订单中的离店日期+1天退款,若退款失败则可通过月结账单的差异单线下处理
DailyDiscrepancy
| 参数 | 类型 | 描述 |
|---|---|---|
| bizDate | String | 日期 |
| originalRoomCount | Integer | 原房间数 |
| adjustedRoomCount | Integer | 调整后房间数 |
| marketPrice | BigDecimal | 门市价 |
| originalRoomPrice | BigDecimal | 原房间单价(不含税点差) |
| originalRoomTaxPrice | BigDecimal | 原房间单价(含税点差) |
| adjustedRoomPrice | BigDecimal | 调整后房价(不含税点差) |
| adjustedRoomTaxPrice | BigDecimal | 调整后房价(含税点差) |
| originalDailyAmount | BigDecimal | 原当天房费总计(不含税点差) |
| originalDailyTaxAmount | BigDecimal | 原当天房费总计(含税点差) |
| adjustedDailyAmount | BigDecimal | 调整后房费总计(不含税点差) |
| adjustedDailyTaxAmount | BigDecimal | 调整后房费总计(含税点差) |
| additionalDailyAmount | BigDecimal | 调整后差价 |
返回示例:
{
"code": "200",
"message": "成功!",
"content": {
"totalOriginalRoomNights": 3,
"totalAdjustedRoomNights": 1,
"totalOriginalRoomPrice": 823,
"totalOriginalRoomTaxPrice": 823,
"totalAdjustedRoomPrice": 297,
"totalAdjustedRoomTaxPrice": 297,
"dailyDiscrepancyList": [
{
"bizDate": "2023-08-08",
"originalRoomCount": 1,
"adjustedRoomCount": 1,
"marketPrice": 149,
"originalRoomPrice": 297,
"originalRoomTaxPrice": 297,
"adjustedRoomPrice": 297,
"adjustedRoomTaxPrice": 297,
"originalDailyAmount": 297,
"originalDailyTaxAmount": 297,
"adjustedDailyAmount": 297,
"adjustedDailyTaxAmount": 297,
"additionalDailyAmount": 0
},
{
"bizDate": "2023-08-09",
"originalRoomCount": 1,
"adjustedRoomCount": 0,
"marketPrice": 149,
"originalRoomPrice": 263,
"originalRoomTaxPrice": 263,
"adjustedRoomPrice": 0,
"adjustedRoomTaxPrice": 0,
"originalDailyAmount": 263,
"originalDailyTaxAmount": 263,
"adjustedDailyAmount": 0,
"adjustedDailyTaxAmount": 0,
"additionalDailyAmount": 0
},
{
"bizDate": "2023-08-10",
"originalRoomCount": 1,
"adjustedRoomCount": 0,
"marketPrice": 149,
"originalRoomPrice": 263,
"originalRoomTaxPrice": 263,
"adjustedRoomPrice": 0,
"adjustedRoomTaxPrice": 0,
"originalDailyAmount": 263,
"originalDailyTaxAmount": 263,
"adjustedDailyAmount": 0,
"adjustedDailyTaxAmount": 0,
"additionalDailyAmount": 0
}
]
},
"echoToken": "604054d2-b39f-4287-93ab-f065b32ef501"
}