Komunikat o podatkach i opłatach

Przegląd

Komunikat TaxFeeInfo określa podatki i opłaty, które obowiązują użytkownika podczas rezerwacji obiektu, oraz przepisy podatkowe obiektu opisane w witrynie. Aby dodać dane o podatkach i opłatach, użyj komunikatu Rate (OTA_HotelRateAmountNotifRQ).

Jedyną obsługiwaną czynnością w przypadku tego komunikatu jest overlay, która służy do zastępowania danych o podatkach i opłatach w przypadku każdego obiektu. Pamiętaj, aby wysyłać aktualizacje podatków i opłat za każdym razem, gdy nastąpią zmiany.

Więcej informacji o tym, jak wysyłać informacje o podatkach i opłatach oraz szczegółowe informacje o cenach, znajdziesz w zasadach dotyczących podatków i opłat.

Metody dodawania podatków i opłat

Podatki i opłaty możesz dodawać na 2 sposoby:

W pierwszej metodzie w komunikacie Rate podajesz wartość AmountAfterTax. Podatki i opłaty dodajesz, wysyłając komunikaty Rate, które zawierają zarówno podstawowe stawki za noc (bez podatków i opłat), jak i łączne stawki za noc (z podatkami i opłatami). Ponieważ te stawki są stawkami za noc, to podejście działa tylko w przypadku podatków i opłat opartych na procentach lub stałych kwotach za noc. Nie można używać podatków i opłat za pobyt.

Druga (preferowana) metoda polega na wysyłaniu w komunikatach Rate tylko podstawowych stawek za noc bez podatków i opłat oraz używaniu komunikatu TaxFeeInfo do przekazywania informacji o podatkach i opłatach na poziomie obiektu. Poszczególne podatki i opłaty mogą być nadal ograniczone do określonych typów pokoi i planów cenowych, które obowiązują w określonych zakresach dat.

Ta strona opisuje i odnosi się tylko do preferowanej metody używania komunikatu TaxFeeInfo, a nie do metody określania wartości AmountAfterTax w komunikacie Rate (OTA_HotelRateAmountNotifRQ).

Metody ustawiania podatków

Podatki możesz ustawić na te sposoby:

  • Basis = [room|person]
  • Period = [stay|night]
  • Type = [percent|amount]

Gdy wartość Period to stay, a Type to percent, Google stosuje podatki i opłaty do całego pobytu, nawet jeśli tylko 1 data w planie podróży pokrywa się z zakresem StayDates. Nie możesz określić, że podatek i opłata mają być stosowane tylko wtedy, gdy WSZYSTKIE daty w planie podróży pokrywają się z zakresem dat pobytu. W przypadku wielu zakresów dat pobytu, które się pokrywają, zakresy StayDates są określane w jednym otwartym zakresie. Zapoznaj się z TaxFeeInfo przykładami.

Przykłady różnych scenariuszy związanych z podatkami znajdziesz w sekcji Instrukcje. Przykłady obejmują niektóre z najczęstszych scenariuszy podatkowych, w tym instrukcje dotyczące:

  1. stałego podatku i podatku procentowego stosowanego do obiektu;
  2. podatku procentowego stosowanego tylko do nocy po pierwszej nocy;
  3. metody zastępowania starych podatków nowymi;
  4. uwzględniania lub wykluczania podatków w przypadku krajów;
  5. ustawiania podatku progresywnego z progami;
  6. ustawiania podatku i opłaty podlegającej opodatkowaniu.

W kolejnych sekcjach znajdziesz ogólne wytyczne, podstawowy przykład i scenariusze instruktażowe, które pomogą Ci zacząć dodawać i aktualizować dane podatnika.

Elementy wymagane i opcjonalne

W dokumentacji XML znajdziesz opisy elementów wymaganych i opcjonalnych. Szczegółowe informacje o atrybutach i elementach podrzędnych znajdziesz w sekcji TaxFeeInfo Elementy i atrybuty.

Składnia i schematy

