Thông tin về thuế tại FeeInfo

Yêu cầu

Cú pháp

Thông báo TaxFeeInfo sử dụng cú pháp sau:

<?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>
        <!--"exclusive" parameter is optional -->
        <Rank exclusive="[true|false]">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>
        <!--"exclusive" parameter is optional -->
        <Rank exclusive="[true|false]">integer</Rank>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

Phần tử và thuộc tính

Thông báo TaxFeeInfo có các phần tử và thuộc tính sau:

Phần tử / @Thuộc tính Số lần xuất hiện Loại Mô tả
TaxFeeInfo 1 Complex element Phần tử gốc của thông báo giúp xác định thuế và phí cho một cơ sở lưu trú duy nhất.
TaxFeeInfo / @timestamp 1 DateTime Ngày và giờ tạo thông báo này.
TaxFeeInfo / @id 1 string Giá trị nhận dạng duy nhất cho thông báo yêu cầu này. Giá trị này được trả về trong thông báo phản hồi. Các ký tự được phép là a-z, A-Z, 0-9, _ (dấu gạch dưới) và - (dấu gạch ngang).
TaxFeeInfo / @partner 1 string Tài khoản đối tác dùng cho thông báo này. Giá trị của chuỗi này là giá trị của "Khoá đối tác" được liệt kê trên trang Cài đặt tài khoản trong Hotel Center.

Lưu ý: Nếu bạn có một phần phụ trợ cung cấp nguồn cấp dữ liệu cho nhiều tài khoản, thì giá trị này cần phải khớp với giá trị của thuộc tính ID được chỉ định trong phần tử <RequestorID> của thông báo <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> cho cùng một tài khoản.

