Informacje podatkowe

Żądania

Składnia

Wiadomość TaxFeeInfo używa tej składni:

<?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>
        <Rank>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>
        <Rank>integer</Rank>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

Elementy i atrybuty

Wiadomość TaxFeeInfo zawiera te elementy i atrybuty:

Element / @Attribute Wystąpienia Typ Opis
TaxFeeInfo 1 Complex element Element ROOT w wiadomości, który definiuje podatki i opłaty za jedną usługę.
TaxFeeInfo / @timestamp 1 DateTime Data i godzina utworzenia tej wiadomości.
TaxFeeInfo / @id 1 string Unikalny identyfikator tej wiadomości z żądaniem. Ta wartość jest zwracana w wiadomości z odpowiedzią. Dozwolone znaki to a-z, A-Z, 0-9, _ (podkreślenie) i - (łącznik).
TaxFeeInfo / @partner 1 string Konto partnera, z którego pochodzi ta wiadomość. Ta wartość ciągu znaków to wartość „Klucz partnera” podana na stronie Ustawienia konta w Hotel Center.

Uwaga: jeśli masz backend, który udostępnia pliki danych dla wielu kont, ta wartość musi być zgodna z wartością atrybutu ID, która jest określona w elemencie <RequestorID> w wiadomościach <OTA_HotelRateAmountNotifRQ> i <OTA_HotelAvailNotifRQ> dla tego samego konta.

TaxFeeInfo / Property 1..n Property Kontenery służące do definiowania podatków i opłat dla pojedynczej usługi.
TaxFeeInfo / Property / @action 0..1 string Określa sposób stosowania aktualizacji. Obsługiwana jest tylko wartość overlay, a ustawieniem domyślnym jest overlay. Wszystkie wcześniejsze wartości właściwości TaxesFees zostaną wyczyszczone przed zastosowaniem tej aktualizacji.
TaxFeeInfo / Property / ID 1 string Unikalny identyfikator usługi. Ta wartość musi pasować do identyfikatora hotelu określonego za pomocą elementu <id> w elemencie <listing> w pliku danych z listą hoteli. Identyfikator hotelu jest też widoczny w Hotel Center.
TaxFeeInfo / Property / Taxes 0..1 Taxes Kontener na co najmniej 1 element <Tax>.
TaxFeeInfo / Property / Taxes / Tax 1..n Tax Podatek indywidualny, który obowiązuje w przypadku obiektu.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes 0..1 RoomTypes Kontener z listą typów pokoi, do których ma zastosowanie podatek. Podatek jest naliczany do każdego <RoomType>określonego. Jeśli <RoomTypes> nie jest określony, podatek obowiązuje we wszystkich pokojach.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType 1..n RoomType Określa typ pokoju. Typ pokoju jest zdefiniowany w elemencie <RoomData> w wiadomości Transakcja (dane o obiekcie) i jest identyfikowany za pomocą identyfikatora RoomID. (jej wartość <RoomID> jest też używana przez atrybut InvTypeCode w wiadomościach OTA_HotelRateAmountNotifRQ).
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType / @id 1 string Unikalny identyfikator asortymentu (typ pokoju). Ta wartość jest mapowana na <RoomID> w komunikacie Transaction (Property Data). Maksymalna liczba znaków to 50.
TaxFeeInfo / Property / Taxes / Tax / RatePlans 0..1 RatePlans Kontener listy planów stawek, do których obowiązuje podatek. Jeśli nie określono właściwości <RatePlans>, podatek jest naliczany we wszystkich planach cenowych.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan 1..n RatePlan Określa plan stawek. Plan stawek jest definiowany przez połączenie pakietu, stawek i dostępności zgodnie z definicją w danych transakcji (danych obiektu), komunikatach OTA_HotelRateAmountNotifRQ i OTA_HotelAvailNotifRQ oraz określa identyfikator pakietu.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan / @id 1 string Unikalny identyfikator planu cenowego. Ta wartość jest mapowana na wartość PackageID w komunikacie Transakcja (dane usługi)<PackageData> i wartość RatePlanCode ustawioną w atrybucie <StatusApplicationControl> w obu komunikatach <OTA_HotelRateAmountNotifRQ> i <OTA_HotelAvailNotifRQ>. Maksymalna dozwolona liczba znaków to 50.
TaxFeeInfo / Property / Taxes / Tax / BookingDates 0..1 BookingDates Konteiner zawierający co najmniej jeden zakres dat, który określa, kiedy musi nastąpić rezerwacja, aby można było zastosować podatek.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange 1..99 DateRange Przedział dat określający, kiedy rezerwacja musi zostać dokonana, aby podatek mógł zostać zastosowany.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @start 0..1 Date Data rozpoczęcia (według strefy czasowej usługi) obejmująca zakres dat. Ta data musi być wcześniejsza lub taka sama jak data end. Jeśli parametr start nie jest określony, zakres dat jest praktycznie nieograniczony pod względem daty rozpoczęcia.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @end 0..1 Date Data końcowa (według strefy czasowej usługi) obejmująca zakres dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie określisz wartości end, zakres dat będzie nieograniczony, jeśli chodzi o datę zakończenia.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie wybierzesz żadnego dnia, wszystkie dni w zakresie dat będą dozwolone. Każdy znak w ciągu odpowiada jednemu dniowi. Na przykład „MTWHF” określa, że w zakresie dat dozwolone są dni robocze.