Podczas tworzenia komunikatu korzystaj z przykładu składni komunikatu TaxFeeInfo Syntax aby mieć pewność, że używasz prawidłowego formatu. Przed przesłaniem plików danych do Google możesz użyć narzędzia XML innej firmy, np. xmllint, aby sprawdzić, czy są one zgodne z opublikowanymi schematami. Schemat komunikatu TaxFeeinfo znajdziesz w sekcji Schematy reklam hoteli.

Wytyczne

W tej sekcji znajdziesz ogólne wytyczne i specjalne instrukcje dotyczące ustawiania podatków i opłat.

Działania

Nakładka
Użyj działania overlay, aby zastąpić wszystkie podatki w przypadku obiektu. Działanie overlay jest domyślne i jedyne obsługiwane. Po zastosowaniu tej aktualizacji wszystkie poprzednie podatki i opłaty w przypadku tego obiektu zostaną usunięte.

Ogólne

  • Każdy element Tax jest oceniany i w razie potrzeby obliczany na podstawie kwoty AmountBeforeTax określonej w elemencie BaseByGuestAmt.

  • Po obliczeniu wszystkich obowiązujących podatków i opłat są one dodawane do ceny podstawowej, aby utworzyć cenę całkowitą.

  • Składnia elementów <Tax> i <Fee> jest taka sama.

  • Podatki i opłaty mogą mieć ograniczenia, takie jak:

    • Obowiązują tylko w przypadku określonych typów pokoi i planów cenowych.
    • Obowiązują tylko w przypadku określonych dat pobytu.

    Te ograniczenia są opcjonalne i nie musisz ustawiać każdego typu ograniczenia. Jeśli dotyczy to wszystkich, możesz pozostawić te pola puste.

  • Za każdym razem, gdy nastąpi zmiana podatków lub opłat, wyślij aktualizację TaxFeeInfo.

Przykład

W tej sekcji znajdziesz podstawowy przykład komunikatu TaxFeeInfo z użyciem elementów wymaganych i opcjonalnych. Gdy przygotujesz plik, musisz wysłać go do Google za pomocą komunikatu POST do tego punktu końcowego:

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

Więcej informacji o tym, jak wysyłać komunikaty za pomocą metody push/POST, znajdziesz w artykule Wysyłanie komunikatów.

W przypadku atrybutu hotel_id użyj unikalnego identyfikatora hotelu, którego używasz w swoim systemie do identyfikowania obiektu. Ta wartość musi być zgodna z identyfikatorem hotelu określonym za pomocą <id> w elemencie <listing> w pliku danych z listą hoteli. Spójność z Twoim systemem jest niezbędna, aby Google prawidłowo wyświetlało Twoje dane.

Ten przykład pokazuje, jak ustawić 10% podatek i 50 USD opłaty za obiekt na cały pobyt (a nie za noc):

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

Przykłady dodawania podatków związanych z wiekiem i inne przykłady, zobacz Przykłady podatków.

Instrukcje

W tej sekcji znajdziesz rozwiązania scenariuszy, które mogą wystąpić podczas ustawiania podatków i opłat.

Scenariusz 1. Jak dodać stały podatek

Ten przykład podatku pokazuje, jak ustawić stały podatek za obiekt.

Opis

Chcesz zastosować stały podatek za pokój lub pobyt w obiekcie, a nie podatek procentowy.

Rozwiązanie

Aby dodać opcję stałego podatku, użyj wartości amount zamiast percentage.

Przykład

Ten przykład pokazuje, jak dodać stały podatek, używając wartości amount zamiast 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>

Scenariusz 2. Jak kierować podatki za pomocą elementu ApplicableNights

Opis

Chcesz zastosować stałą opłatę tylko do nocy po pierwszej nocy. Na przykład obowiązuje opłata za codzienne korzystanie z określonego udogodnienia, która nie jest uwzględniona w cenie pierwszej nocy, ponieważ goście nie mieli możliwości skorzystania z tego udogodnienia.

Rozwiązanie

