请求
语法
TaxFeeInfo
消息使用以下语法:
<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="timestamp"
id="message_ID"
partner="partner_key">
<Property action="[overlay]">
<ID>HotelID</ID>
<Taxes>
<Tax>
<RoomTypes>
<RoomType id="RoomID_1"/>
<RoomType id="RoomID_2"/>
</RoomTypes>
<RatePlans>
<RatePlan id="PackageID_1"/>
<RatePlan id="PackageID_2"/>
</RatePlans>
<BookingDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
</BookingDates>
<CheckinDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
</CheckinDates>
<CheckoutDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
</CheckoutDates>
<StayDates application="[all|any|overlap]">
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
</StayDates>
<Type>[percent|amount]</Type>
<Basis>[room|person]</Basis>
<Period>[stay|night]</Period>
<Currency>currency_code</Currency>
<Amount>tax_amount</Amount>
<ApplicableNights max="integer" excluded="integer"/>
<LengthOfStay min="integer" max="integer"/>
<!-- Use either <Amount> or <Brackets> -->
<Brackets base_amount="tax_amount"/>
<Bracket starts_at="nightly_rate" amount="tax_amount"/>
</Brackets>
<AgeBrackets>
<AdultCharge amount="tax_amount"/>
<ChildAgeBrackets>
<ChildAgeBracket max_age="max_age" amount="tax_amount"/>
</ChildAgeBrackets>
</AgeBrackets>
<UserCountries type="[include|exclude]">
<Country code="country_code1"/>
<Country code="country_code2"/>
</UserCountries>
</Tax>
</Taxes>
<Fees>
<Fee>
<RoomTypes>
<RoomType id="RoomID_1"/>
<RoomType id="RoomID_2"/>
</RoomTypes>
<RatePlans>
<RatePlan id="PackageID_1"/>
<RatePlan id="PackageID_2"/>
</RatePlans>
<BookingDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
</BookingDates>
<CheckinDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
</CheckinDates>
<CheckoutDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
</CheckoutDates>
<StayDates application="[all|any|overlap]">
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
</StayDates>
<Type>[percent|amount]</Type>
<Basis>[room|person]</Basis>
<Period>[stay|night]</Period>
<Currency>currency_code</Currency>
<Amount>fee_amount</Amount>
<ApplicableNights max="integer" excluded="integer"/>
<LengthOfStay min="integer" max="integer"/>
<!-- Use either <Amount> or <Brackets> -->
<Brackets base_amount="tax_amount"/>
<Bracket starts_at="nightly_rate" amount="tax_amount"/>
</Brackets>
<AgeBrackets>
<AdultCharge amount="tax_amount"/>
<ChildAgeBrackets>
<ChildAgeBracket max_age="max_age" amount="tax_amount"/>
</ChildAgeBrackets>
</AgeBrackets>
<UserCountries type="[include|exclude]">
<Country code="country_code1"/>
<Country code="country_code2"/>
</UserCountries>
</Fee>
</Fees>
</Property>
</TaxFeeInfo>
元素和属性
TaxFeeInfo
消息具有以下元素和属性:
元素 / @Attribute | 出现次数 | 类型 | 说明 |
---|---|---|---|
TaxFeeInfo | 1 | Complex element | 消息的根元素,该消息定义了单个房源的税费及其他费用。 |
TaxFeeInfo / @timestamp | 1 | DateTime | 此消息的创建日期和时间。 |
TaxFeeInfo / @id | 1 | string | 此请求消息的唯一标识符。此值将在响应消息中返回。允许的字符包括 a-z 、A-Z 、0-9 、_ (下划线)和 - (短划线)。 |
TaxFeeInfo / @partner | 1 | string | 此消息的合作伙伴帐号。该字符串值是 Hotel Center 中
“帐号设置”页面上列出的“合作伙伴密钥”值。 注意:如果您的后端为多个帐号提供 Feed,则此值需要与同一帐号的 |
TaxFeeInfo / Property | 1..n | Property | 用于指定单个房源的税费及其他费用的容器。 |
TaxFeeInfo / Property / @action | 0..1 | string | 指定如何应用更新。仅支持 overlay ,默认值为 overlay 。在应用此更新之前,系统会清除该媒体资源之前的所有 Taxes 和 Fees 。 |
TaxFeeInfo / Property / ID | 1 | string | 属性的唯一标识符。此值必须与使用酒店列表 Feed 中<listing> 元素中的 <id> 指定的酒店 ID 相匹配。Hotel Center 中也会包含酒店 ID。 |
TaxFeeInfo / Property / Taxes | 0..1 | Taxes | 包含一个或多个 <Tax> 元素的容器。 |
TaxFeeInfo / Property / Taxes / Tax | 1..n | Tax | 适用于房源的个别税费。 |
TaxFeeInfo / Property / Taxes / Tax / RoomTypes | 0..1 | RoomTypes | 适用税费列表的客房类型的容器。
该税费适用于指定的每个 <RoomType> 。如果未指定 <RoomTypes> ,则该税费适用于所有客房。 |
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType | 1..n | RoomType | 指定客房类型。客房类型在交易(房源数据)消息的 <RoomData> 元素中定义,并使用其 RoomID 进行标识。(OTA_HotelRateAmountNotifRQ 消息中的 InvTypeCode 属性也会引用其 <RoomID> 值。) |
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType / @id | 1 | string | 广告资源(客房类型)的唯一标识符。此值会映射到交易(房源数据)消息中的 <RoomID> 。允许的字符数上限为 50。 |
TaxFeeInfo / Property / Taxes / Tax / RatePlans | 0..1 | RatePlans | 包含税费适用的费率方案列表的容器。
如果未指定 <RatePlans> ,则该税费适用于所有费率方案。 |
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan | 1..n | RatePlan | 指定费率方案。费率方案由套餐、费率和空房情况组合定义,如交易(房源数据)、OTA_HotelRateAmountNotifRQ 和 OTA_HotelAvailNotifRQ 消息所定义,并由 PackageID 确定。 |
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan / @id | 1 | string | 费率方案的唯一标识符。此值会映射到 <PackageData> (位于事务(房源数据)消息中)的 PackageID 值以及 <StatusApplicationControl> 的 RatePlanCode 属性中(对于 <OTA_HotelRateAmountNotifRQ> 和 <OTA_HotelAvailNotifRQ> 消息)。
允许的字符数上限为 50。 |
TaxFeeInfo / Property / Taxes / Tax / BookingDates | 0..1 | BookingDates | 一个或多个日期范围的容器,其中定义了必须发生预订的时间才能应用税费。 |
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange | 1..99 | DateRange | 用于指定必须应用预订才能应用税费的日期范围。 |
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @start | 0..1 | Date | 日期范围的开始日期(含媒体资源的时区),包括该日期。此日期必须早于或与 end 日期相同。如果未指定 start ,则就开始日期而言,日期范围实际上是不受限制的。 |
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @end | 0..1 | Date | 日期范围的结束日期(以媒体资源的时区为准)。该日期必须与 start 日期当天或之后相同。如果未指定 end ,则就结束日期而言,日期范围实际上是不受限制的。 |
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @days_of_week | 0..1 | string | 相应日期范围内允许的星期几。如果未指定,则在该日期范围内所有日期均允许。字符串中的每个字符都会指定一个日期。例如,“MTWHF”表示允许该日期范围内的工作日。 有效字符包括:
字符组合均有效。 |
TaxFeeInfo / Property / Taxes / Tax / CheckinDates | 0..1 | CheckinDates | 一个或多个日期范围的容器,其中规定了必须在何时登记入住才能应用税费。 |
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange | 1..20 | DateRange | 指定必须在何时应用入住才能应用税费的日期范围。 |
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @start | 0..1 | Date | 日期范围的开始日期(含媒体资源的时区),包括该日期。此日期必须早于或与 end 日期相同。如果未指定 start ,则就开始日期而言,日期范围实际上是不受限制的。 |
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @end | 0..1 | Date | 日期范围的结束日期(以媒体资源的时区为准)。该日期必须与 start 日期当天或之后相同。如果未指定 end ,则就结束日期而言,日期范围实际上是不受限制的。 |
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @days_of_week | 0..1 | string | 相应日期范围内允许的星期几。如果未指定,则在该日期范围内所有日期均允许。字符串中的每个字符都会指定一个日期。例如,“MTWHF”表示允许该日期范围内的工作日。 有效字符包括:
字符组合均有效。 |
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates | 0..1 | CheckoutDates | 一个或多个日期范围的容器,其中规定了必须在何时退房才能应用税费。 |
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange | 1..20 | DateRange | 指定退房的日期范围,以便应用税费。 |
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @start | 0..1 | Date | 日期范围的开始日期(含媒体资源的时区),包括该日期。此日期必须早于或与 end 日期相同。如果未指定 start ,则就开始日期而言,日期范围实际上是不受限制的。 |
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @end | 0..1 | Date | 日期范围的结束日期(以媒体资源的时区为准)。该日期必须与 start 日期当天或之后相同。如果未指定 end ,则就结束日期而言,日期范围实际上是不受限制的。 |
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @days_of_week | 0..1 | string | 相应日期范围内允许的星期几。如果未指定,则在该日期范围内所有日期均允许。字符串中的每个字符都会指定一个日期。例如,“MTWHF”表示允许该日期范围内的工作日。 有效字符包括:
字符组合均有效。 |
TaxFeeInfo / Property / Taxes / Tax / StayDates | 0..1 | StayDates | 一个或多个日期范围的容器,用于确定是否应用税费,例如为了适应季节性折扣。 |
TaxFeeInfo / Property / Taxes / Tax / StayDates / @application | 1 | enum | 说明应如何收取税费。 有效值包括:
必须始终指定此属性。 |
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange | 1..99 | DateRange | 日期范围,用于指定应用税费的日期。 |
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @start | 0..1 | Date | 日期范围的开始日期(含媒体资源的时区),包括该日期。此日期必须早于或与 end 日期相同。如果未指定 start ,则就开始日期而言,日期范围实际上是不受限制的。 |
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @end | 0..1 | Date | 日期范围的结束日期(以媒体资源的时区为准)。该日期必须与 start 日期当天或之后相同。如果未指定 end ,则就结束日期而言,日期范围实际上是不受限制的。 |
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @days_of_week | 0..1 | string | 相应日期范围内允许的星期几。如果未指定,则在该日期范围内所有日期均允许。字符串中的每个字符都会指定一个日期。例如,“MTWHF”表示允许该日期范围内的工作日。 有效字符包括:
字符组合均有效。 |
TaxFeeInfo / Property / Taxes / Tax / Type | 1 | enum | 有效值包括:
|
TaxFeeInfo / Property / Taxes / Tax / Basis | 1 | enum | 有效值包括:
|
TaxFeeInfo / Property / Taxes / Tax / Period | 1 | enum |
有效值包括:
|
TaxFeeInfo / Property / Taxes / Tax / Currency | 0..1 | string | 税费的货币代码(由 3 个字母组成),例如:USD。 |
TaxFeeInfo / Property / Taxes / Tax / Amount | 0..1 | float | 税费的百分比或金额。 |
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights | 0..1 | ApplicableNights | 仅当 <Type> 设置为 amount 且 <Period> 设置为 night 时,此值才适用。
限制可以应用税费的住宿晚数。 请指定 |
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @max | 0..1 | integer | <ApplicableNights max="N"> 表示应排除前 N 个夜晚之后的夜晚。 |
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @excluded | 0..1 | integer | <ApplicableNights excluded="N"> 表示应排除前 N 晚。 |
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay | 0..1 | LengthOfStay | 定义可应用此税费的住宿晚数限制。 当住宿晚数超出下限和上限时,不适用税费。 |
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @min | 0..1 | integer | 酒店收取的最短入住天数。 如果未指定,则没有下限。 |
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @max | 0..1 | integer | 入住期间允许的最大入住天数。 如果未指定,则没有上限。 |
TaxFeeInfo / Property / Taxes / Tax / Brackets | 0..1 | Brackets | 一个或多个 <Bracket> 元素的容器。
定义一组连续且不重叠的税种,例如印度商品及服务税 (SGST) 税。
仅当 |
TaxFeeInfo / Property / Taxes / Tax / Brackets / @base_amount | 0..1 | float | 适用于第一个括号的 starts_at 值以下的每晚税率百分比或金额。 |
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket | 1..n | Bracket | 根据每晚房价定义税档。 |
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @starts_at | 1 | float | 定义税档的下限。上限在后续括号的 当夜间费率高于或等于括号的 此值必须严格大于 0。 |
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @amount | 1 | float | 应用到此年龄段的税收百分比或金额。 |
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets | 0..1 | AgeBrackets | 允许根据乘客的年龄指定一组税费。
仅当未指定 |
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge | 0..1 | AdultCharge | 用于指定成人税费的容器。 |
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge / @amount | 1 | float | 适用于成人的固定税费。 |
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets | 0..1 | ChildAgeBrackets | 用于包含一个或多个 <ChildAgeBracket> 元素的容器。 |
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket | 1..n | ChildAgeBracket | 定义儿童的年龄段和对应的税费金额。 |
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age | 1 | integer | 定义儿童年龄的上限。下限在前括号的 “ |
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount | 1 | float | 面向此年龄段的儿童收取的固定税费。 |
TaxFeeInfo / Property / Taxes / Tax / UserCountries | 0..1 | UserCountries | 用于列出包含或排除税费的用户国家/地区的容器。如果此类税费存在,则只会包含或排除来自指定国家/地区的用户。 |
TaxFeeInfo / Property / Taxes / Tax / UserCountries / @type | 0..1 | enum | UserCountry 规范的类型。
有效值为 如果 UserCountry 但如果 UserCountry 如果未设置 UserCountry |
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country | 1..n | Country | 定义 UserCountry 列表中的一个国家/地区。 |
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country / @code | 1 | string | CLDR 国家/地区代码,例如 DE 或 FR 。请注意,对于某些国家/地区,CLDR 国家/地区代码与 2 个字母的 ISO 国家/地区代码不同。此外,CLDR 地区代码也不受支持。 |
TaxFeeInfo / Property / Fees | 0..1 | Fees | 包含一个或多个 <Fee> 元素的容器。 |
TaxFeeInfo / Property / Fees / Fee | 1..n | Fee | 适用于房源的单独费用。 语法相同的 |
示例
基本信息
一条基本 TaxFeeInfo
消息:
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfo timestamp="2020-05-18T16:20:00-04:00" id="12345678" partner="partner_key"> <Property> <ID>Property_1</ID> <Taxes> <Tax> <Type>percent</Type> <Basis>room</Basis> <Period>stay</Period> <Amount>10.00</Amount> </Tax> </Taxes> <Fees> <Fee> <Type>amount</Type> <Basis>person</Basis> <Period>night</Period> <Currency>USD</Currency> <Amount>5.00</Amount> </Fee> </Fees> </Property> </TaxFeeInfo>
删除税费
删除指定酒店的所有房源级税费及其他费用:
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfo timestamp="2022-06-16T16:20:00-04:00" id="12345678" partner="partner_key" <Property action="overlay"/> <ID>Property_1</ID> </Property> </TaxFeeInfo>
Slab 税
根据每晚房价收取的印度商品及服务税标准税。税种包括:
- 如果每晚房价低于或等于 1000,则无税费。
- 如果每晚房价高于 1000 但小于或等于 7500,则收取 12% 的税费。
- 如果每晚房价高于 7500,则税费为 18%。
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfo timestamp="2020-05-18T16:20:00-04:00" id="12345678" partner="partner_key"> <Property> <ID>Property_1</ID> <Taxes> <Tax> <Type>percent</Type> <Basis>room</Basis> <Period>night</Period> <Brackets base_amount="0"> <Bracket starts_at="1000.01" amount="12"/> <Bracket starts_at="7500.01" amount="18"/> </Brackets> </Tax> </Taxes> </Property> </TaxFeeInfo>
基于年龄的税费
根据入住者的年龄收取的税费:
- 成人入住人数为 20 美元。
- 11 至 17 岁的儿童需缴纳 10 美元的税费。
- 0 至 10 岁的儿童需缴纳 5 美元的税费。
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfo timestamp="2020-05-18T16:20:00-04:00" id="12345678" partner="partner_key"> <Property> <ID>Property_1</ID> <Taxes> <Tax> <Type>amount</Type> <Basis>person</Basis> <Period>night</Period> <AgeBrackets> <AdultCharge amount="20"/> <ChildAgeBrackets> <ChildAgeBracket max_age="10" amount="5"/> <ChildAgeBracket max_age="17" amount="10"/> </ChildAgeBrackets> </AgeBrackets> </Tax> </Taxes> </Property> </TaxFeeInfo>
响应
语法
TaxFeeInfoResponse
消息使用以下语法:
<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfoResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type">issue_description</Issue>
</Issues>
</TaxFeeInfoResponse>
元素和属性
TaxFeeInfoResponse
消息具有以下元素和属性:
元素 / @Attribute | 出现次数 | 类型 | 说明 |
---|---|---|---|
TaxFeeInfoResponse | 1 | Complex element | 指示所收到的 TaxFeeInfo 请求消息成功或问题的根元素。 |
TaxFeeInfoResponse / @timestamp | 1 | DateTime | 此消息的创建日期和时间。 |
TaxFeeInfoResponse / @id | 1 | string | 关联的 TaxFeeInfo 消息中的唯一标识符。 |
TaxFeeInfoResponse / @partner | 1 | string | 此消息的合作伙伴帐号。 |
TaxFeeInfoResponse / Success | 0..1 | Success | 表示 TaxFeeInfo 消息已成功处理,没有警告、错误或失败。
每条消息都包含 |
TaxFeeInfoResponse / Issues | 0..1 | Issues | 用于处理 TaxFeeInfo 消息时遇到的一个或多个问题的容器。
每条消息都包含 |
TaxFeeInfoResponse / Issues / Issue | 1..n | Issue | 描述 TaxFeeInfo 消息处理期间出现的警告、错误或失败的说明。有关这些问题的详细信息,请参阅 Feed 状态错误消息。 |
TaxFeeInfoResponse / Issues / Issue / @code | 1 | integer | 问题的标识符。 |
TaxFeeInfoResponse / Issues / Issue / @status | 1 | enum | 遇到的问题类型。 有效值为 |
示例
成功
以下是已成功处理 TaxFeeInfo 消息的响应。
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfoResponse timestamp="2020-05-18T16:20:00-04:00" id="12345678" partner="partner_key"> <Success/> </TaxFeeInfoResponse>
问题
以下是对 TaxFeeInfo 消息(由于出现错误)未处理的响应。
<?xml version="1.0" encoding="UTF-8"?> <TaxFeeInfoResponse timestamp="2020-05-18T16:20:00-04:00" id="12345678" partner="partner_key"> <Issues> <Issue code="1001" status="error">Example</Issue> </Issues> </TaxFeeInfoResponse>