Prawidłowe znaki:

  • M w poniedziałek
  • T na wtorek
  • W w środę
  • H na czwartek
  • F w piątek
  • S na sobotę
  • U na niedzielę

Dozwolona jest dowolna kombinacja znaków.

TaxFeeInfo / Property / Taxes / Tax / CheckinDates 0..1 CheckinDates Kontener na co najmniej 1 zakres dat, który określa, kiedy należy zameldować się, aby naliczyć podatek.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange 1..20 DateRange Zakres dat określający, kiedy musi nastąpić zameldowanie, aby można było zastosować podatek.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @start 0..1 Date Data rozpoczęcia (według strefy czasowej usługi) obejmująca zakres dat. Ta data nie może być wcześniejsza niż data end. Jeśli parametr start nie jest określony, zakres dat jest praktycznie nieograniczony pod względem daty rozpoczęcia.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @end 0..1 Date Data końcowa (według strefy czasowej usługi) obejmująca zakres dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie określisz wartości end, zakres dat będzie nieograniczony, jeśli chodzi o datę zakończenia.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie wybierzesz żadnego dnia, wszystkie dni w zakresie dat będą dozwolone. Każdy znak w ciągu odpowiada jednemu dniowi. Na przykład „MTWHF” określa, że w zakresie dat dozwolone są dni robocze.

Prawidłowe znaki:

  • M w poniedziałek
  • T na wtorek
  • W w środę
  • H na czwartek
  • F w piątek
  • S na sobotę
  • U na niedzielę

Dozwolona jest dowolna kombinacja znaków.

TaxFeeInfo / Property / Taxes / Tax / CheckoutDates 0..1 CheckoutDates Kontener na co najmniej 1 zakres dat, który określa, kiedy wymeldować się trzeba, aby naliczyć podatek.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange 1..20 DateRange Zakres dat, w którym musi nastąpić wymeldowanie, aby możliwe było naliczenie podatku.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @start 0..1 Date Data rozpoczęcia (według strefy czasowej usługi) obejmująca zakres dat. Ta data musi być wcześniejsza lub taka sama jak data end. Jeśli nie określisz wartości start, zakres dat będzie w praktyce nieograniczony.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @end 0..1 Date Data końcowa (według strefy czasowej usługi) obejmująca zakres dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie określisz wartości end, zakres dat będzie nieograniczony, jeśli chodzi o datę zakończenia.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie wybierzesz żadnego dnia, wszystkie dni w zakresie dat będą dozwolone. Każdy znak w ciągu odpowiada jednemu dniowi. Na przykład „MTWHF” określa, że w zakresie dat dozwolone są dni robocze.

Prawidłowe znaki:

  • M w poniedziałek
  • T na wtorek
  • W w środę
  • H na czwartek
  • F w piątek
  • S na sobotę
  • U na niedzielę

Dozwolona jest dowolna kombinacja znaków.

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

Kontener na co najmniej 1 zakres dat, który określa, czy podatek jest naliczany, w celu uwzględnienia rabatów sezonowych.

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

