Omówienie
Wiadomość TaxFeeInfo
określa podatki i opłaty, które obowiązują użytkownika podczas rezerwacji obiektu, na podstawie przepisów podatkowych obiektu opisanych na stronie internetowej. Aby dodać dane dotyczące podatków i opłat, służy do wyświetlania wiadomości ze stawką (OTA_HotelRateAmountNotifRQ
).
Jedynym obsługiwanym działaniem w przypadku tego komunikatu jest overlay
, które służy do zastąpienia danych o podatkach i opłatach w przypadku każdej usługi. Ważne jest, aby w przypadku zmian wysyłać aktualizacje dotyczące podatków i opłat.
Metody dodawania podatków i opłat
Podatki i opłaty można dodawać na 2 ogólne sposoby:
W pierwszym przypadku w wiadomości o cenie podajesz wartość AmountAfterTax
. Dodawanie podatków i opłat odbywa się poprzez wysyłanie wiadomości o cenie, które zawierają zarówno stawki podstawowe za noc (bez podatków i opłat), jak i łączne stawki za noc (z podatkami i opłatami). Te stawki obowiązują tylko za noc, więc to podejście dotyczy tylko procentowych podatków i opłat lub stałych kwot za noc. Nie można też użyć podatków i opłat za pobyt.
Druga (preferowana) metoda polega na wysyłaniu w wiadomościach o stawkach tylko stawek bez podatku i opłat, a do przekazywania podatków i opłat na poziomie obiektu należy używać atrybutu TaxFeeInfo
. Poszczególne podatki i opłaty mogą być 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 korzystania z TaxFeeInfo
, a nie do metody określania AmountAfterTax
w wiadomości Ocena (OTA_HotelRateAmountNotifRQ
).
Metody konfigurowania podatków
Masz do wyboru te opcje ustawiania podatków:
- Basis = [room|person]
- Okres = [pobyt|noc]
- Typ = [procent|amount]
Jeśli okres to stay
, a typ to percent
, Google stosuje podatki i 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 i opłaty tylko wtedy, gdy WSZYSTKIE daty w planie podróży pokrywają się z zakresem dat pobytu.
Przykłady różnych scenariuszy związanych z podatkami znajdziesz w instrukcjach. Przykłady obejmują niektóre najczęstsze scenariusze podatkowe, w tym instrukcje dotyczące:
- Podatek procentowy
- Podatek zryczałtowany na usługę
- Procentowy podatek naliczany tylko za noc po pierwszej nocy
- Metoda zastępowania starych podatków nowymi
- Uwzględnianie lub wykluczanie podatków w przypadku poszczególnych krajów
- Ustawianie podatku liniowego za pomocą nawiasów
- Ustaw podatek i opłatę podlegającą opodatkowaniu
W następnych sekcjach znajdziesz ogólne wskazówki, podstawowy przykład i scenariusze, które pomogą Ci zacząć dodawać i aktualizować informacje o podatniku.
Wymagane i opcjonalne elementy
W dokumentacji XML znajdziesz opisy wymaganych i opcjonalnych elementów. Szczegółowe informacje o atrybutach i elementach podrzędnych znajdziesz w artykule TaxFeeInfo
Elementy i atrybuty.
Składnia i schematy
Podczas tworzenia wiadomości użyj przykładowej składni TaxFeeInfo
, aby mieć pewność, że masz właściwy format. Przed przesłaniem plików danych do Google możesz użyć narzędzia XML innej firmy, np. xmllint, aby sprawdzić je pod kątem zgodności z opublikowanymi schematami. Schematy wiadomości TaxFeeinfo
znajdziesz w artykule 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
- Wykonaj działanie
overlay
, aby zastąpić wszystkie podatki wymagane w przypadku danej usługi. Działanieoverlay
jest domyślnym i jedynym obsługiwanym działaniem. Po zastosowaniu tej aktualizacji wszystkie poprzednie podatki i opłaty związane z tym miejscem zakwaterowania zostaną anulowane.
Ogólne
Każda wartość
Tax
jest oceniana i w odpowiednich przypadkach obliczana na podstawie wartościAmountBeforeTax
określonej w elementachBaseByGuestAmt
.Po obliczeniu wszystkich podatków i opłat są one dodawane do ceny podstawowej, tworząc cenę łączną.
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 pokojów i abonamentów.
- Dotyczy tylko konkretnych dat pobytu.
Te ograniczenia są opcjonalne i nie musisz ustawiać wszystkich typów ograniczeń. Jeśli chcesz, możesz je zostawić puste.
W przypadku zmiany podatków lub opłat wyślij aktualizację
TaxFeeInfo
.
Przykład
W tej sekcji znajdziesz podstawowy przykład wiadomości TaxFeeInfo
z wymaganymi i opcjonalnymi elementami. Po przygotowaniu pliku musisz go wysłać do Google, używając do tego celu komunikatu POST do tego punktu końcowego:
https://www.google.com/travel/hotels/uploads/taxes
Więcej informacji o pushowaniu lub przesyłaniu wiadomości znajdziesz w artykule Pushowanie wiadomości.
W przypadku atrybutu hotel_id
użyj unikalnego identyfikatora hotelu, którego używasz w swoim systemie do identyfikacji obiektu. Ta wartość musi pasować do identyfikatora hotelu określonego za pomocą atrybutu <id>
w elemencie <listing>
w pliku danych z listą hoteli. Zgodność z systemem jest kluczowa dla prawidłowego wyświetlania danych w Google.
Ten przykład pokazuje, jak ustawić 10% stawkę podatku i opłatę w wysokości 50 USD za pobyt (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 znajdziesz w artykule Przykłady podatków.
Instrukcje
W tej sekcji znajdziesz rozwiązania dotyczące scenariuszy, które mogą wystąpić podczas konfigurowania podatków i opłat.
Scenariusz 1. Dodawanie podatku liniowego
Ten przykład podatku pokazuje, jak ustawić płaski podatek od nieruchomości.
Opis
chcesz zastosować zryczałtowaną opłatę za pokój lub pobyt w danym miejscu zamiast podatku procentowego.
Rozwiązanie
Aby dodać opcję podatku liniowego, użyj wartości amount
zamiast percentage
.
Przykład
Ten przykład pokazuje, jak dodać podatek płaski, używając 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 określić kierowanie na podatki za pomocą: ApplicableNights
Opis
chcesz zastosować opłatę stałą tylko do nocy po pierwszej nocy; Na przykład obowiązuje obowiązkowa opłata za codzienne korzystanie z pewnej udogodnienia, która jest wyłączona w przypadku pierwszej nocy, ponieważ goście nie mieliby możliwości skorzystania z tej udogodnienia.
Rozwiązanie
Użyj opcji <ApplicableNights excluded="1"/>
, aby określić, w których dniach 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ć stare podatki i opłaty
Opis
Obecne podatki i opłaty uległy zmianie i trzeba je zastąpić nowymi.
Rozwiązanie
Aby usunąć wszystkie istniejące podatki i opłaty, użyj działania overlay
.
Przykład
Ten przykład pokazuje, jak usunąć wszystkie podatki i opłaty za usługę:
<?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 przypadku krajów
Opis
Musisz uwzględnić podatek w przypadku niektórych krajów, a w przypadku innych nie uwzględniać go. Na przykład musisz wykluczyć podatki w przypadku mniejszej konfederacji z podatkami poza UE, a jednocześnie opodatkować wszystkie inne kraje.
Rozwiązanie
Użyj opcji include
lub exclude
w przypadku UserCountries type
.
Użyj wartości include
, aby zastosować podatek tylko w wymienionym kraju, lub wartości exclude
, aby zastosować podatek we wszystkich krajach z wyjątkiem wymienionego.
Przykład
Ten 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 od detali w nawiasach
Opis
Chcesz dodać podatek od towarów i usług GST na podstawie stawek za noc.
Rozwiązanie
W tym scenariuszu zakładamy, że stawki podatku GST w kraju docelowym są następujące:
- Bez podatku, jeśli cena za noc jest mniejsza niż lub równa 1000.
- 12% podatku, jeśli stawka za noc jest większa niż 1000 zł i nie przekracza 7500 zł.
- 18% podatku, jeśli stawka za noc przekracza 7500 JPY.
Przykład
Ten przykład pokazuje, jak ustawić podatek płaski za pomocą nawiasów:
<?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 obsługę, która również podlega temu podatkowi.
Rozwiązanie
W tym scenariuszu rozpatrzymy 2 przykładowe przypadki użycia podlegających opodatkowaniu opłat:
- Zarówno podatek, jak i opłata podlegająca opodatkowaniu są określone jako opłaty procentowe.
- Podatek to obciążenie procentowe, a opłata podlegająca opodatkowaniu to stała kwota za pobyt.
Przykłady
Opodatkowana opłata w procentach
W tym przykładzie AmountBeforeTax
zawiera podatek od towarów i usług w wysokości 100 zł, podatek od towarów i usług w wysokości 18% oraz dodatkową opłatę za obsługę w wysokości 5%. W rezultacie łączna kwota opłaty podlegającej opodatkowaniu wynosi 5,9% (5*1,18), a łączna stawka wynosi 123,90 zł [= 118 zł (18% podatku od towarów i usług) + 5,9 zł (opłata za obsługę 5,9%)].
Poniższy fragment kodu definiuje podatek (GST) i opłatę podlegającą opodatkowaniu (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 AmountBeforeTax
wynosi 100 USD, podatek GST – 18%, a dodatkowa opłata ryczałtowa – 20 USD. Łączna kwota podlegająca opodatkowaniu wynosi 23,60 USD (20 USD * 1,18), a łączna kwota podatku – 141,60 USD (118 USD (18% podatku GST) + 23,60 USD (opłata ryczałtowa)).
Poniższy fragment kodu definiuje podatek (GST) w procentach, a opłatę podlegającą opodatkowaniu (opłatę za obsługę) jako kwotę stałą:
<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>