BookingUSB-酒店接口
修改于: 2024-10-16 15:07
旧版文档将于2025年11月30日下线,您可以查看新版或了解更新日志。
目录
介绍
渠道使用此API获取酒店集团的酒店列表和酒店产品
- 酒店列表(/hotels/{supplierId}):渠道使用此API获取酒店列表以及可售卖状态。如返回酒店状态为 Deactived 则表示酒店集团已下线此酒店或不可售卖。
- 酒店产品(/Hotel/{supplierId}/{hotelId}):渠道使用此API获取酒店产品以及每个产品的可售卖状态。Deactived 表示不可售卖。
酒店列表
渠道使用此API获取酒店列表,然后根据酒店状态(Actived/Deactived)在自己的系统中上线或下线酒店。建议定时调用此接口询问及更新变化(每天至少同步一次)
GET /hotels/{supplierId}?distributorId={distributorId} HTTP/1.1
URL: {endpoint}/hotels/{supplierId}?distributorId={distributorId}
Authorization:Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8请求参数
名称 | 描述 | 必传字段 | 类型 | 示例 |
|---|---|---|---|---|
supplierId | 酒店集团 ID | Yes | string | HILTON |
distributorId | 渠道 ID | Yes | string | TUI |
响应示例
- 成功响应(HTTP状态200)
[
{
"hotelId": "GATHI",
"hotelName": "This is a test hotel",
"supplierId": "HILTON",
"status": "Actived"
}
]- 错误响应(HTTP状态401)
{
"error": "Key not authorized"
}- 错误响应(HTTP状态500)
{
"errorCode": "InvalidField",
"errorMessage": "Invalid Message"
}响应规范
属性 | 类型 | 必传字段? | 描述 | 示例 |
|---|---|---|---|---|
hotelId | string | Yes | 酒店代码 | GATHI |
hotelName | string | No | 酒店名称 | Hilton hotel resorts |
supplierId | string | Yes | 酒店集团 ID | HILTON |
status | enum | Yes | 酒店状态 枚举:[Actived,Deactived] | Actived |
酒店产品
渠道使用此API获取酒店产品以及每个产品的可售卖状态。建议定时调用此接口询问及更新变(每天至少同步一次)
GET /hotel/{supplierId}/{hotelId}?distributorId={distributorId} HTTP/1.1
URL: {endpoint}/hotel/{supplierId}/{hotelId}?distributorId={distributorId}
Authorization:Bearer 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8请求参数
名称 | 描述 | 必传字段? | 类型 | 示例 |
|---|---|---|---|---|
supplierId | 酒店集团 ID | Yes | string | HILTON |
hotelId | 酒店代码 | Yes | string | GATHI |
distributorId | 渠道 ID | Yes | string | TUI |
响应示例
- 成功响应(HTTP状态200)
{
"hotelId": "ABCDE",
"hotelName": "This is a test hotel",
"supplierId": "HILTON",
"status": "Actived",
"chainCode": "Hilton",
"brandCode": "Hampton",
"longitude": "41.40338",
"latitude": "2.17403",
"city": "string",
"country": "string",
"state": "string",
"address": [
"AddressLine1",
"AddressLine2",
"AddressLine3",
"AddressLine4",
"AddressLine5"
],
"phone": {
"countryAccessCode": "string",
"areaCityCode": "string",
"phoneNumber": "string"
},
"settings": {
"key1": "value1",
"key2": "value2"
},
"extensions": {
"key1": "value1",
"key2": "value2"
},
"ariType": "Daily",
"timezone": "America/Los_Angeles",
"rateType": "AmountBeforeTax",
"maxChildAge": 17,
"childRateType": "ByAge",
"products": [
{
"roomId": "10000101",
"rateId": "123456",
"stayType": "OverNightRoom",
"status": "Actived",
"roomName": "Double Room",
"roomDescription": "Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings.",
"rateName": "Bar Rate",
"rateDescription": "Begin your day with a hearty meal.",
"occupancy": {
"maxAdult": 3,
"maxChild": 2,
"maxOccupancy": 3
},
"paymentType": "PayNow",
"guarantee": {
"guaranteeType": "CCG"
},
"cancelPolicies": [
{
"dateRange": {
"startDate": "2018-01-01",
"endDate": "2018-01-04"
},
"cancelPolicy": {
"code": "AD100P_100P",
"description": "Non Refundable",
"cancelPenalties": [
{
"noShow": true,
"cancellable": true,
"cancelDeadline": {
"offsetTimeDropType": "BeforeArrival",
"offsetTimeUnit": "D",
"offsetTimeValue": 0,
"deadline": "string"
},
"penaltyCharge": {
"chargeBase": "FullStay",
"nights": 0,
"amount": 0,
"percent": 0
}
}
]
}
}
],
"fees": [
{
"dateRange": {
"startDate": "2018-01-01",
"endDate": "2018-01-04"
},
"fee": {
"name": "Service Charge",
"type": "Exclusive",
"amount": 10,
"amountType": "Percent",
"chargeType": "PerRoomPerNight",
"paymentType": "PayNow",
"effectivePerson": 0
}
}
],
"bookingChannels": [
"channel",
"channel"
],
"sourceMarkets": [
"region",
"region"
],
"productAddons": [
{
"type": "DisneyTicket",
"required": true,
"candidateCodes": [
"code",
"code"
]
}
]
}
]
}- 错误响应(HTTP状态401)
{
"error": "Key not authorized"
}- 错误响应(HTTP状态500)
{
"errorCode": "InvalidField",
"errorMessage": "Invalid Message"
}响应规范
属性 | 类型 | 必传字段? | 描述 | 示例 |
|---|---|---|---|---|
hotelId | string | Yes | 酒店代码 | GATHI |
hotelName | string | No | 酒店名称 | This is a test hotel |
supplierId | string | Yes | 酒店集团 ID | HILTON |
status | enum | Yes | 枚举:[Actived,Deactived] 酒店状态 | Actived |
chainCode | string | No | 连锁代码可以标识酒店连锁或管理集团,例如Hyatt、Hilton。酒店连锁代码由酒店集团决定,如果酒店是单体酒店,仅通过hotelId字段即可识别,则酒店连锁代码是可选的。 | Marriott |
brandCode | string | No | 品牌代码可以识别连锁店内的品牌,例如Courtyard、Hampton Inn。如果酒店是单体酒店,则是可选字段。 | Waldorf |
longitude | string | No | 酒店经纬度信息 | 41.40338 |
latitude | string | No | 酒店经纬度信息 | 2.17403 |
city | string | No | / | / |
country | string | No | / | / |
state | string | No | / | / |
address | array | No | 最多支持五个地址 | [ "AddressLine1", "AddressLine2", "AddressLine3", "AddressLine4", "AddressLine5" ] |
phone | object | No | / | / |
@countryAccessCode | string | Yes | / | / |
@areaCityCode | string | No | / | / |
@phoneNumber | string | Yes | / | / |
settings | object | No | 用于额外属性或设置等 | { |
| extensions | object | No | 它是可选字段,与万豪对接的渠道可通过此字段接收万豪的 集群代码(Cluster Code)及与之对应的价格计划代码。 | { "key1": "value1", "key2": "value2" } |
ariType | enum | Yes | 枚举:[Daily,LOS] 指示ARI API使用的ARI模型 | Daily |
timezone | string | Yes | 酒店时区 | America/Los_Angeles |
rateType | enum | Yes | 枚举:[AmountBeforeTax、AmountAfterTax、Both] 指示酒店集团提供的价格类型
| AmountBeforeTax |
maxChildAge | integer | No | 如果childRateType为ByAge,则 maxChildAge 为必填字段。 | / |
childRateType | enum | No | 枚举:[Normal, ByAge, Free, AsAdult] 儿童价类型
| ByAge |
products | array | Yes | / | / |
@roomId | string | Yes | 房型代码 | King |
@rateId | string | Yes | 价格计划代码 | BAR |
@stayType | enum | No | 枚举:[OverNightRoom,DayUseRoom] 标识此产品是专门用于日用房还是常规过夜使用。默认类型为OverNightRoom | OverNightRoom |
@status | enum | Yes | 枚举:[Actived,Deactived] | Actived |
@roomName | string | No | 房型名称 | King Room |
@roomDescription | string | No | / | Soak in city views in our Deluxe room, which features a well-appointed ensuite bathroom and up-to-date entertainment offerings. |
@rateName | string | No | 价格计划名称 | Best Available Rate |
@rateDescription | string | No | / | Begin your day with a hearty meal |
products/occupancy |
| Yes | / | / |
@maxAdult | integer | Yes | 最大入住成人数 | 3 |
@maxChild | integer | Yes | 最大入住儿童数 | 2 |
@maxOccupancy | integer | Yes | 最大入住人数 | 3 |
@paymentType | enum | No | 枚举:[PayLater,PayNow] 预付(PayNow)、前台现付(PayLater) | PayNow |
products/guarantee | / | No | / | / |
@guaranteeType | string | Yes | 此房价的保证信息。 担保类型,参考担保类型列表 | CCG |
products/cancelPolicies | / | No | / | / |
cancelPolicies/dateRange | object | No | 日期范围 | / |
@startDate | string | Yes | 开始日期,格式为yyyy-MM-dd | 2018-01-01 |
@endDate | string | Yes | 结束日期,格式为yyyy-MM-dd | 2018-01-04 |
cancelPolicies/cancelPolicy | object | No | / | / |
@code | string | Yes | 取消政策代码 最大长度:128 | AD100P_100P |
@description | string | No | 取消政策的描述 最大长度:1024 | Non Refundable |
cancelPolicy/cancelPenalties | / | Yes | 取消政策详情 | / |
@noShow | boolean | Yes | 如果为true,则意味着罚金适用于“未入住”,cancellable 和 cancelDeadline 两个节点将不会出现。 | / |
@cancellable | boolean | No | 标示是否允许取消。如果为false,则不可取消。如果为true,cancelDeadline 节点将出现。 | / |
cancelPenalties / cancelDeadline | / | / | / | / |
@offsetTimeDropType | enum | No | 标示取消政策以入住日期或预订日期为依据。目前只支持入住日期类型 枚举:[BeforeArrival] | / |
@offsetTimeUnit | enum | No | 枚举:[D,H] | / |
@offsetTimeValue | number | No | 时间数 | / |
@deadline | string | No | 取消截止时间,一般为酒店所在地时间,如下午4点前或下午6点前 | / |
cancelPenalties/ penaltyCharge | / | Yes | / | / |
@chargeBase | enum | No | 如果是FullStay,则为百分比或金额;如果是NightBase,则需要通过 nights 节点提供间夜数。 枚举:[FullStay,NightBase] | / |
@nights | number | No | 罚款是基于入住晚数,如一晚 | / |
@amount | number | No | 罚款是固定费用,如30.00美元 | / |
@percent | number | No | 罚款是基于百分比,如15.5 为 15.5% | / |
products/fees | / | No | / | / |
fees/dateRange | / | No | 日期范围 | / |
@startDate | string | Yes | 开始日期,格式为yyyy-MM-dd | 2018-01-01 |
@endDate | string | Yes | 结束日期,格式为yyyy-MM-dd | 2018-01-04 |
fees/fee | object | No | / | / |
@name | string | Yes | 费用或税款的名称 | Service Charge |
@type | enum | Yes | 税费是否包含在税前价中 枚举:[Inclusive,Exclusive] | Exclusive |
@amount | number | Yes | 税费金额 | 10 |
@amountType | enum | Yes | 税费收取规则,是固定金额收取,还是按房费比例收取 枚举:[Fix,Percent] | Percent |
@chargeType | enum | Yes | 枚举:[PerRoomPerNight,PerPersonPerNight、PerRoomPerStay、PerPersonPerStay] | PerRoomPerNight |
@paymentType | enum | No | 预付(PayNow)、前台现付(PayLater) 枚举:[PayLater,PayNow] | PayNow |
@effectivePerson | number | No | 从第几名成人开始收取额外费用,通常从第3名成人开始收取。值为 3 表示从第3名成年人起将收取额外费用 | / |
| products/bookingChannels | array[string] | No | 渠道ID/子渠道ID | ["channel1", "channel2"] |
| products/sourceMarkets | array[string] | No | / | ["region1", "region2"] |
| products/productAddons | array[object] | No | / | |
| @type | string | Yes | 产品 Addon 类型 | DisneyTicket |
| @required | boolean | Yes | / | true |
| productAddons/candidateCodes | array[string] | Yes | / | ["code1", "code2"] |
此回答是否有所帮助? 是 否
Send feedback