Opisuje, jak należy naliczać podatek.

Prawidłowe wartości to:

  • all: stosuje podatek do każdej nocy w planie podróży, jeśli wszystkie daty w planie pokrywają się z datami pobytu.
  • any: stosuje podatek do wszystkich nocy w planie podróży, jeśli jakakolwiek data w planie pokrywa się z jakikolwiek datą w zakresie dat pobytu.
  • overlap: podatek jest naliczany tylko za te noce w planie podróży, które pokrywają się z datami w zakresie pobytu.

    Uwaga: wartość overlap jest prawidłowa tylko wtedy, gdy wartość <Period> to night.

Ten atrybut musi być zawsze określony.

TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange 1..99 DateRange Przedział dat określający daty, w których ma być stosowany podatek.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @start 0..1 Date Data rozpoczęcia (według strefy czasowej usługi) obejmująca zakres dat. Ta data musi być wcześniejsza lub taka sama jak data end. Jeśli parametr start nie jest określony, zakres dat jest praktycznie nieograniczony pod względem daty rozpoczęcia.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @end 0..1 Date Data końcowa (według strefy czasowej usługi) obejmująca zakres dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie określisz wartości end, zakres dat będzie nieograniczony, jeśli chodzi o datę zakończenia.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie wybierzesz żadnego dnia, wszystkie dni w zakresie dat będą dozwolone. Każdy znak w ciągu odpowiada jednemu dniowi. Na przykład „MTWHF” określa, że w zakresie dat dozwolone są dni robocze.

Prawidłowe znaki:

  • M w poniedziałek
  • T na wtorek
  • W w środę
  • H na czwartek
  • F w piątek
  • S na sobotę
  • U na niedzielę

Dozwolona jest dowolna kombinacja znaków.

TaxFeeInfo / Property / Taxes / Tax / Type 1 enum

Prawidłowe wartości to:

  • percent: Procent całkowitej stawki
  • amount: Kwota zryczałtowana, która zostanie dodana do stawki końcowej.
  • cumulative_percent: Odsetek łącznej stawki, podatków i opłat powstałych przed obliczeniem tego podatku lub opłaty. Jeśli ta wartość jest określona, musisz też podać wartość <Rank>.
  • Typów <Brackets><AgeBrackets> nie można określać za pomocą typu cumulative_percent.

TaxFeeInfo / Property / Taxes / Tax / Basis 1 enum

Prawidłowe wartości to:

  • room: <Amount> jest stosowany w pokoju.
  • person: <Amount> jest naliczany od osoby. Ta wartość ma zastosowanie tylko wtedy, gdy element <Type> ma wartość amount.
TaxFeeInfo / Property / Taxes / Tax / Period 1 enum

Prawidłowe wartości to:

  • stay: <Amount> jest dodawany do łącznej stawki za pobyt.
  • night: dodawane jest za każdą noc pobytu.
TaxFeeInfo / Property / Taxes / Tax / Currency 0..1 string Trzyliterowy kod waluty podatku (np. PLN).

Uwaga: jeśli nie określono właściwości <Currency>, ale określono właściwość <Amount>, wartość <Currency> zostanie domyślnie ustawiona na walutę oprocentowania podstawowego.

TaxFeeInfo / Property / Taxes / Tax / Amount 0..1 float Wartość procentowa lub kwota podatku.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights 0..1 ApplicableNights Ta wartość ma zastosowanie tylko wtedy, gdy element <Type> ma wartość amount, a element <Period> ma wartość night.

Ogranicza liczbę nocy, za które może zostać naliczony podatek.

Określ kolumnę max lub excluded, ale nie obie.

TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @max 0..1 integer <ApplicableNights max="N"> wskazuje, że noce po pierwszych N noclegach powinny zostać wykluczone.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @excluded 0..1 integer <ApplicableNights excluded="N"> wskazuje, że należy wykluczyć pierwsze N nocy.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay 0..1 LengthOfStay Określa limity długości pobytu, w których można stosować ten podatek. Podatek nie jest naliczany, gdy długość pobytu wykracza poza minimalne lub maksymalne limity.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @min 0..1 integer Minimalna liczba nocy, która musi być uwzględniona w pobytach, aby można było zastosować podatek. Jeśli nie określisz tu żadnej wartości, nie będzie limitów.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @max 0..1 integer Maksymalna liczba noclegów, które można odbyć, aby można było zastosować podatek. Jeśli nie określisz tu żadnej wartości, nie będzie limitu.
TaxFeeInfo / Property / Taxes / Tax / Brackets 0..1 Brackets Kontener dla co najmniej 1 elementu <Bracket>. Definiuje zestaw sąsiadujących i niepokrywających się przedziałów podatkowych. Przykład: indyjskie podatki GST.

Ten element jest prawidłowy tylko wtedy, gdy <Period> ma wartość night, a <Amount> nie jest określony.

TaxFeeInfo / Property / Taxes / Tax / Brackets / @base_amount 0..1 float Wartość procentowa lub kwota podatku zastosowana do stawek za noc poniżej wartości starts_at w pierwszej nawiasach.
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket 1..n Bracket Określa przedział podatkowy na podstawie stawek za noc.
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @starts_at 1 float

Określa dolną granicę przedziału podatkowego. Górna granica jest określona w polu starts_at w kolejnych nawiasach. Ostatnia klamra nie ma górnego ograniczenia.

Przedział podatkowy jest aktywny, gdy stawka za nocleg jest większa lub równa wartości starts_at w danym przedziale i jest wyraźnie mniejsza od wartości starts_at w kolejnych przedziałach.

Ta wartość musi być większa od 0.

TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @amount 1 float Wartość procentowa lub kwota podatku zastosowana do tego przedziału podatkowego.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets 0..1 AgeBrackets Umożliwia określenie zestawu podatków na podstawie wieku lokatorów.

Ten element jest prawidłowy tylko wtedy, gdy nie są określone wartości <Brackets> i <Amount>, a wartości <Basis> i <Type> mają odpowiednio wartości person i amount.

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge 0..1 AdultCharge Kontenery do określania podatków dla dorosłych.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge / @amount 1 float Stawka podatku dla dorosłych.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets Kontener zawierający co najmniej 1 element <ChildAgeBracket>.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..n ChildAgeBracket Definiuje przedział wiekowy dzieci i odpowiednią kwotę podatku.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer

Określa górną granicę wieku dziecka. Dolna granica jest określona w polu max_age w poprzednich nawiasach + 1. Górna i dolna granica wyznaczają warunki włącznie. Dolna granica pierwszego nawiasu to 0.

max_age musi zawierać się w zakresie od 0 do 17 włącznie.

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 1 float Stałe kwoty podatku naliczane dzieciom w tym przedziale wiekowym.
TaxFeeInfo / Property / Taxes / Tax / UserCountries 0..1 UserCountries Konteiner z listą krajów użytkowników, w których podatek jest uwzględniony lub wykluczony. Jeśli podatek będzie określony, zostanie on uwzględniony lub nieuwzględniony tylko w przypadku użytkowników z określonych krajów.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / @type 0..1 enum Typ specyfikacji UserCountries.

Prawidłowe wartości to include i exclude.

Jeśli parametr UserCountries type ma wartość include, podatek będzie obowiązywał tylko w przypadku użytkowników z wymienionych krajów.

Jeśli natomiast wartość atrybutu UserCountries type to exclude, podatek będzie dotyczył tylko użytkowników spoza wymienionych krajów.

Jeśli parametr UserCountries type nie jest ustawiony, będziemy go traktować jako include, a podatek będzie obowiązywał tylko w przypadku użytkowników z wymienionych krajów.

TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country 1..n Country Definiuje jeden kraj z listy krajów użytkowników.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country / @code 1 string kod kraju CLDR, na przykład DE lub FR. Pamiętaj, że w przypadku niektórych krajów kod CLDR nie jest taki sam jak 2-literowy kod ISO. Nie są też obsługiwane kody regionów CLDR.
TaxFeeInfo / Property / Taxes / Tax / Rank 1 integer

