请求
语法
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|cumulative_percent]</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>
<Rank>integer</Rank>
</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|cumulative_percent]</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>
<Rank>integer</Rank>
</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 | 费率方案的唯一标识符。此值会映射到 Transaction(房源数据)消息的 <PackageData> 中的 PackageID 值,以及 <OTA_HotelRateAmountNotifRQ> 和 <OTA_HotelAvailNotifRQ> 消息中 <StatusApplicationControl> 属性下设置的 RatePlanCode 值。
允许的字符数上限为 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 | 税费的三字母货币代码(例如: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> 元素的容器。
定义一组连续且不重叠的税率范围。例如:印度 GST 税率梯度。
仅当 |
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 的 如果未设置 User countries |
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country | 1..n | Country | 在 UserCountries 列表中定义一个国家/地区。 |
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country / @code | 1 | string | CLDR 国家/地区代码,例如 DE 或 FR 。请注意,对于某些国家/地区,CLDR 国家/地区代码与 2 个字母的 ISO 国家/地区代码不同。此外,CLDR 地区代码也不受支持。 |
TaxFeeInfo / Property / Taxes / Tax / Rank | 1 | integer | 用于指定相应税费或其他费用的申请顺序的排名。
例如,如果值为 2,则表示系统将第二个应用此项税费。
如果
|
TaxFeeInfo / Property / Fees | 0..1 | Fees | 一个或多个 <Fee> 元素的容器。 |
TaxFeeInfo / Property / Fees / Fee | 1..n | Fee | 针对房源收取的个人费用。 采用相同语法的 |
示例
每个房源最多只能包含 300 项税费和其他费用。如需从房源中移除税费,请参阅“删除税费”示例。
基本信息
基本 TaxFeeInfo
消息:
<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2024-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="2024-06-16T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Property action="overlay"/>
<ID>Property_1</ID>
</Property>
</TaxFeeInfo>
阶梯税
印度 GST 税率,按每晚房价计算。税额为:
- 如果每晚费率低于或等于 1,000 日元,则无需缴纳税费。
- 如果每晚费率高于 1,000 且低于或等于 7,500,则税率为 12%。
- 如果每晚费率高于 7500 日元,则税率为 18%。
<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2024-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="2024-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="2024-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TaxFeeInfoResponse>
问题
以下是对由于错误而未处理的 TaxFeeInfo
消息的响应。
<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfoResponse timestamp="2024-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</TaxFeeInfoResponse>