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 rdzenny wiadomości definiujący podatki i opłaty za jedną nieruchomość.
TaxFeeInfo / @timestamp 1 DateTime Data i godzina utworzenia tej wiadomości.
TaxFeeInfo / @id 1 string Unikalny identyfikator tego komunikatu żądania. 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, na którym jest wysyłana wiadomość. Ta wartość ciągu znaków to wartość „klucza 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 zastosowania aktualizacji. Obsługiwana jest tylko wartość overlay, a ustawieniem domyślnym jest overlay. Przed zastosowaniem tej aktualizacji zostaną usunięte wszystkie poprzednie wartości TaxesFees tej usługi.
TaxFeeInfo / Property / ID 1 string Unikalny identyfikator usługi. Ta wartość musi być zgodna z identyfikatorem hotelu określonym za pomocą atrybutu <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 dla co najmniej 1 elementu <Tax>.
TaxFeeInfo / Property / Taxes / Tax 1..n Tax Podatek indywidualny, który obowiązuje w przypadku danej usługi.
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. (wartość atrybutu <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 dozwolona liczba znaków to 50.
TaxFeeInfo / Property / Taxes / Tax / RatePlans 0..1 RatePlans Kontener z listą abonamentów, do których ma zastosowanie 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 taryfowy. Pakiet usług jest zdefiniowany przez kombinację pakietu, stawek i dostępności, jak określono w transakcjach (dane obiektu), wiadomościach OTA_HotelRateAmountNotifRQ i OTA_HotelAvailNotifRQ oraz identyfikatorze PackageID.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan / @id 1 string Unikalny identyfikator planu cenowego. Ta wartość jest mapowana na wartość PackageID w komunikacie Transaction (Property Data) (<PackageData>) oraz na 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 Pojemnik na 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 nie podasz wartości start, zakres dat będzie obejmował wszystkie daty.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @end 0..1 Date Data końcowa (zgodnie ze strefą czasową usługi) zakresu dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie podasz parametru end, zakres dat będzie nieograniczony pod względem daty zakończenia.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie określisz inaczej, wszystkie dni w zakresie dat są dozwolone. Każda litera 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 we wtorek
  • W w środę
  • H w czwartek
  • F w piątek
  • S w sobotę
  • U w przypadku niedzieli

Dozwolona jest dowolna kombinacja znaków.

TaxFeeInfo / Property / Taxes / Tax / CheckinDates 0..1 CheckinDates Pojemnik z co najmniej jednym zakresem dat, który określa, kiedy musi nastąpić zameldowanie, aby można było zastosować 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 musi być wcześniejsza lub taka sama jak data end. Jeśli nie podasz wartości start, zakres dat będzie obejmował wszystkie daty.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @end 0..1 Date Data końcowa (zgodnie ze strefą czasową usługi) zakresu dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie podasz parametru end, zakres dat będzie nieograniczony pod względem daty zakończenia.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie określisz inaczej, wszystkie dni w zakresie dat są dozwolone. Każda litera 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 we wtorek
  • W w środę
  • H w czwartek
  • F w piątek
  • S w sobotę
  • U w przypadku niedzieli

Dozwolona jest dowolna kombinacja znaków.

TaxFeeInfo / Property / Taxes / Tax / CheckoutDates 0..1 CheckoutDates Pojemnik z co najmniej jednym zakresem dat, który określa, kiedy musi nastąpić płatność, aby można było zastosować podatek.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange 1..20 DateRange Zakres dat określający, kiedy musi nastąpić wymeldowanie, aby można było zastosować podatek.
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 podasz wartości start, zakres dat będzie obejmował wszystkie daty.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @end 0..1 Date Data końcowa (zgodnie ze strefą czasową usługi) zakresu dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie podasz parametru end, zakres dat będzie nieograniczony pod względem daty zakończenia.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie określisz inaczej, wszystkie dni w zakresie dat są dozwolone. Każda litera 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 we wtorek
  • W w środę
  • H w czwartek
  • F w piątek
  • S w sobotę
  • U w przypadku niedzieli

Dozwolona jest dowolna kombinacja znaków.

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

Konteiner dla co najmniej jednego zakresu dat, który określa, czy podatek jest naliczany, na przykład w przypadku rabatów sezonowych.

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

Opisuje, jak należy stosować 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 datą w zakresie dat 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 nie podasz wartości start, zakres dat będzie obejmował wszystkie daty.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @end 0..1 Date Data końcowa (zgodnie ze strefą czasową usługi) zakresu dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie podasz parametru end, zakres dat będzie nieograniczony pod względem daty zakończenia.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie określisz inaczej, wszystkie dni w zakresie dat są dozwolone. Każda litera 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 we wtorek
  • W w środę
  • H w czwartek
  • F w piątek
  • S w sobotę
  • U w przypadku niedzieli

Dozwolona jest dowolna kombinacja znaków.

TaxFeeInfo / Property / Taxes / Tax / Type 1 enum

Prawidłowe wartości to:

  • percent: Procent całkowitej stawki
  • amount: Stałe kwoty do dodania do stawki końcowej
  • cumulative_percent: Procent łącznej stawki, podatków i opłat nagromadzonych 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 parametr <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 <Amount> 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żna naliczać 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 noclach 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 następnych nawiasach. Ostatnia klamra nie ma górnego limitu.

Przedział podatkowy jest aktywny, gdy stawka za nocleg jest większa lub równa wartości starts_at w danym przedziale, a jednocześnie jest 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 Określa zakres wieku dzieci i odpowiadającą mu 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 są uwzględniane. Dolna granica pierwszego nawiasu to 0.

max_age musi mieścić 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 jest obecny, podatek zostanie uwzględniony lub wykluczony 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 jednak 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 Określa 1 kraj na liście UserCountries.
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 określająca kolejność stosowania tego 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ść jest stosowana zarówno w przypadku podatków, jak i opłat. Duplikaty wartości pozycji są dozwolone w przypadku podatków i opłat, 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 rankingu są stosowane przed wszystkimi pozycjami z rankingiem.

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

Przykłady

Obowiązuje limit 300 podatków i opłat na usługę. Aby usunąć podatki i opłaty z obiektu, 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 na poziomie obiektu 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% podatek, 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 JPY.
<?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 pasażerów:

  • 20 USD podatku dla dorosłych pasażerów.
  • 10 USD podatku od dzieci w wieku 11–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>

Pokrywające się zakresy dat pobytu

Jeśli zdefiniowano wiele przedziałów dat pobytu, które się na siebie nakładają, podana data pobytu musi pasować tylko do jednego z tych przedziałów, a nie do wszystkich. Zakresy dat pobytu należy określić w jednym zakresie z datą rozpoczęcia i zakończenia.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2025-03-12T10:59:49+01:00"
            id="12345678"
            partner="partner_key">
  <Property action="overlay">
    <ID>987654</ID>
      <Taxes>
        <Tax>
          <Type>amount</Type>
          <Basis>person</Basis>
          <Period>night</Period>
          <RoomTypes>
            <RoomType id="RoomID_1"/>
            <RoomType id="RoomID_2"/>
          </RoomTypes>
          <StayDates application="any">
            <DateRange start="2025-06-16"/>
          </StayDates>
          <Currency>USD</Currency>
          <Amount>50</Amount>
        </Tax>
      </Taxes>
      <Fees>
        <Fee>
          <Type>amount</Type>
          <Basis>room</Basis>
          <Period>stay</Period>
          <StayDates application="any">
            <DateRange start="2025-03-12" end="2025-03-18"/>
          </StayDates>
          <Currency>USD</Currency>
          <Amount>200</Amount>
        </Fee>
        <Fee>
          <Type>amount</Type>
          <Basis>room</Basis>
          <Period>stay</Period>
          <StayDates application="any">
            <DateRange start="2025-03-19"/>
          </StayDates>
          <Currency>USD</Currency>
          <Amount>300</Amount>
      </Fee>
    </Fees>
  </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 zawiera te elementy i atrybuty:

Element / @Attribute Wystąpienia Typ Opis
TaxFeeInfoResponse 1 Complex element Element główny wskazujący, czy otrzymane żądanie TaxFeeInfo zostało zrealizowane, czy nie.
TaxFeeInfoResponse / @timestamp 1 DateTime Data i godzina utworzenia tej wiadomości.
TaxFeeInfoResponse / @id 1 string Unikalny identyfikator z powiązanego komunikatu TaxFeeInfo.
TaxFeeInfoResponse / @partner 1 string Konto partnera, na którym jest wysyłana 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 przedstawiamy odpowiedź na wiadomość TaxFeeInfo, która nie została przetworzona 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>