Pozycja, która określa kolejność stosowania danego podatku lub opłaty. Na przykład wartość 2 oznacza, że podatek zostanie zastosowany jako drugi. Ten element powinien być zawsze określony, jeśli wartość <Type> jest ustawiona na cumulative_percent. Ogólnie ta kolejność dotyczy zarówno podatków, jak i opłat. W przypadku podatków i opłat dozwolone są zduplikowane wartości, ale może to spowodować nieokreślone działanie, w którym podatki i opłaty będą stosowane w sposób dowolny i kumulowany. Podatki i opłaty bez pozycji w rankingu są stosowane przed wszystkimi pozycjami w rankingu.

Wartość <Rank> musi mieścić się w zakresie od 1 do 99 (włącznie).

TaxFeeInfo / Property / Fees 0..1 Fees Kontener dla co najmniej 1 elementu <Fee>.
TaxFeeInfo / Property / Fees / Fee 1..n Fee

Opłata indywidualna obowiązująca w przypadku obiektu.

W przypadku elementu <Tax> obsługiwane są też wszystkie elementy podrzędne <Tax> o tej samej składni.

Przykłady

Obowiązuje limit 300 podatków i opłat na usługę. Aby usunąć podatki i opłaty z usługi, zapoznaj się z przykładem „Usuwanie podatków”.

Podstawowa wiadomość

Podstawowa wiadomość TaxFeeInfo:

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

Usuwanie podatków

Usuń wszystkie podatki i opłaty obowiązujące w przypadku wybranego hotelu:

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

Podatek od wartości sprzedaży

podatek GST w Indiach, naliczany na podstawie stawek za noc; Przedziały podatkowe:

  • Brak podatku, jeśli stawka za noc jest równa lub mniejsza niż 1000.
  • 12% podatku, jeśli stawka za noc jest większa niż 1000 i mniejsza lub równa 7500.
  • 18% podatku, jeśli stawka za noc przekracza 7500.
<?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>

Podatki na podstawie wieku

Podatki naliczane na podstawie wieku mieszkańców:

  • 20 USD podatku dla dorosłych pasażerów.
  • Podatek 10 USD dla dzieci w wieku od 11 do 17 lat.
  • 5 USD podatku za dzieci w wieku 0–10 lat.
<?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>

Odpowiedzi

Składnia

Wiadomość TaxFeeInfoResponse używa tej składni:

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

Elementy i atrybuty

Wiadomość TaxFeeInfoResponse składa się z tych elementów i atrybutów:

Element / @Attribute Wystąpienia Typ Opis
TaxFeeInfoResponse 1 Complex element Element rdzenny wskazujący powodzenie lub problemy z otrzymanym żądaniem TaxFeeInfo.
TaxFeeInfoResponse / @timestamp 1 DateTime Data i godzina utworzenia tej wiadomości.
TaxFeeInfoResponse / @id 1 string Unikalny identyfikator powiązanej wiadomości TaxFeeInfo.
TaxFeeInfoResponse / @partner 1 string Konto partnera, na którym jest wyświetlana wiadomość.
TaxFeeInfoResponse / Success 0..1 Success Wskazuje, że wiadomość TaxFeeInfo została przetworzona bez ostrzeżeń, błędów ani niepowodzeń.

W każdej wiadomości występuje element <Success> lub <Issues>.

TaxFeeInfoResponse / Issues 0..1 Issues Kontener dla co najmniej 1 problemu napotkanego podczas przetwarzania wiadomości TaxFeeInfo.

W każdej wiadomości występuje element <Success> lub <Issues>.

TaxFeeInfoResponse / Issues / Issue 1..n Issue Opis ostrzeżenia, błędu lub niepowodzenia podczas przetwarzania wiadomości TaxFeeInfo. Szczegółowe informacje o tych problemach znajdziesz w komunikatach o błędach stanu pliku danych.
TaxFeeInfoResponse / Issues / Issue / @code 1 integer Identyfikator problemu.
TaxFeeInfoResponse / Issues / Issue / @status 1 enum

Typ napotkanego problemu.

Prawidłowe wartości to warning, error i failure .

Przykłady

Sukces

Poniżej znajduje się odpowiedź na pomyślnie przetworzoną wiadomość TaxFeeInfo.

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

Problemy

Poniżej znajdziesz odpowiedź na komunikat TaxFeeInfo, który nie został przetworzony z powodu błędów.

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