Thông báo về thuế và phí

Tổng quan

Thông báo TaxFeeInfo xác định các khoản thuế và phí áp dụng cho người dùng khi đặt phòng cơ sở lưu trú và dựa trên quy định về thuế của cơ sở lưu trú được nêu trên trang web. Để thêm dữ liệu thuế và phí, bạn sử dụng thông báo Giá (OTA_HotelRateAmountNotifRQ).

Hành động duy nhất được hỗ trợ cho thông báo này là overlay, dùng để thay thế dữ liệu thuế và phí cho từng cơ sở lưu trú. Bạn cần phải gửi thông tin cập nhật về thuế và phí bất cứ khi nào có thay đổi.

Các phương thức thêm thuế và phí

Có hai cách chung để thêm thuế và phí:

Trong phương thức đầu tiên, bạn chỉ định AmountAfterTax trong thông báo Giá; bạn thêm thuế và phí bằng cách gửi thông báo giá chứa cả giá cơ bản mỗi đêm (không bao gồm tất cả các khoản thuế và phí) và tổng giá mỗi đêm (bao gồm tất cả các khoản thuế và phí). Vì các mức giá này là giá mỗi đêm, nên phương pháp này chỉ áp dụng cho các khoản thuế và phí dựa trên tỷ lệ phần trăm hoặc số tiền cố định tính theo đêm, đồng thời không áp dụng cho các khoản thuế và phí tính theo lượt lưu trú.

Phương thức thứ hai (ưu tiên) là chỉ gửi giá cơ bản hằng đêm không bao gồm thuế và phí trong thông báo giá, đồng thời sử dụng TaxFeeInfo để truyền tải thuế và phí ở cấp cơ sở lưu trú. Các khoản thuế và phí riêng lẻ vẫn có thể áp dụng cho các loại phòng và gói giá cụ thể, có thể áp dụng cho một số phạm vi ngày nhất định.

Trang này chỉ mô tả và đề cập đến phương thức ưu tiên sử dụng TaxFeeInfo chứ không phải phương thức chỉ định AmountAfterTax trong thông báo Rate (Đánh giá) (OTA_HotelRateAmountNotifRQ).

Phương thức đặt thuế

Bạn có các lựa chọn sau để đặt thuế:

  • Cơ sở = [phòng|người]
  • Period = [stay|night]
  • Loại = [percent|amount]

Khi Khoảng thời gian là stay và Loại là percent, Google sẽ áp dụng thuế và phí cho toàn bộ thời gian lưu trú ngay cả khi một ngày duy nhất trong hành trình trùng lặp với phạm vi StayDates. Bạn không thể chỉ định áp dụng thuế và phí nếu MỌI ngày trong hành trình trùng với phạm vi ngày lưu trú.

Để biết ví dụ về nhiều tình huống liên quan đến thuế, hãy xem phần Hướng dẫn. Các ví dụ này bao gồm một số tình huống thuế phổ biến nhất, bao gồm cả hướng dẫn về cách:

  • Thuế phần trăm
  • Thuế cố định áp dụng cho mỗi cơ sở lưu trú
  • Tỷ lệ phần trăm thuế chỉ áp dụng cho các đêm sau đêm đầu tiên
  • Phương pháp thay thế thuế cũ bằng thuế mới
  • Bao gồm hoặc loại trừ thuế cho các quốc gia
  • Đặt thuế theo bậc bằng dấu ngoặc đơn
  • Thiết lập thuế và phí phải chịu thuế

Các phần sau đây trình bày các nguyên tắc chung, ví dụ cơ bản và hướng dẫn về cách thực hiện để bạn bắt đầu thêm và cập nhật thông tin thuế.

Phần tử bắt buộc và không bắt buộc

Tài liệu tham khảo XML cung cấp thông tin mô tả về các phần tử bắt buộc và không bắt buộc. Để biết thông tin chi tiết về các thuộc tính và các phần tử con, hãy xem bài viết Các phần tử và thuộc tính TaxFeeInfo.

Cú pháp và giản đồ

Hãy sử dụng ví dụ về Cú pháp TaxFeeInfo làm tài liệu tham khảo khi bạn tạo thông báo để đảm bảo bạn đang làm theo đúng định dạng. Bạn có thể sử dụng một công cụ XML của bên thứ ba như xmllint để xác thực nguồn cấp dữ liệu bằng các giản đồ đã xuất bản trước khi gửi nguồn cấp dữ liệu cho Google. Để biết lược đồ thông báo TaxFeeinfo, hãy xem bài viết Lược đồ quảng cáo khách sạn.

Nguyên tắc

Phần này trình bày các nguyên tắc chung và hướng dẫn đặc biệt để đặt thuế và phí.

Thao tác

Lớp phủ
Sử dụng thao tác overlay để thay thế tất cả các khoản thuế cho một cơ sở lưu trú. Thao tác overlay là thao tác mặc định và là thao tác duy nhất được hỗ trợ. Mọi khoản thuế và phí trước đây cho cơ sở lưu trú này sẽ bị xoá sau khi bản cập nhật này được áp dụng.