TaxFeeInfo / Property 1..n Property Vùng chứa giúp xác định thuế và phí cho một cơ sở lưu trú duy nhất.
TaxFeeInfo / Property / @action 0..1 string Chỉ định cách áp dụng bản cập nhật. Chỉ hỗ trợ overlay và giá trị mặc định là overlay. Mọi TaxesFees trước đó cho tài sản này sẽ bị xoá trước khi bản cập nhật này được áp dụng.
TaxFeeInfo / Property / ID 1 string Giá trị nhận dạng duy nhất của cơ sở lưu trú. Giá trị này phải khớp với Mã khách sạn được chỉ định bằng phần tử <id> trong phần tử <listing> trong Nguồn cấp dữ liệu danh sách khách sạn. Mã khách sạn cũng có trong Hotel Center.
TaxFeeInfo / Property / Taxes 0..1 Taxes Vùng chứa một hoặc nhiều phần tử <Tax>.
TaxFeeInfo / Property / Taxes / Tax 1..n Tax Một loại thuế riêng áp dụng cho cơ sở lưu trú.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes 0..1 RoomTypes Vùng chứa danh sách các loại phòng mà khoản thuế áp dụng. Thuế sẽ áp dụng cho mỗi <RoomType> được xác định. Nếu bạn không xác định <RoomTypes>, thuế sẽ áp dụng cho tất cả phòng.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType 1..n RoomType Xác định một loại phòng. Loại phòng được xác định trong phần tử <RoomData> trong thông báo Giao dịch (Dữ liệu cơ sở lưu trú) và như được xác định bằng RoomID. (Giá trị <RoomID> của giá trị này cũng được thuộc tính InvTypeCode trong các thông báo OTA_HotelRateAmountNotifRQ tham chiếu.)
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType / @id 1 string Giá trị nhận dạng duy nhất của quỹ phòng (loại phòng). Giá trị này tương ứng với <RoomID> trong thông báo Giao dịch (Dữ liệu về cơ sở lưu trú). Số lượng ký tự tối đa được phép là 50.
TaxFeeInfo / Property / Taxes / Tax / RatePlans 0..1 RatePlans Vùng chứa danh sách các gói giá mà khoản thuế áp dụng. Nếu bạn không xác định <RatePlans>, thuế sẽ áp dụng cho tất cả gói giá.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan 1..n RatePlan Xác định một gói giá. Gói giá được xác định là tổng hợp gói dịch vụ, giá và tình trạng phòng, theo cách xác định trong các thông báo Giao dịch (Dữ liệu của cơ sở lưu trú), OTA_HotelRateAmountNotifRQ và OTA_HotelAvailNotifRQ, đồng thời gói giá còn được xác định bằng PackageID.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan / @id 1 string Giá trị nhận dạng duy nhất của gói giá. Giá trị này tương ứng với giá trị PackageID trong <PackageData> của thông báo Giao dịch (Dữ liệu của cơ sở lưu trú) và giá trị RatePlanCode được đặt trong thuộc tính <StatusApplicationControl> của cả thông báo <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ>. Số lượng ký tự tối đa được phép sử dụng là 50.
TaxFeeInfo / Property / Taxes / Tax / BookingDates 0..1 BookingDates Vùng chứa một hoặc nhiều phạm vi ngày dùng để xác định thời điểm phải đặt phòng để áp dụng thuế đó.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange 1..99 DateRange Phạm vi ngày xác định thời điểm phải đặt phòng để áp dụng thuế đó.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @start 0..1 Date Ngày bắt đầu (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trước hoặc trùng với ngày end. Nếu bạn không xác định start, phạm vi ngày sẽ không có giới hạn vì không có ngày bắt đầu.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @end 0..1 Date Ngày kết thúc (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trùng hoặc sau ngày start. Nếu bạn không chỉ định end, phạm vi ngày sẽ không có giới hạn vì không có ngày kết thúc.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu bạn không xác định, tất cả các ngày trong tuần đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi xác định một ngày. Ví dụ: "MTWHF" cho biết là được phép sử dụng các ngày làm việc trong tuần trong phạm vi ngày.

Các ký tự hợp lệ:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

TaxFeeInfo / Property / Taxes / Tax / CheckinDates 0..1 CheckinDates Vùng chứa một hoặc nhiều phạm vi ngày dùng để xác định thời điểm phải nhận phòng để áp dụng thuế đó.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange 1..20 DateRange Phạm vi ngày xác định thời điểm phải nhận phòng để áp dụng thuế đó.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @start 0..1 Date Ngày bắt đầu (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trước hoặc trùng với ngày end. Nếu bạn không xác định start, phạm vi ngày sẽ không có giới hạn vì không có ngày bắt đầu.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @end 0..1 Date Ngày kết thúc (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trùng hoặc sau ngày start. Nếu bạn không chỉ định end, phạm vi ngày sẽ không có giới hạn vì không có ngày kết thúc.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu bạn không xác định, tất cả các ngày trong tuần đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi xác định một ngày. Ví dụ: "MTWHF" cho biết là được phép sử dụng các ngày làm việc trong tuần trong phạm vi ngày.

Các ký tự hợp lệ:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

TaxFeeInfo / Property / Taxes / Tax / CheckoutDates 0..1 CheckoutDates Vùng chứa một hoặc nhiều phạm vi ngày dùng để xác định thời điểm phải trả phòng để áp dụng thuế đó.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange 1..20 DateRange Phạm vi ngày xác định thời điểm phải trả phòng để áp dụng thuế đó.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @start 0..1 Date Ngày bắt đầu (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trước hoặc trùng với ngày end. Nếu bạn không xác định start, phạm vi ngày sẽ không có giới hạn vì không có ngày bắt đầu.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @end 0..1 Date Ngày kết thúc (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trùng hoặc sau ngày start. Nếu bạn không chỉ định end, phạm vi ngày sẽ không có giới hạn vì không có ngày kết thúc.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu bạn không xác định, tất cả các ngày trong tuần đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi xác định một ngày. Ví dụ: "MTWHF" cho biết là được phép sử dụng các ngày làm việc trong tuần trong phạm vi ngày.

Các ký tự hợp lệ:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

TaxFeeInfo / Property / Taxes / Tax / StayDates 0..1 StayDates

Vùng chứa một hoặc nhiều phạm vi ngày để xác định liệu có áp dụng thuế đó hay không, chẳng hạn như để áp dụng chiết khấu theo mùa.

TaxFeeInfo / Property / Taxes / Tax / StayDates / @application 1 enum

Mô tả cách áp dụng thuế.

Các giá trị hợp lệ là:

  • all: Áp dụng thuế cho mỗi đêm trong hành trình nếu tất cả các ngày trong hành trình đều trùng với ngày trong thời gian lưu trú.
  • any: Áp dụng thuế cho tất cả các đêm trong hành trình nếu có bất kỳ ngày nào trong hành trình trùng với một ngày trong khoảng thời gian lưu trú.
  • overlap: Chỉ áp dụng thuế cho những đêm trong hành trình trùng với một ngày trong khoảng thời gian lưu trú.

    Lưu ý: overlap chỉ hợp lệ khi <Period> được đặt là night.

Bạn phải luôn chỉ định thuộc tính này.

TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange 1..99 DateRange Phạm vi ngày xác định những ngày sẽ áp dụng thuế.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @start 0..1 Date Ngày bắt đầu (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trước hoặc trùng với ngày end. Nếu bạn không xác định start, phạm vi ngày sẽ không có giới hạn vì không có ngày bắt đầu.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @end 0..1 Date Ngày kết thúc (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trùng hoặc sau ngày start. Nếu bạn không chỉ định end, phạm vi ngày sẽ không có giới hạn vì không có ngày kết thúc.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu bạn không xác định, tất cả các ngày trong tuần đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi xác định một ngày. Ví dụ: "MTWHF" cho biết là được phép sử dụng các ngày làm việc trong tuần trong phạm vi ngày.

Các ký tự hợp lệ:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

TaxFeeInfo / Property / Taxes / Tax / Type 1 enum

Các giá trị hợp lệ là:

  • percent: Tỷ lệ phần trăm tính trên tổng giá
  • amount: Số tiền cố định cần cộng thêm vào giá sau cùng
  • cumulative_percent: Tỷ lệ phần trăm của tổng giá, thuế và phí tích luỹ trước khi tính thuế hoặc phí này. Nếu bạn chỉ định giá trị này, thì bạn cũng phải chỉ định <Rank>.
  • Bạn không thể chỉ định <Brackets><AgeBrackets> bằng cumulative_percent làm loại.

TaxFeeInfo / Property / Taxes / Tax / Basis 1 enum

Các giá trị hợp lệ là:

  • room: <Amount> được áp dụng cho phòng này.
  • person: <Amount> áp dụng cho mỗi người. Giá trị này chỉ áp dụng nếu bạn đặt <Type> là số tiền.
TaxFeeInfo / Property / Taxes / Tax / Period 1 enum

Các giá trị hợp lệ là:

  • stay: <Amount> sẽ được cộng thêm vào tổng giá của khoảng thời gian lưu trú.
  • night: <Amount> sẽ được cộng thêm vào mỗi đêm lưu trú.
TaxFeeInfo / Property / Taxes / Tax / Currency 0..1 string Mã đơn vị tiền tệ gồm 3 chữ cái của khoản thuế (ví dụ: USD).

Lưu ý: Nếu bạn không chỉ định <Currency> nhưng chỉ định <Amount> thì giá trị <Currency> sẽ mặc định là đơn vị tiền tệ của mức giá cơ bản.

TaxFeeInfo / Property / Taxes / Tax / Amount 0..1 float Giá trị phần trăm hoặc số tiền thuế.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights 0..1 ApplicableNights Giá trị này chỉ áp dụng nếu bạn đặt <Type>amount và đặt <Period>night.

Giới hạn số đêm có thể áp dụng thuế.

Hãy chỉ định max hoặc excluded, chứ không chỉ định cả hai.

TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @max 0..1 integer <ApplicableNights max="N"> cho biết bạn nên loại trừ những đêm sau N đêm đầu tiên.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @excluded 0..1 integer <ApplicableNights excluded="N"> cho biết N đêm đầu tiên sẽ bị loại trừ.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay 0..1 LengthOfStay Xác định giới hạn thời gian lưu trú mà thuế có thể được áp dụng. Thuế sẽ không được áp dụng nếu thời gian lưu trú vượt ra khỏi giới hạn tối thiểu và giới hạn tối đa.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @min 0..1 integer Số đêm tối thiểu được phép trong khoảng thời gian lưu trú để áp dụng thuế. Nếu bạn không xác định giá trị này, thì sẽ không có số đêm tối thiểu.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @max 0..1 integer Số đêm tối đa được phép trong khoảng thời gian lưu trú để áp dụng thuế. Nếu bạn không xác định giá trị này, thì sẽ không có số đêm tối đa.
TaxFeeInfo / Property / Taxes / Tax / Brackets 0..1 Brackets Vùng chứa một hoặc nhiều phần tử <Bracket>. Xác định một tập hợp các khung thuế có liên quan với nhau và không chồng chéo. Ví dụ: Thuế thuộc nhóm GST của Ấn Độ.

Phần tử này chỉ hợp lệ khi bạn đặt <Period> thành night và không chỉ định <Amount>.

TaxFeeInfo / Property / Taxes / Tax / Brackets / @base_amount 0..1 float Giá trị phần trăm hoặc số tiền thuế, áp dụng cho giá mỗi đêm thấp hơn giá trị starts_at của khung thuế đầu tiên.
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket 1..n Bracket Xác định khung thuế dựa trên giá mỗi đêm.
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @starts_at 1 float

Xác định giới hạn dưới của khung thuế. Giới hạn trên được chỉ định trong trường starts_at của khung thuế tiếp theo. Không có giới hạn trên cho khung thuế cuối cùng.

Một khung thuế sẽ được áp dụng khi giá mỗi đêm lớn hơn hoặc bằng giá trị starts_at của khung thuế đó và hoàn toàn thấp hơn giá trị starts_at của khung thuế tiếp theo.

Giá trị này phải hoàn toàn lớn hơn 0.

TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @amount 1 float Giá trị phần trăm hoặc số tiền thuế áp dụng cho khung thuế này.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets 0..1 AgeBrackets Cho phép chỉ định một bộ thuế dựa trên độ tuổi của người lưu trú.

Phần tử này chỉ hợp lệ khi bạn không chỉ định <Brackets><Amount>, <Basis> được đặt thành person<Type> được đặt thành amount.

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge 0..1 AdultCharge Vùng chứa để chỉ định thuế cho người lớn.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge / @amount 1 float Số tiền thuế cố định áp dụng cho người lớn.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets Vùng chứa một hoặc nhiều phần tử <ChildAgeBracket>.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..n ChildAgeBracket Xác định độ tuổi của trẻ em và số tiền thuế tương ứng.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer

Xác định giới hạn trên về độ tuổi của trẻ. Giới hạn dưới được chỉ định trong trường max_age + 1 của khung thuế trước đó. Cả cận trên và cận dưới đều được bao gồm. Giới hạn dưới của khung thuế đầu tiên là 0.

max_age phải nằm trong khoảng từ 0 đến 17 (bao gồm).

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 1 float Số tiền thuế cố định áp dụng cho trẻ em trong độ tuổi này.
TaxFeeInfo / Property / Taxes / Tax / UserCountries 0..1 UserCountries Vùng chứa để liệt kê các quốc gia của người dùng mà thuế được bao gồm hoặc không bao gồm. Nếu có, thuế sẽ chỉ được thêm hoặc loại trừ đối với người dùng ở các quốc gia được chỉ định.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / @type 0..1 enum Loại quy cách UserCountries.

Các giá trị hợp lệ là includeexclude.

Nếu UserCountries type được đặt thành include, thì thuế sẽ chỉ áp dụng cho người dùng ở các quốc gia được liệt kê.

Trong khi đó, nếu UserCountries typeexclude, thì thuế sẽ chỉ áp dụng cho người dùng ở bên ngoài các quốc gia được liệt kê.

Nếu bạn không đặt UserCountries type, chúng tôi sẽ coi đó là include và thuế sẽ chỉ áp dụng cho người dùng ở các quốc gia được liệt kê.

TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country 1..n Country Xác định một quốc gia trong danh sách UserCountries.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country / @code 1 string Mã quốc gia theo CLDR, chẳng hạn như DE hoặc FR. Xin lưu ý rằng đối với một số quốc gia, mã quốc gia theo CLDR không giống với mã quốc gia gồm 2 chữ cái theo tiêu chuẩn ISO. Ngoài ra, mã vùng CLDR không được hỗ trợ.
TaxFeeInfo / Property / Taxes / Tax / Rank 1 integer

Thứ hạng chỉ định thứ tự áp dụng cho một khoản thuế hoặc phí. Ví dụ: giá trị 2 có nghĩa là thuế được áp dụng ở vị trí thứ hai. Bạn phải luôn chỉ định phần tử này nếu đặt <Type> thành cumulative_percent. Nhìn chung, thứ tự này được áp dụng cho cả thuế và phí.

<Rank>2</Rank>

Bạn có thể sử dụng các giá trị thứ hạng trùng lặp giữa thuế và phí, nhưng điều này có thể dẫn đến hành vi không xác định khi thuế và phí được áp dụng theo cách tuỳ ý và tích luỹ.

Ngoài ra, hãy sử dụng tham số "exclusive" trong <Rank> để cho biết rằng tất cả thuế và phí có cùng thứ hạng đều được áp dụng cho giá. Giá trị mặc định là false và tất cả thuế và phí có cùng thứ hạng sẽ được áp dụng cho mức giá theo cách tuỳ ý. "exclusive" là không bắt buộc.

Nếu bạn đặt tham số exclusive thành true, thì chỉ thuế đầu tiên trong <Tax> hoặc phí đầu tiên trong <Fee> được áp dụng cho mức thuế.

<Rank exclusive="true">1</Rank>

Thuế được áp dụng trước phí; do đó, nếu thuế và phí có cùng thứ hạng và phí được đặt "exclusive" thành true, thì thuế vẫn được áp dụng trước. Phương pháp hay nhất là bạn nên liệt kê thuế và phí theo thứ tự mà bạn cần áp dụng.

Để bao gồm tất cả các khoản thuế và phí có cùng thứ hạng, hãy tránh đặt exclusive thành true.

Thuế và phí không có thứ hạng sẽ được áp dụng trước tất cả các mục có thứ hạng.

<Rank> phải nằm trong khoảng từ 1 đến 99 (kể cả 1 và 99).

TaxFeeInfo / Property / Fees 0..1 Fees Vùng chứa một hoặc nhiều phần tử <Fee>.
TaxFeeInfo / Property / Fees / Fee 1..n Fee

Một loại phí riêng biệt áp dụng cho cơ sở lưu trú.

Tất cả các phần tử con của <Tax> cũng được hỗ trợ đối với <Fee> có cú pháp tương tự.

Ví dụ

Mỗi cơ sở lưu trú chỉ được có tối đa 300 loại thuế và phí. Tham khảo ví dụ "Xoá thuế" để xoá thuế và phí khỏi một tài sản.

Thông báo cơ bản

Thông báo TaxFeeInfo cơ bản:

<?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>

Xoá thuế

Xoá tất cả thuế và phí cấp cơ sở lưu trú cho khách sạn được chỉ định:

<?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>

Thuế theo nhóm

Thuế thuộc nhóm GST của Ấn Độ, áp dụng dựa trên giá mỗi đêm. Khung thuế:

  • Không tính thuế nếu giá mỗi đêm nhỏ hơn hoặc bằng 1.000.
  • Thuế 12% nếu giá mỗi đêm lớn hơn 1.000 và nhỏ hơn hoặc bằng 7.500.
  • Thuế 18% nếu giá mỗi đêm trên 7.500.
<?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>

Thuế dựa trên độ tuổi

Thuế được áp dụng dựa trên độ tuổi của người lưu trú:

  • Thuế 20 USD cho người lớn.
  • Trẻ em từ 11 đến 17 tuổi phải trả thuế 10 USD.
  • Thuế $5 cho trẻ em từ 0 đến 10 tuổi.
<?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>

Khoảng ngày lưu trú trùng lặp

Khi bạn xác định nhiều khoảng ngày lưu trú trùng lặp với nhau, thì ngày lưu trú đã cho chỉ cần đáp ứng một trong các khoảng đó chứ không cần đáp ứng tất cả. Bạn phải chỉ định phạm vi ngày lưu trú trong một phạm vi ngày bắt đầu và ngày kết thúc duy nhất.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2025-03-12T10:59:49+01:00"
            id="12345678"
            partner="partner_key">
  <Property action="overlay">
    <ID>987654</ID>
      <Taxes>
        <Tax>
          <Type>amount</Type>
          <Basis>person</Basis>
          <Period>night</Period>
          <RoomTypes>
            <RoomType id="RoomID_1"/>
            <RoomType id="RoomID_2"/>
          </RoomTypes>
          <StayDates application="any">
            <DateRange start="2025-06-16"/>
          </StayDates>
          <Currency>USD</Currency>
          <Amount>50</Amount>
        </Tax>
      </Taxes>
      <Fees>
        <Fee>
          <Type>amount</Type>
          <Basis>room</Basis>
          <Period>stay</Period>
          <StayDates application="any">
            <DateRange start="2025-03-12" end="2025-03-18"/>
          </StayDates>
          <Currency>USD</Currency>
          <Amount>200</Amount>
        </Fee>
        <Fee>
          <Type>amount</Type>
          <Basis>room</Basis>
          <Period>stay</Period>
          <StayDates application="any">
            <DateRange start="2025-03-19"/>
          </StayDates>
          <Currency>USD</Currency>
          <Amount>300</Amount>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

Nhiều loại thuế và phí có thứ hạng độc quyền

Sau đây là ví dụ về nhiều loại thuế và phí có exclusive="true" và thứ hạng khác nhau. Hãy cân nhắc các loại thuế và phí sau đây mà bạn nên áp dụng cho giá:

  • Thuế lưu trú 5% với thứ hạng 1 exclusive="true".
  • Thuế dịch vụ phòng là 10 USD, có thứ hạng là 1.
  • Phí vệ sinh là 50 USD với thứ hạng 2 exclusive="true".
  • Phí tiện nghi là 2% với thứ hạng 3.

Thứ tự thời gian áp dụng thuế và phí dựa trên <Rank> là:

  1. Thuế lưu trú có exclusive="true" và thứ hạng 1 sẽ được áp dụng trước.
  2. Thuế dịch vụ phòng có thứ hạng 1 sẽ không được áp dụng vì thuế lưu trú trước đó là thuế độc quyền.
  3. Tiếp theo, phí vệ sinh có exclusive="true" và thứ hạng 2 sẽ được áp dụng.
  4. Phí tiện nghi có thứ hạng 3 được áp dụng sau phí vệ sinh có thứ hạng 2.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2024-02-29T12:00:00Z"
            id="tax-fee-id"
            partner="partner_key">
  <Property action="overlay">
    <ID>765432</ID>
    <Taxes>
      <Tax>
        <Type>percent</Type>
        <Amount>5</Amount>
        <Period>stay</Period>
        <Basis>room</Basis>
        <Rank exclusive="true">1</Rank>
      </Tax>
      <Tax>
        <Type>amount</Type>
        <Amount>10</Amount>
        <Period>night</Period>
        <Basis>room</Basis>
        <Currency>USD</Currency>
        <Rank>1</Rank>
      </Tax>
    </Taxes>
    <Fees>
      <Fee>
        <Type>amount</Type>
        <Amount>50</Amount>
        <Period>night</Period>
        <Basis>room</Basis>
        <Currency>USD</Currency>
        <Rank exclusive="true">2</Rank>
      </Fee>
      <Fee>
        <Type>percent</Type>
        <Amount>2</Amount>
        <Period>stay</Period>
        <Basis>room</Basis>
        <Rank>3</Rank>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

Phản hồi

Cú pháp

Thông báo TaxFeeInfoResponse sử dụng cú pháp sau:

<?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>

Phần tử và thuộc tính

Thông báo TaxFeeInfoResponse có các phần tử và thuộc tính sau:

Phần tử / @Thuộc tính Số lần xuất hiện Loại Mô tả
TaxFeeInfoResponse 1 Complex element Phần tử gốc cho biết thông báo yêu cầu TaxFeeInfo nhận được đã thành công hay gặp lỗi.
TaxFeeInfoResponse / @timestamp 1 DateTime Ngày và giờ tạo thông báo này.
TaxFeeInfoResponse / @id 1 string Giá trị nhận dạng duy nhất lấy từ thông báo TaxFeeInfo tương ứng.
TaxFeeInfoResponse / @partner 1 string Tài khoản đối tác dùng cho thông báo này.
TaxFeeInfoResponse / Success 0..1 Success Cho biết rằng thông báo TaxFeeInfo đã được xử lý thành công mà không có bất kỳ cảnh báo, lỗi hoặc lượt xử lý hỏng nào.

Mỗi thông báo có <Success> hoặc <Issues>.

TaxFeeInfoResponse / Issues 0..1 Issues Vùng chứa một hoặc nhiều vấn đề gặp phải trong quá trình xử lý thông báo TaxFeeInfo.

Mỗi thông báo có <Success> hoặc <Issues>.

TaxFeeInfoResponse / Issues / Issue 1..n Issue Thông tin mô tả về cảnh báo, lỗi hoặc lượt xử lý hỏng trong quá trình xử lý thông báo TaxFeeInfo. Bạn có thể xem thông tin chi tiết về các lỗi này trong Thông báo lỗi về trạng thái của nguồn cấp dữ liệu.
TaxFeeInfoResponse / Issues / Issue / @code 1 integer Giá trị nhận dạng của vấn đề.
TaxFeeInfoResponse / Issues / Issue / @status 1 enum

Loại vấn đề gặp phải.

Các giá trị hợp lệ là warning, errorfailure .

Ví dụ

Thành công

Dưới đây là phản hồi cho một thông báo TaxFeeInfo được xử lý thành công.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfoResponse timestamp="2024-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</TaxFeeInfoResponse>

Vấn đề

Dưới đây là phản hồi cho một thông báo TaxFeeInfo không được xử lý do gặp lỗi.

<?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>