Użyj elementu <ApplicableNights excluded="1"/>, aby określić, do których nocy mają być stosowane podatki.

Przykład

Ten przykład pokazuje, jak używać elementu 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>

Scenariusz 3. Jak zastąpić stare podatki i opłaty nowymi

Opis

Obecne podatki i opłaty uległy zmianie i trzeba je zastąpić nowymi.

Rozwiązanie

Użyj działania overlay, aby usunąć wszystkie dotychczasowe podatki i opłaty.

Przykład

Poniższy przykład pokazuje, jak usunąć wszystkie podatki i opłaty w przypadku obiektu:

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

Scenariusz 4. Jak uwzględniać lub wykluczać podatki w przypadku krajów

Opis

Musisz uwzględnić podatek w przypadku niektórych krajów, a wykluczyć go w przypadku innych. Na przykład musisz wykluczyć podatki w przypadku mniejszej konfederacji z podatkami spoza UE, a opodatkować wszystkie inne kraje.

Rozwiązanie

Użyj opcji include lub exclude w przypadku elementu UserCountries type. Użyj opcji include, aby zastosować podatek tylko do wymienionego kraju, lub opcji exclude, aby zastosować podatek do wszystkich krajów z wyjątkiem wymienionego.

Przykład

Poniższy przykład pokazuje, jak ustawić podatki dla użytkowników spoza kraju, w którym znajduje się hotel (Izrael):

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

Scenariusz 5. Jak ustawić podatek progresywny z progami

Opis

Chcesz dodać podatek GST progresywny stosowany na podstawie stawek za noc.

Rozwiązanie

W tym scenariuszu załóżmy, że progi podatku GST w kraju docelowym są następujące:

  • Brak podatku, jeśli stawka za noc jest mniejsza lub równa 1000.
  • Podatek w wysokości 12%, jeśli stawka za noc jest większa niż 1000 i mniejsza lub równa 7500.
  • Podatek w wysokości 18%, jeśli stawka za noc jest większa niż 7500.

Przykład

Poniższy przykład pokazuje, jak ustawić podatek progresywny z progami:

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

Scenariusz 6. Jak ustawić podatek i opłatę podlegającą opodatkowaniu

Opis

Chcesz dodać podatek, np. VAT, oraz inną opłatę za usługę, która również podlega opodatkowaniu.

Rozwiązanie

W tym scenariuszu rozważamy 2 przykładowe przypadki użycia opłat podlegających opodatkowaniu:

  • Zarówno podatek, jak i opłata podlegająca opodatkowaniu są zdefiniowane jako opłaty procentowe.
  • Podatek jest opłatą procentową, a opłata podlegająca opodatkowaniu jest stałą kwotą za pobyt.

Przykłady

Opłata podlegająca opodatkowaniu jako procent

W tym przykładzie wartość AmountBeforeTax wynosi 100 USD, podatek GST wynosi 18%, a dodatkowa opłata za usługę wynosi 5%, co daje łączny procent opłaty podlegającej opodatkowaniu w wysokości 5,9% (5*1,18) i łączną kwotę stawki w wysokości 123,90 USD [= 118 USD (18% GST) + 5,9 USD (5,9% opłaty za usługę)].

Poniższy fragment kodu określa podatek (GST) i opłatę podlegającą opodatkowaniu (opłatę za usługę) jako procenty:

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

Opłata podlegająca opodatkowaniu jako kwota

W tym przykładzie wartość AmountBeforeTax wynosi 100 USD, podatek GST wynosi 18%, a dodatkowa opłata stała wynosi 20 USD, co daje łączną opłatę podlegającą opodatkowaniu w wysokości 23,60 USD (20 USD*1,18) i łączną kwotę stawki w wysokości 141,60 USD [= 118 USD (18% GST) + 23,60 USD (20 USD opłaty stałej)].

Poniższy fragment kodu określa podatek (GST) jako procent, a opłatę podlegającą opodatkowaniu (opłatę za usługę) jako stałą opłatę:

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