Giải pháp chung

  • Mỗi Tax được đánh giá và tính toán dựa trên số lượng AmountBeforeTax được chỉ định trong BaseByGuestAmt (nếu có).

  • Sau khi tính toán tất cả các khoản thuế và phí hiện hành, các khoản này sẽ được cộng vào giá cơ bản để tạo thành tổng giá.

  • Cú pháp cho <Tax><Fee> giống nhau.

  • Thuế và phí có thể có các quy tắc ràng buộc, chẳng hạn như:

    • Chỉ áp dụng cho một số loại phòng và gói giá cụ thể.
    • Chỉ áp dụng cho một số ngày lưu trú cụ thể.

    Các quy tắc ràng buộc này là không bắt buộc và bạn không phải đặt mọi loại quy tắc ràng buộc; bạn có thể để trống các quy tắc này nếu quy tắc đó áp dụng cho tất cả.

  • Gửi thông tin cập nhật TaxFeeInfo bất cứ khi nào có thay đổi về thuế hoặc phí.

Ví dụ:

Phần này cung cấp ví dụ cơ bản về một thông báo TaxFeeInfo sử dụng các phần tử bắt buộc và không bắt buộc. Sau khi chuẩn bị tệp, bạn cần gửi tệp đó đến Google bằng cách sử dụng thông báo POST đến điểm cuối này:

https://www.google.com/travel/hotels/uploads/taxes

Để tìm hiểu thêm về cách đẩy/POST tin nhắn, hãy xem phần Đẩy tin nhắn.

Đối với thuộc tính hotel_id, hãy sử dụng Mã khách sạn duy nhất mà bạn đã sử dụng trong hệ thống để xác định 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 <id> trong phần tử <listing> của nguồn cấp dữ liệu Danh sách khách sạn. Tính nhất quán với hệ thống của bạn là yếu tố quan trọng để đảm bảo rằng Google đang hiển thị chính xác dữ liệu của bạn.

Ví dụ này cho biết cách đặt tỷ lệ phần trăm thuế là 10% và số tiền phí là 50 đô la cho tổng thời gian lưu trú (không phải cho mỗi đêm):

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2022-08-20T16:20:00-04:00"
            partner="partner_key"
            id="12345678">
  <Property>
    <ID>HOTELID</ID>
    <Taxes>
      <Tax>
        <Type>percent</Type>
        <Basis>room</Basis>
        <Period>stay</Period>
        <Amount>10</Amount>
      </Tax>
    </Taxes>
    <Fees>
      <Fee>
        <Type>amount</Type>
        <Basis>room</Basis>
        <Period>stay</Period>
        <Amount>50</Amount>
        <Currency>USD</Currency>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

Để biết ví dụ về cách thêm thuế liên quan đến độ tuổi và các ví dụ khác, hãy xem phần Ví dụ về thuế.

Hướng dẫn

Phần này cung cấp giải pháp cho các trường hợp mà bạn có thể gặp phải khi đặt thuế và phí.

Tình huống 1: Cách thêm thuế cố định

Ví dụ về thuế này cho biết cách đặt mức thuế cố định cho mỗi cơ sở lưu trú.

Mô tả

Bạn muốn áp dụng mức thuế cố định cho phòng hoặc lượt lưu trú trên mỗi cơ sở lưu trú thay vì mức thuế theo tỷ lệ phần trăm.

Giải pháp

Sử dụng amount thay vì percentage để thêm tuỳ chọn thuế cố định.

Mẫu

Mẫu này cho thấy cách thêm thuế cố định bằng cách sử dụng amount thay vì percentage:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2022-08-16T16:20:00-04:00"
            id="12345678"
            partner="partner_key">
  <Property>
    <ID>Property_1</ID>
    <Taxes>
      <Tax>
        <Type>amount</Type>
        <Basis>room</Basis>
        <Period>stay</Period>
        <Amount>30</Amount>
      </Tax>
    </Taxes>
  </Property>
</TaxFeeInfo>

Tình huống 2: Cách nhắm mục tiêu thuế bằng ApplicableNights

Mô tả

Bạn chỉ muốn áp dụng thuế phí cố định cho các đêm sau đêm đầu tiên. Ví dụ: Một khoản phí bắt buộc đối với việc sử dụng một số tiện nghi hằng ngày không được tính vào đêm đầu tiên, vì(các) khách sẽ không có cơ hội sử dụng tiện nghi cụ thể đó.

Giải pháp

Sử dụng <ApplicableNights excluded="1"/> để kiểm soát những đêm áp dụng thuế.

Mẫu

Mẫu này cho thấy cách sử dụng ApplicableNights:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2022-08-16T16:20:00-04:00"
            id="12345678"
            partner="partner_key">
  <Property>
    <ID>Property_1</ID>
    <Taxes>
      <Tax>
        <Type>amount</Type>
        <Basis>room</Basis>
        <Period>night</Period>
        <Amount>50</Amount>
        <ApplicableNights excluded="1"/>
      </Tax>
    </Taxes>
  </Property>
