Informacje podatkowe

Żądania

Składnia

Wiadomość TaxFeeInfo ma tę 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]</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>
      </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]</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>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

Elementy i atrybuty

Wiadomość TaxFeeInfo zawiera te elementy i atrybuty:

Element / @Atrybut Wystąpienia Typ Opis
TaxFeeInfo 1 Complex element Element główny wiadomości definiujący podatki i opłaty za korzystanie z jednej usługi.
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 odpowiedzi. Dozwolone znaki to a-z, A-Z, 0-9, _ (podkreślenie) i - (łącznik).
TaxFeeInfo / @partner 1 string Konto partnera, którego dotyczy ta wiadomość. Ta wartość ciągu znaków to wartość „klucz partnera” widoczna na stronie ustawień 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 określonego w elemencie <RequestorID> wiadomości <OTA_HotelRateAmountNotifRQ> i <OTA_HotelAvailNotifRQ> na tym samym koncie.

TaxFeeInfo / Property 1..n Property Kontener do określania podatków i opłat za jedną usługę.
TaxFeeInfo / Property / @action 0..1 string Określa sposób stosowania aktualizacji. Obsługiwana jest tylko wartość overlay, a wartość domyślna to overlay. Poprzednie Taxes i Fees tej usługi zostaną wyczyszczone, zanim aktualizacja zostanie zastosowana.
TaxFeeInfo / Property / ID 1 string Unikalny identyfikator usługi. Ta wartość musi być zgodna z identyfikatorem hotelu określonym za pomocą elementu <id> w elemencie <listing> w pliku danych listy hoteli. Identyfikator hotelu pojawia się też w Hotel Center.
TaxFeeInfo / Property / Taxes 0..1 Taxes Kontener na co najmniej 1 element <Tax>.
TaxFeeInfo / Property / Taxes / Tax 1..n Tax Indywidualny podatek od nieruchomości.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes 0..1 RoomTypes Kontener z listą typów pokoi, do których pobierany jest podatek. Podatek jest stosowany do każdego podanego <RoomType>. Jeśli zasada <RoomTypes> nie została określona, podatek ma zastosowanie do wszystkich pokoi.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType 1..n RoomType Określa typ pomieszczenia. Typ pokoju jest zdefiniowany w elemencie <RoomData> w komunikacie Transakcja (Dane usługi) i jest określany za pomocą identyfikatora Room. (Do wartości <RoomID> w wiadomościach, do których odwołuje się OTA_HotelRateAmountNotifRQ, odwołuje się także atrybut InvTypeCode).
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType / @id 1 string Unikalny identyfikator zasobów reklamowych (typ pomieszczenia). Ta wartość jest mapowana na wartość <RoomID> w komunikacie Transakcja (dane usługi). Maksymalna liczba znaków to 50.
TaxFeeInfo / Property / Taxes / Tax / RatePlans 0..1 RatePlans Kontener na listę abonamentów, w których stosowany jest podatek. Jeśli nie określono właściwości <RatePlans>, podatek ma zastosowanie do wszystkich abonamentów.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan 1..n RatePlan Określa abonament. Abonament jest określany na podstawie połączenia wartości pakietu, stawek i dostępności zgodnie z definicją w polach Transakcja (dane usługi), OTA_HotelRateAmountNotifRQ i OTA_HotelAvailNotifRQ oraz określonym w pakiecie PackageID.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan / @id 1 string Unikalny identyfikator planu stawek. Ta wartość jest mapowana na wartość atrybutu PackageID w wiadomości <PackageData> w komunikacie Transaction (Usługa), a w atrybutach <StatusApplicationControl> w wiadomościach <OTA_HotelRateAmountNotifRQ> i <OTA_HotelAvailNotifRQ> – w atrybucie <StatusApplicationControl>.RatePlanCode Maksymalna liczba znaków to 50.
TaxFeeInfo / Property / Taxes / Tax / BookingDates 0..1 BookingDates Kontener na co najmniej jeden zakres dat, który określa, kiedy nastąpi rezerwacja, by podatek został zastosowany.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange 1..99 DateRange Zakres dat, który określa, kiedy nastąpi rezerwacja, by podatek został zastosowany.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @start 0..1 Date Data rozpoczęcia (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Ta data musi być wcześniejsza niż data end lub jej taka sama. Jeśli wartość start nie jest określona, zakres dat jest w zasadzie nieograniczony.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @end 0..1 Date Data końcowa (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Ta data musi być taka sama jak data start lub późniejsza. Jeśli wartość end nie jest określona, zakres dat jest w zasadzie nieograniczony.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @days_of_week 0..1 string

Dni tygodnia, które są dozwolone w danym zakresie dat. Jeśli nie podasz daty, wszystkie dni będą dozwolone w zakresie dat. Każdy znak w ciągu znaków określa dzień. Na przykład „MTWHF” wskazuje, że w zakresie dat dni robocze są dozwolone.

Prawidłowe znaki to:

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

Każda kombinacja znaków jest prawidłowa.

TaxFeeInfo / Property / Taxes / Tax / CheckinDates 0..1 CheckinDates Kontener na co najmniej jeden zakres dat, który określa, kiedy musi zameldować się użytkownik, aby podatek został naliczony.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange 1..20 DateRange Zakres dat, w którym zameldowanie muszą być objęte podatkiem.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @start 0..1 Date Data rozpoczęcia (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Ta data musi być wcześniejsza niż data end lub jej taka sama. Jeśli wartość start nie jest określona, zakres dat jest w zasadzie nieograniczony.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @end 0..1 Date Data końcowa (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Ta data musi być taka sama jak data start lub późniejsza. Jeśli wartość end nie jest określona, zakres dat jest w zasadzie nieograniczony.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @days_of_week 0..1 string

Dni tygodnia, które są dozwolone w danym zakresie dat. Jeśli nie podasz daty, wszystkie dni będą dozwolone w zakresie dat. Każdy znak w ciągu znaków określa dzień. Na przykład „MTWHF” wskazuje, że w zakresie dat dni robocze są dozwolone.

Prawidłowe znaki to:

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

Każda kombinacja znaków jest prawidłowa.

TaxFeeInfo / Property / Taxes / Tax / CheckoutDates 0..1 CheckoutDates Kontener na co najmniej jeden zakres dat, który określa, kiedy musi nastąpić wymeldowanie, by zastosować podatek.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange 1..20 DateRange Zakres dat określający, kiedy następuje wymeldowanie, aby podatek został naliczony.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @start 0..1 Date Data rozpoczęcia (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Ta data musi być wcześniejsza niż data end lub jej taka sama. Jeśli wartość start nie jest określona, zakres dat jest w zasadzie nieograniczony.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @end 0..1 Date Data końcowa (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Ta data musi być taka sama jak data start lub późniejsza. Jeśli wartość end nie jest określona, zakres dat jest w zasadzie nieograniczony.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @days_of_week 0..1 string

Dni tygodnia, które są dozwolone w danym zakresie dat. Jeśli nie podasz daty, wszystkie dni będą dozwolone w zakresie dat. Każdy znak w ciągu znaków określa dzień. Na przykład „MTWHF” wskazuje, że w zakresie dat dni robocze są dozwolone.

Prawidłowe znaki to:

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

Każda kombinacja znaków jest prawidłowa.

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

Kontener dla co najmniej 1 zakresu dat, który określa, czy podatek jest stosowany, na przykład do zastosowania rabatów sezonowych.

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

Określa, w jaki sposób należy zastosować podatek.

Prawidłowe wartości to:

  • all: stosuje podatek do każdej nocy w planie podróży, jeśli wszystkie daty w planie podróży pokrywają się z datami pobytu.
  • any: stosuje podatek do wszystkich nocy w planie podróży, jeśli którakolwiek data w tym planie pokrywa się z datami w zakresie dat pobytu.
  • overlap: stosuje podatek tylko do tych nocy w planie podróży, które pokrywają się z datami w zakresie dat pobytu.

    Uwaga: właściwość overlap jest stosowana tylko wtedy, gdy <Period> ma wartość night.

Ten atrybut musi być zawsze określony.

TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange 1..99 DateRange Zakres dat, w którym ma być stosowany podatek.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @start 0..1 Date Data rozpoczęcia (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Ta data musi być wcześniejsza niż data end lub jej taka sama. Jeśli wartość start nie jest określona, zakres dat jest w zasadzie nieograniczony.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @end 0..1 Date Data końcowa (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Ta data musi być taka sama jak data start lub późniejsza. Jeśli wartość end nie jest określona, zakres dat jest w zasadzie nieograniczony.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @days_of_week 0..1 string

Dni tygodnia, które są dozwolone w danym zakresie dat. Jeśli nie podasz daty, wszystkie dni będą dozwolone w zakresie dat. Każdy znak w ciągu znaków określa dzień. Na przykład „MTWHF” wskazuje, że w zakresie dat dni robocze są dozwolone.

Prawidłowe znaki to:

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

Każda kombinacja znaków jest prawidłowa.

TaxFeeInfo / Property / Taxes / Tax / Type 1 enum

Prawidłowe wartości to:

  • percent: procent całkowitej stawki
  • amount: Stała kwota, która zostanie dodana do ostatecznej stawki
TaxFeeInfo / Property / Taxes / Tax / Basis 1 enum

Prawidłowe wartości to:

  • room: W pokoju <Amount> zostanie zastosowane.
  • person: Cena <Amount> obowiązuje na osobę. Ta wartość ma zastosowanie tylko wtedy, gdy <Type> ma ustawioną wartość.
TaxFeeInfo / Property / Taxes / Tax / Period 1 enum

Prawidłowe wartości to:

  • stay: Pole <Amount> jest dodawane do łącznej stawki za pobyt.
  • night: <Amount> jest dodawany do pobytu w nocy.
TaxFeeInfo / Property / Taxes / Tax / Currency 0..1 string Trzyliterowy kod waluty (np. USD).
TaxFeeInfo / Property / Taxes / Tax / Amount 0..1 float Wartość procentowa lub wartość podatku.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights 0..1 ApplicableNights Ta wartość ma zastosowanie tylko wtedy, gdy <Type> ma wartość amount, a <Period> ma wartość night.

Ogranicza liczbę nocy, do których można zastosować podatek.

Określ właściwość max lub excluded, ale nie obie.

TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @max 0..1 integer <ApplicableNights max="N"> oznacza, że należy wykluczyć noce po pierwszych N nocy.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @excluded 0..1 integer Wartość <ApplicableNights excluded="N"> oznacza, że należy wykluczyć pierwsze N nocy.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay 0..1 LengthOfStay Określa długość pobytu, do którego może zostać naliczony podatek. Podatek nie jest stosowany, gdy długość pobytu przekracza dozwolone maksimum.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @min 0..1 integer Minimalna liczba nocy dozwolonych w trakcie pobytu, aby umożliwić naliczenie podatku. Jeśli wartość ta nie zostanie określona, nie ma minimalnej.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @max 0..1 integer Maksymalna liczba nocy dozwolonych w trakcie pobytu, do których doliczono podatek. Jeśli wartość nie zostanie określona, nie ma maksymalnego.
TaxFeeInfo / Property / Taxes / Tax / Brackets 0..1 Brackets Kontener na co najmniej 1 element <Bracket>. Określa zestaw ciągłych i niepokrywających się nakładanych nawiasów, np. indyjskich podatków od towarów i usług GST.

Ten element jest ważny 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 nocleg poniżej wartości podanej w pierwszym nawiasie starts_at.
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ę nawiasu podatkowego. Górna granica jest określona w polu starts_at następnego nawiasu. Nie ma górnej granicy ostatniego nawiasu.

Nawias podatkowy jest aktywny, gdy cena za noc jest równa lub większa od wartości starts_at w nawiasie, a także ściśle równastarts_at wartości kolejnego nawiasu.

Ta wartość musi być większa niż 0.

TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @amount 1 float Wartość procentowa lub kwota podatku zastosowanego do tego nawiasu.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets 0..1 AgeBrackets Umożliwia określenie zestawu podatków na podstawie wieku osób podróżujących.

Ten element jest ważny tylko wtedy, gdy elementy <Brackets> i <Amount> nie są określone, <Basis> ma wartość person, a <Type>amount.

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge 0..1 AdultCharge Kontener do określania podatków dla dorosłych.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge / @amount 1 float Stała kwota podatku obowiązującego w przypadku osób dorosłych.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets Kontener na 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 poprzedniego nawiasu + 1. Górna i dolna granica są uwzględniane. Dolna granica pierwszego nawiasu wynosi 0.

max_age musi należeć do zakresu od 0 do 17 (włącznie).

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 1 float Stała kwota podatku stosowana dla dzieci w tym przedziale wiekowym.
TaxFeeInfo / Property / Taxes / Tax / UserCountries 0..1 UserCountries Kontener z listą krajów, w których podatek jest uwzględniony lub wykluczony. Jeśli podatek jest obecny, będzie uwzględniany lub wykluczany tylko w przypadku użytkowników z określonych krajów.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / @type 0..1 enum Typ specyfikacji UserCountry.

Prawidłowe wartości to include i exclude.

Jeśli zasada typeKraje użytkowników ma wartość include, podatek będzie dotyczył tylko użytkowników z wymienionych krajów.

Jeśli typeKraje użytkowników to exclude, podatek będzie dotyczył tylko użytkowników spoza tych krajów.

Jeśli zasada typeKraje nie została skonfigurowana, będziemy traktować ją jako include, a podatek będzie stosowany tylko do użytkowników z wymienionych krajów.

TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country 1..n Country Definiuje jeden kraj na liście Userkraj.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country / @code 1 string Kod kraju CLDR, na przykład DE lub FR. Pamiętaj, że w niektórych krajach kod CLDR różni się od dwuliterowego kodu kraju w standardzie ISO. Kody regionów CLDR nie są też obsługiwane.
TaxFeeInfo / Property / Fees 0..1 Fees Kontener na co najmniej 1 element <Fee>.
TaxFeeInfo / Property / Fees / Fee 1..n Fee

Indywidualna opłata związana z usługą.

Wszystkie elementy podrzędne właściwości <Tax> są również obsługiwane w przypadku elementu <Fee> o tej samej składni.

Przykłady

Komunikat podstawowy

Podstawowy komunikat TaxFeeInfo:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2020-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>

Usuń podatki

Usuń wszystkie podatki i opłaty na poziomie obiektu dla wybranego hotelu:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2022-06-16T16:20:00-04:00"
            id="12345678"
            partner="partner_key"
  <Property action="overlay"/>
    <ID>Property_1</ID>
  </Property>
</TaxFeeInfo>

Podatek od płyty

Indyjski podatek PTU naliczany na podstawie stawek za noc. Przedziały podatkowe to:

  • Podatek, jeśli stawka za noc jest mniejsza lub równa 1000.
  • 12% podatku, jeśli stawka za noc jest większa niż 1000 i mniejsza niż 7500.
  • 18% podatku, jeśli stawka za noc przekracza 7500.
<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2020-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 związane z wiekiem

Podatki naliczane na podstawie wieku osób podróżujących:

  • 20 USD podatku dla dorosłych.
  • 10 USD podatku dla dzieci w wieku od 11 do 17 lat.
  • 5 USD podatku dla dzieci w wieku 0–10 lat.
<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2020-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 ma tę 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 następujące elementy i atrybuty:

Element / @Atrybut Wystąpienia Typ Opis
TaxFeeInfoResponse 1 Complex element Element główny wskazujący sukces lub problem z otrzymaną wiadomością żądania TaxFeeInfo.
TaxFeeInfoResponse / @timestamp 1 DateTime Data i godzina utworzenia tej wiadomości.
TaxFeeInfoResponse / @id 1 string Unikalny identyfikator powiązanej wiadomości od TaxFeeInfo.
TaxFeeInfoResponse / @partner 1 string Konto partnera, którego dotyczy ta wiadomość.
TaxFeeInfoResponse / Success 0..1 Success Wskazuje, że wiadomość TaxFeeInfo została przetworzona bez ostrzeżeń, błędów lub błędów.

W każdej wiadomości znajduje się <Success> lub <Issues>.

TaxFeeInfoResponse / Issues 0..1 Issues Kontener na co najmniej 1 problem, który wystąpił podczas przetwarzania wiadomości TaxFeeInfo.

W każdej wiadomości znajduje się <Success> lub <Issues>.

TaxFeeInfoResponse / Issues / Issue 1..n Issue Opis ostrzeżenia, błędu lub błędu napotkanego podczas przetwarzania wiadomości TaxFeeInfo. Szczegółowe informacje o tych problemach znajdziesz w artykule Komunikaty o błędach stanu kanału.
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

Gotowe

Poniżej znajdziesz odpowiedź na prawidłowo wysłaną wiadomość TaxFeeInfo.

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

Problemy

Poniżej znajdziesz odpowiedź na wiadomość, która nie została przetworzona z powodu błędów.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfoResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</TaxFeeInfoResponse>