Opis
Komunikat TaxFeeInfo
określa podatki i opłaty, które obowiązują użytkownika podczas rezerwacji miejsca zakwaterowania oraz obowiązujące w witrynie przepisy podatkowe. Aby dodać dane o podatkach i opłatach, użyj wiadomości dotyczącej ceny (OTA_HotelRateAmountNotifRQ
).
Jedynym obsługiwanym działaniem w przypadku tej wiadomości jest overlay
. Zastąpi ono dane o podatkach i opłatach w przypadku poszczególnych usług. Ważne jest, by przesyłać
aktualne informacje o podatkach i opłatach, gdy tylko zajdą jakieś zmiany.
Metody dodawania podatków i opłat
Istnieją 2 ogólne sposoby dodawania podatków i opłat: w pierwszej z nich w wiadomości dotyczącej ceny określisz kwotę AmountAfterTax
. Aby je dodać, wyślij wiadomość o stawkach, które zawierają zarówno podstawowe stawki za noc (bez wszystkich podatków i opłat), jak i całkowite stawki za noc (ze wszystkimi podatkami i opłatami). Ponieważ stawki są ustalane za noc, ta metoda działa tylko w przypadku podatków i opłat wyrażonych w procentach lub stałych kwot za noc i nie można korzystać z podatków ani opłat za pobyt.
Druga (zalecana) metoda polega na wysyłaniu w komunikatach o cenach tylko podstawowych stawek za noc bez podatku lub opłat, a także użycia funkcji TaxFeeInfo
do przekazywania informacji o podatkach i opłatach na poziomie miejsca zakwaterowania. Poszczególne podatki i opłaty nadal mogą być ustalane w zakresie konkretnych typów pokoi i abonamentów lub dotyczą określonych zakresów dat.
Metody ustawiania podatków
Podatki możesz ustawić na kilka sposobów:
- Podstawa = [sala|osoba]
- Miesiączka = [noc|noc]
- Typ = [percent|amount]
Jeśli Okres to stay
, a Typ to percent
, Google nalicza podatki lub opłaty za cały pobyt, nawet jeśli pojedyncza data w planie podróży pokrywa się z zakresem StayDates
. Nie możesz określić zastosowania podatku lub opłaty tylko wtedy, gdy WSZYSTKIE daty w planie podróży pokrywają się z zakresem dat pobytu.
Przykłady różnych scenariuszy dotyczących podatku znajdziesz w tym artykule. Przykłady obejmują niektóre z najczęstszych scenariuszy podatkowych, w tym instrukcje dotyczące:
- Podatek procentowy
- Zryczałtowany podatek od każdej usługi
- Podatek procentowy naliczany tylko za noce po pierwszej nocy
- Metoda zastępowania starej wersji nowymi podatkami
- Uwzględnianie i wykluczanie podatków w poszczególnych krajach
- Ustaw podatek od płyty w nawiasach
- Ustaw podatek i opłatę opodatkowaną
Sekcje poniżej zawierają ogólne wytyczne, podstawowe przykłady i instrukcje dodawania i aktualizowania danych podatnika.
Elementy wymagane i opcjonalne
Dokumentacja XML zawiera opisy elementów wymaganych i opcjonalnych. Szczegółowe informacje o atrybutach i elementach podrzędnych znajdziesz w artykule Elementy i atrybuty TaxFeeInfo
.
Składnia i schematy
Użyj przykładowej składni TaxFeeInfo
jako punktu odniesienia podczas tworzenia wiadomości, aby mieć pewność, że jest ona zgodna z prawidłowym formatem. Aby zweryfikować swoje pliki danych z opublikowanymi schematami przed przesłaniem ich do Google, możesz użyć narzędzia XML innej firmy, np. XMLlint. Schemat wiadomości TaxFeeinfo
znajdziesz w artykule Schematy reklam hoteli.
Wytyczne
W tej sekcji znajdziesz typowe wytyczne i specjalne instrukcje dotyczące określania podatków i opłat.
Działania
- Nakładka
- Użyj działania
overlay
, aby zastąpić wszystkie podatki powiązane z usługą. Działanieoverlay
jest domyślne i jedyne obsługiwane. Po wprowadzeniu tej aktualizacji wszystkie wcześniejsze podatki i opłaty związane z tym miejscem zakwaterowania zostaną usunięte.
Ogólne
Każda wartość
Tax
jest oceniana i – w odpowiednich przypadkach – obliczana na podstawie kwotyAmountBeforeTax
określonej w poluBaseByGuestAmt
.Po obliczeniu wszystkich obowiązujących podatków i opłat są one dodawane do ceny podstawowej, tworząc cenę całkowitą.
Składnia instrukcji
<Tax>
i<Fee>
jest taka sama.Podatki i opłaty mogą podlegać ograniczeniom, na przykład:
- Dotyczy to tylko określonych typów pomieszczeń lub abonamentów.
- Dotyczy tylko wybranych dat pobytu.
Te ograniczenia są opcjonalne i nie musisz ustawiać każdego typu ograniczeń. Możesz pozostawić te pola puste, jeśli mają zastosowanie w przypadku wszystkich.
Wysyłaj powiadomienie
TaxFeeInfo
za każdym razem, gdy coś się zmieni w podatkach lub opłatach.
Przykład
W tej sekcji znajdziesz podstawowy przykład wiadomości TaxFeeInfo
z elementami wymaganymi i opcjonalnymi. Po przygotowaniu pliku musisz wysłać go do Google za pomocą wiadomości POST do tego punktu końcowego:
https://www.google.com/travel/hotels/uploads/taxes
Więcej informacji o przekazywaniu wiadomości w trybie push/POST znajdziesz w temacie Wysyłanie wiadomości w trybie push.
W przypadku atrybutu hotel_id
użyj unikalnego identyfikatora hotelu użytego w systemie do identyfikacji miejsca zakwaterowania. Ta wartość musi być zgodna z identyfikatorem hotelu określonym za pomocą atrybutu <id>
w elemencie <listing>
w pliku danych z listą hoteli. Spójność z systemem jest niezbędna do prawidłowego wyświetlania danych przez Google.
Ten przykład pokazuje, jak ustawić procent podatku na poziomie 10% i opłatę w wysokości 50 USD za 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 oraz innych przykładów znajdziesz w artykule Przykłady podatków.
Instrukcje
W tej sekcji znajdziesz rozwiązania problemów, z jakimi możesz natrafić przy ustalaniu stawek podatków i opłat.
Scenariusz 1. Jak dodać zryczałtowany podatek
Ten przykład podatku pokazuje, jak ustawić zryczałtowany podatek dla każdej usługi.
Opis
Chcesz zastosować podatek zryczałtowany do za pokój/hotel, a nie podatek procentowy.
Rozwiązanie
Aby dodać opcję podatku zryczałtowanego, użyj amount
zamiast percentage
.
Przykład
Ten przykład pokazuje, jak dodać podatek zryczałtowany za pomocą właściwoś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 w ramach strategii ustalania stawek ApplicableNights
Opis
Chcesz stosować podatek zryczałtowany tylko do nocy po pierwszej nocy. Na przykład obowiązuje obowiązkowa opłata za codzienne korzystanie z określonych udogodnień, które są wykluczone z pierwszej nocy, gdy goście nie mogliby skorzystać z danego udogodnienia.
Rozwiązanie
Użyj <ApplicableNights excluded="1"/>
, aby określić, w które noce mają być naliczane podatki.
Przykład
Ten przykład pokazuje, jak używać funkcji 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ć stary podatek i nowymi podatkami i opłatami
Opis
Obecne podatki lub opłaty uległy zmianie i musisz zastąpić je nowymi.
Rozwiązanie
Użyj działania overlay
, aby usunąć wszystkie podatki i opłaty.
Przykład
Z tego przykładu dowiesz się, jak usunąć wszystkie podatki lub opłaty związane z miejscem zakwaterowania:
<?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ędnić lub wykluczyć podatki w poszczególnych krajach
Opis
Musisz uwzględnić podatek obowiązujący w niektórych krajach, a jednocześnie nie podawać go w innych krajach. Musisz na przykład wykluczyć podatki w mniejszej konfederacji z podatkami spoza UE i opodatkować wszystkie inne kraje.
Rozwiązanie
Użyj opcji include
lub exclude
dla UserCountries type
.
Użyj kodu include
, aby zastosować podatek tylko w wymienionym kraju, lub użyj exclude
, aby zastosować podatek we wszystkich krajach z wyjątkiem tego.
Przykład
Z przykładu poniżej dowiesz się, jak ustawić podatki dla użytkowników spoza kraju hotelu (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 dotyczący płyty w nawiasach
Opis
Chcesz dodać podatek od towarów i usług na podstawie stawek za noc.
Rozwiązanie
W tym scenariuszu załóżmy, że przedziały podatkowe kraju docelowego:
- Bez podatku, jeśli stawka za noc jest niższa lub równa 1000.
- 12% podatku, jeśli stawka za noc wynosi więcej niż 1000 i nie przekracza 7500.
- 18% podatku, jeśli stawka za noc przekracza 7500.
Przykład
Poniższy przykład pokazuje, jak ustawić podatek od płyty w nawiasach:
<?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ę naliczaną przez opodatkowanie
Opis
Chcesz dodać podatek, na przykład VAT, oraz kolejną opłatę za obsługę, która będzie odnosić się do tego podatku.
Rozwiązanie
Ten scenariusz obejmuje 2 przykładowe przypadki użycia opłat podatkowych:
- Zarówno podatek, jak i opłata podlegająca opodatkowaniu są określane jako opłaty procentowe.
- Podatek jest wartością procentową, a opłata podlegająca opodatkowaniu to stała kwota za pobyt.
Przykłady
Opłata opodatkowana w procentach
W tym przykładzie kwota przed podatkiem wynosi 100 zł, podatek od towarów i usług w wysokości 18% oraz dodatkowe 5% opłaty za obsługę, co sprawia, że całkowita kwota podlegająca opodatkowaniu wynosi 5,9% (5*1,18) oraz łączna stawka wynosi 123,90 zł [= 118 zł (18% podatku od towarów i usług) + 5,9 zł (obciążenie za obsługę 5,9%)].
Ten fragment kodu definiuje podatek (GST) i opłatę podatkową (opłatę za obsługę) jako wartości procentowe:
<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 kwota przed podatkiem wynosi 100 zł, podatek od towarów i usług w wysokości 18% oraz dodatkową opłatę zryczałtowaną w wysokości 20 zł, co sprawia, że całkowita opłata podlegająca opodatkowaniu wynosi 23,60 zł (20 zł*1,18 zł) i łączna stawka wynosi 141,60 zł [= 118 zł (18% podatku od towarów i usług) + 23,60 zł (stawka zryczałtowana) (20 zł)
Ten fragment kodu definiuje podatek (GST) w procentach i opłatę podatkową (opłatę za obsługę) jako kwotę zryczałtowaną:
<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>