</TaxFeeInfo>

Tình huống 3: Cách thay thế thuế và phí cũ bằng thuế và phí mới

Mô tả

Các loại thuế và phí hiện tại đã thay đổi và cần được thay thế bằng thuế và phí mới.

Giải pháp

Sử dụng thao tác overlay để xoá tất cả các loại thuế và phí hiện có.

Mẫu

Mẫu sau đây cho biết cách xoá tất cả các khoản thuế và phí của một cơ sở lưu trú:

    <?xml version="1.0" encoding="UTF-8"?>
    <TaxFeeInfo timestamp="2022-08-16T16:20:00-04:00"
                id="12345678"
                partner="partner_key">
      <Property action="overlay">
        <ID>Property_1</ID>
      </Property>
    </TaxFeeInfo>

Tình huống 4: Cách thêm hoặc loại trừ thuế cho các quốc gia

Mô tả

Bạn cần thêm thuế cho một số quốc gia trong khi loại trừ thuế cho một quốc gia khác. Ví dụ: bạn cần loại trừ thuế cho một liên minh nhỏ hơn có thuế không phải của Liên minh Châu Âu, trong khi tính thuế cho tất cả các quốc gia khác.

Giải pháp

Sử dụng tuỳ chọn include hoặc exclude cho UserCountries type. Hãy sử dụng include để chỉ áp dụng thuế cho quốc gia được liệt kê hoặc sử dụng exclude để áp dụng thuế cho tất cả các quốc gia ngoại trừ quốc gia được liệt kê.

Mẫu

Mẫu sau đây cho biết cách thiết lập thuế cho người dùng bên ngoài quốc gia của khách sạn (Israel):

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2022-08-16T16: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>
        <UserCountries type="exclude">
          <Country code="IL"/>
        </UserCountries>
      </Tax>
    </Taxes>
  </Property>
</TaxFeeInfo>

Tình huống 5: Cách đặt thuế theo bậc có dấu ngoặc đơn

Mô tả

Bạn muốn thêm thuế theo nhóm GST áp dụng dựa trên giá mỗi đêm.

Giải pháp

Trong trường hợp này, giả sử khung thuế GST của quốc gia mục tiêu là:

  • Không tính thuế nếu mức 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.

Mẫu

Mẫu sau đây cho thấy cách thiết lập thuế theo bậc bằng dấu ngoặc đơn:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2022-08-28T16: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>

Tình huống 6: Cách thiết lập thuế và phí phải chịu thuế

Mô tả

Bạn muốn thêm một loại thuế như thuế GTGT và một khoản phí dịch vụ khác cũng áp dụng cho loại thuế đó.

Giải pháp

Tình huống này xem xét hai ví dụ về trường hợp sử dụng phí phải chịu thuế:

  • Cả thuế và phí phải chịu thuế đều được xác định là khoản phí tính theo tỷ lệ phần trăm.
  • Thuế là khoản phí tính theo tỷ lệ phần trăm, còn phí phải chịu thuế là khoản phí cố định cho mỗi lượt lưu trú.

Ví dụ

Phí chịu thuế tính theo phần trăm

Ví dụ này có AmountBeforeTax là 100 đô la, thuế GST là 18% và phí dịch vụ bổ sung là 5%, tổng tỷ lệ phần trăm phí phải chịu thuế là 5,9% (5*1,18) và tổng số tiền là 123,9 đô la [= 118 đô la (18% GST) + 5,9 đô la (5,9% phí dịch vụ)].

Đoạn mã sau đây xác định thuế (GST) và phí phải chịu thuế (phí dịch vụ) dưới dạng tỷ lệ phần trăm:

<TaxFeeInfo timestamp="2022-08-16T16: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>18</Amount>
      </Tax>
    </Taxes>
    <Fees>
      <Fee>
        <Type>percent</Type>
        <Basis>room</Basis>
        <Period>stay</Period>
        <Amount>5.9</Amount>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

Phí chịu thuế dưới dạng số tiền

Ví dụ này có AmountBeforeTax là 100 đô la, thuế GST là 18% và phí cố định là 20 đô la. Tổng phí phải chịu thuế là 23,6 đô la (20 đô la * 1,18) và tổng số tiền là 141,6 đô la [= 118 đô la (18% GST) + 23,6 đô la (20 đô la theo mức cố định)].

Đoạn mã sau đây xác định thuế (GST) theo tỷ lệ phần trăm và phí phải chịu thuế (phí dịch vụ) dưới dạng số tiền theo mức cố định:

<TaxFeeInfo timestamp="2022-08-16T16: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>18</Amount>
      </Tax>
    </Taxes>
    <Fees>
      <Fee>
        <Type>amount</Type>
        <Basis>room</Basis>
        <Period>stay</Period>
        <Amount>23.6</Amount>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>