TaxFeeInfo

Richieste

Sintassi

La sintassi del messaggio TaxFeeInfo è la seguente:

<?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>
        <!--"exclusive" parameter is optional -->
        <Rank exclusive="[true|false]">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>
        <!--"exclusive" parameter is optional -->
        <Rank exclusive="[true|false]">integer</Rank>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

Elementi e attributi

Il messaggio TaxFeeInfo contiene i seguenti elementi e attributi:

Elemento / @attributo Occorrenze Tipo Descrizione
TaxFeeInfo 1 Complex element L'elemento principale di un messaggio che definisce le tasse e le commissioni di una singola proprietà.
TaxFeeInfo / @timestamp 1 DateTime La data e l'ora di creazione di questo messaggio.
TaxFeeInfo / @id 1 string Un identificatore univoco per questo messaggio di richiesta. Questo valore viene restituito nel messaggio di risposta. I caratteri consentiti sono a-z, A-Z, 0-9, _ (trattino basso) e - (trattino).
TaxFeeInfo / @partner 1 string L'account partner di questo messaggio. Il valore della stringa è il valore "Chiave del partner" presente nella pagina Impostazioni account in Hotel Center.

Nota: se hai un backend che fornisce feed per più account, questo valore deve corrispondere al valore dell'attributo ID specificato nell'elemento <RequestorID> dei messaggi <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ> per lo stesso account.

TaxFeeInfo / Property 1..n Property Un contenitore per la definizione di tasse e commissioni di una singola proprietà.
TaxFeeInfo / Property / @action 0..1 string Specifica come viene applicato l'aggiornamento. È supportato solo overlay e il valore predefinito è overlay. Tutti i Taxes e i Fees precedenti per questa proprietà verranno cancellati prima dell'applicazione di questo aggiornamento.
TaxFeeInfo / Property / ID 1 string L'identificatore univoco della proprietà. Questo valore deve corrispondere all'ID hotel specificato utilizzando <id> nell'elemento <listing> nel feed elenco hotel. L'ID hotel è indicato anche in Hotel Center.
TaxFeeInfo / Property / Taxes 0..1 Taxes Contenitore di uno o più elementi <Tax>.
TaxFeeInfo / Property / Taxes / Tax 1..n Tax Una tassa individuale applicabile alla proprietà.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes 0..1 RoomTypes Contenitore di un elenco dei tipi di camera a cui si applica la tassa. La tassa viene applicata a ogni <RoomType> specificato. Se <RoomTypes> non è specificato, la tassa si applica a tutte le camere.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType 1..n RoomType Specifica un tipo di camera. Il tipo di camera viene definito in un elemento <RoomData> all'interno di un messaggio Transaction (Property Data) e come identificato tramite il relativo valore RoomID (al valore <RoomID> viene fatto riferimento anche tramite l'attributo InvTypeCode nei messaggi OTA_HotelRateAmountNotifRQ).
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType / @id 1 string L'identificatore univoco dell'inventario (tipo di camera). Questo valore è mappato a <RoomID> in un messaggio Transaction (Property Data). Il numero massimo di caratteri consentiti è 50.
TaxFeeInfo / Property / Taxes / Tax / RatePlans 0..1 RatePlans Contenitore di un elenco dei piani tariffari a cui si applica la tassa. Se <RatePlans> non è specificato, la tassa si applica a tutti i piani tariffari.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan 1..n RatePlan Specifica un piano tariffario. Il piano tariffario viene definito da una combinazione di pacchetti, tariffe e disponibilità, come definito nei messaggi Transaction (Property Data), OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ e come identificato da PackageID.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan / @id 1 string L'identificatore univoco del piano tariffario. Questo valore è mappato al valore PackageID nei campi <PackageData> e RatePlanCode del messaggio Transaction (Property Data) e al valore RatePlanCode impostato nell'attributo <StatusApplicationControl> nei messaggi <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ>. Il numero massimo di caratteri consentiti è 50.
TaxFeeInfo / Property / Taxes / Tax / BookingDates 0..1 BookingDates Un contenitore di uno o più intervalli di date che definiscono il periodo in cui deve essere effettuata la prenotazione perché venga applicata la tassa.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange 1..99 DateRange Un intervallo di date che specifica il periodo in cui deve essere effettuata la prenotazione affinché venga applicata la tassa.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @start 0..1 Date La data di inizio (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere precedente o uguale alla data di end. Se start non è specificato, l'intervallo di date risulta a tutti gli effetti illimitato in termini di data di inizio.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @end 0..1 Date La data di fine (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere uguale o successiva alla data di start. Se end non è specificato, l'intervallo di date risulta a tutti gli effetti illimitato in termini di data di fine.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @days_of_week 0..1 string

I giorni della settimana consentiti nell'intervallo di date. Se il valore non viene specificato, saranno consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che nell'intervallo di date sono consentiti i giorni feriali.

I caratteri validi sono:

  • M per lunedì
  • T per martedì
  • W per mercoledì
  • H per giovedì
  • F per venerdì
  • S per sabato
  • U per domenica

Sono valide tutte le combinazioni di caratteri.

TaxFeeInfo / Property / Taxes / Tax / CheckinDates 0..1 CheckinDates Un contenitore per uno o più intervalli di date che definiscono il periodo in cui deve essere effettuato il check-in perché venga applicata la tassa.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange 1..20 DateRange Un intervallo di date che specifica il periodo in cui deve essere effettuato il check-in perché venga applicata la tassa.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @start 0..1 Date La data di inizio (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere precedente o uguale alla data di end. Se start non è specificato, l'intervallo di date risulta a tutti gli effetti illimitato in termini di data di inizio.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @end 0..1 Date La data di fine (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere uguale o successiva alla data di start. Se end non è specificato, l'intervallo di date risulta a tutti gli effetti illimitato in termini di data di fine.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @days_of_week 0..1 string

I giorni della settimana consentiti nell'intervallo di date. Se il valore non viene specificato, saranno consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che nell'intervallo di date sono consentiti i giorni feriali.

I caratteri validi sono:

  • M per lunedì
  • T per martedì
  • W per mercoledì
  • H per giovedì
  • F per venerdì
  • S per sabato
  • U per domenica

Sono valide tutte le combinazioni di caratteri.

TaxFeeInfo / Property / Taxes / Tax / CheckoutDates 0..1 CheckoutDates Un contenitore di uno o più intervalli di date che definiscono il periodo in cui deve essere effettuato il check-out perché venga applicata la tassa.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange 1..20 DateRange Un intervallo di date che specifica il periodo in cui deve essere effettuato il check-out perché venga applicata la tassa.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @start 0..1 Date La data di inizio (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere precedente o uguale alla data di end. Se start non è specificato, l'intervallo di date risulta a tutti gli effetti illimitato in termini di data di inizio.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @end 0..1 Date La data di fine (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere uguale o successiva alla data di start. Se end non è specificato, l'intervallo di date risulta a tutti gli effetti illimitato in termini di data di fine.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @days_of_week 0..1 string

I giorni della settimana consentiti nell'intervallo di date. Se il valore non viene specificato, saranno consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che nell'intervallo di date sono consentiti i giorni feriali.

I caratteri validi sono:

  • M per lunedì
  • T per martedì
  • W per mercoledì
  • H per giovedì
  • F per venerdì
  • S per sabato
  • U per domenica

Sono valide tutte le combinazioni di caratteri.

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

Un contenitore per uno o più intervalli di date che determinano se viene applicata la tassa, ad esempio per rispecchiare gli sconti stagionali.

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

Descrive in che modo deve essere applicata l'imposta.

I valori validi sono:

  • all: applica la tassa a ogni notte nell'itinerario se tutte le date nell'itinerario si sovrappongono alle date del soggiorno.
  • any: applica la tassa a tutte le notti nell'itinerario se una qualsiasi data nell'itinerario si sovrappone a una data nell'intervallo di date del soggiorno.
  • overlap: applica la tassa solo alle notti dell'itinerario che si sovrappongono a una data compresa nell'intervallo di date del soggiorno.

    Nota: overlap è valido solo quando <Period> è impostato su night.

Questo attributo deve essere sempre specificato.

TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange 1..99 DateRange Un intervallo di date che specifica le date in cui deve essere applicata la tassa.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @start 0..1 Date La data di inizio (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere precedente o uguale alla data di end. Se start non è specificato, l'intervallo di date risulta a tutti gli effetti illimitato in termini di data di inizio.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @end 0..1 Date La data di fine (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere uguale o successiva alla data di start. Se end non è specificato, l'intervallo di date risulta a tutti gli effetti illimitato in termini di data di fine.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @days_of_week 0..1 string

I giorni della settimana consentiti nell'intervallo di date. Se il valore non viene specificato, saranno consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che nell'intervallo di date sono consentiti i giorni feriali.

I caratteri validi sono:

  • M per lunedì
  • T per martedì
  • W per mercoledì
  • H per giovedì
  • F per venerdì
  • S per sabato
  • U per domenica

Sono valide tutte le combinazioni di caratteri.

TaxFeeInfo / Property / Taxes / Tax / Type 1 enum

I valori validi sono:

  • percent: Una percentuale della tariffa totale
  • amount: Un importo fisso da aggiungere alla tariffa finale
  • cumulative_percent: Una percentuale della tariffa totale, delle imposte e delle commissioni accumulate prima del calcolo di questa imposta o commissione. Se questo valore è specificato, deve essere specificato anche <Rank>.
  • <Brackets> e <AgeBrackets> non possono essere specificati con cumulative_percent come tipo.

TaxFeeInfo / Property / Taxes / Tax / Basis 1 enum

I valori validi sono:

  • room: <Amount> viene applicato alla camera.
  • person: <Amount> viene applicato a persona. Questo valore si applica solo se <Type> è impostato sull'importo.
TaxFeeInfo / Property / Taxes / Tax / Period 1 enum

I valori validi sono:

  • stay: <Amount> viene aggiunto alla tariffa totale del soggiorno.
  • night: <Amount> viene aggiunto a ogni notte del soggiorno.
TaxFeeInfo / Property / Taxes / Tax / Currency 0..1 string Il codice valuta di tre lettere della tassa (ad esempio, USD).

Nota:se <Currency> non è specificato, ma <Amount> è specificato, allora il valore di <Currency> è impostato per impostazione predefinita sulla valuta del tasso base.

TaxFeeInfo / Property / Taxes / Tax / Amount 0..1 float Il valore dell'importo o della percentuale della tassa.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights 0..1 ApplicableNights Questo valore si applica solo se <Type> è impostato su amount e <Period> è impostato su night.

Limita il numero di notti a cui è possibile applicare una tassa.

Specifica max o excluded, ma non entrambi.

TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @max 0..1 integer <ApplicableNights max="N"> indica che le notti successive alle prime N notti devono essere escluse.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @excluded 0..1 integer <ApplicableNights excluded="N"> indica che le prime N notti devono essere escluse.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay 0..1 LengthOfStay Definisce i limiti di durata del soggiorno entro i quali è applicabile questa tassa. La tassa non viene applicata quando la durata del soggiorno non è compresa tra il limite minimo e massimo.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @min 0..1 integer Il numero minimo di notti consentito per il soggiorno perché venga applicata la tassa. Se non specificato, non è previsto un limite minimo.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @max 0..1 integer Il numero massimo di notti consentito per il soggiorno perché venga applicata la tassa. Se non specificato, non è previsto un limite massimo.
TaxFeeInfo / Property / Taxes / Tax / Brackets 0..1 Brackets Contenitore di uno o più elementi <Bracket>. Definisce un insieme di scaglioni d'imposta contigui e non sovrapposti. Ad esempio, le tasse GST con aliquote differenziate applicate in India.

Questo elemento è valido solo quando <Period> è impostato su night e <Amount> non è specificato.

TaxFeeInfo / Property / Taxes / Tax / Brackets / @base_amount 0..1 float Il valore della percentuale o dell'importo della tassa, applicato alle tariffe per notte al di sotto del valore starts_at del primo scaglione.
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket 1..n Bracket Definisce uno scaglione d'imposta in base alle tariffe per notte.
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @starts_at 1 float

Definisce il limite inferiore di uno scaglione d'imposta. Il limite superiore è specificato nel campo starts_at dello scaglione successivo. L'ultimo scaglione non prevede un limite superiore.

Uno scaglione d'imposta è attivo quando la tariffa per la notte è maggiore o uguale al valore di starts_at dello scaglione stesso e rigorosamente minore del valore di starts_at dello scaglione successivo.

Questo valore deve essere necessariamente maggiore di 0.

TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @amount 1 float Il valore della percentuale o dell'importo della tassa applicato a questo scaglione d'imposta.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets 0..1 AgeBrackets Consente di specificare un insieme di imposte in base all'età degli occupanti.

Questo elemento è valido solo quando <Brackets> e <Amount> non sono specificati, <Basis> è impostato su person e <Type> è impostato su amount.

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge 0..1 AdultCharge Contenitore per specificare le tasse per gli adulti.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge / @amount 1 float L'importo fisso della tassa applicata agli adulti.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets Contenitore per uno o più elementi <ChildAgeBracket>.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..n ChildAgeBracket Definisce una fascia d'età per i bambini e l'importo dell'imposta corrispondente.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer

Definisce il limite superiore dell'età di un bambino. Il limite inferiore è specificato nel campo max_age dello scaglione precedente + 1. I limiti superiore e inferiore sono entrambi inclusi. Il limite inferiore del primo scaglione è 0.

max_age deve essere compreso tra 0 e 17 (inclusi).

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 1 float L'importo fisso della tassa applicata ai bambini di questa fascia d'età.
TaxFeeInfo / Property / Taxes / Tax / UserCountries 0..1 UserCountries Contenitore dell'elenco dei paesi degli utenti per i quali la tassa è inclusa o esclusa. Se presente, la tassa verrà inclusa o esclusa solo per gli utenti dei paesi specificati.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / @type 0..1 enum Il tipo di specifica UserCountries.

I valori validi sono include e exclude.

Se UserCountries type è impostato su include, l'imposta verrà applicata solo agli utenti dei paesi elencati.

Se invece UserCountries type è exclude, la tassa verrà applicata solo agli utenti al di fuori dei paesi elencati.

Se UserCountries type non è impostato, verrà considerato come include e la tassa verrà applicata solo agli utenti dei paesi elencati.

TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country 1..n Country Definisce un paese nell'elenco UserCountries.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country / @code 1 string Un codice paese CLDR, ad esempio DE o FR. Tieni presente che per alcuni paesi il codice paese CLDR non corrisponde a quello ISO di due lettere. Inoltre, non sono supportati i codici regione CLDR.
TaxFeeInfo / Property / Taxes / Tax / Rank 1 integer

Un rango che specifica l'ordine di applicazione di una tassa o commissione. Ad esempio, un valore di 2 indica che la tassa viene applicata per seconda. Questo elemento deve essere sempre specificato se <Type> è impostato su cumulative_percent. In generale, questo ordine viene applicato sia alle tasse che alle commissioni.

<Rank>2</Rank>

I valori di classificazione duplicati sono consentiti tra tasse e commissioni, ma ciò può comportare un comportamento indefinito in cui tasse e commissioni vengono applicate in modo arbitrario e cumulativo.

In alternativa, utilizza il parametro "exclusive" all'interno di <Rank> per indicare che tutte le tasse e le commissioni dello stesso ranking vengono applicate alla tariffa. Il valore predefinito è false e tutte le tasse e le commissioni con lo stesso ranking vengono applicate alla tariffa in modo arbitrario. "exclusive" è facoltativo.

Se il parametro exclusive è impostato su true, all'aliquota viene applicata solo la prima imposta elencata all'interno di <Tax> o la prima commissione elencata all'interno di <Fee>.

<Rank exclusive="true">1</Rank>

Le tasse vengono applicate prima delle commissioni, pertanto, se una tassa e una commissione hanno lo stesso rango e la commissione ha "exclusive" impostato su true, la tassa viene comunque applicata per prima. La best practice prevede che le tasse e le commissioni siano elencate nell'ordine in cui devono essere applicate.

Per includere tutte le tasse e le commissioni dello stesso rango, evita di impostare exclusive su true.

Le tasse e le commissioni senza ranking vengono applicate prima di tutte le voci classificate.

<Rank> deve essere compreso tra 1 e 99 inclusi.

TaxFeeInfo / Property / Fees 0..1 Fees Contenitore di uno o più elementi <Fee>.
TaxFeeInfo / Property / Fees / Fee 1..n Fee

Una commissione individuale applicabile alla proprietà.

Tutti gli elementi secondari di <Tax> sono supportati anche per <Fee> con la stessa sintassi.

Esempi

Esiste un limite di 300 tasse e commissioni per proprietà. Fai riferimento all'esempio "Elimina tasse" per rimuovere tasse e commissioni da una proprietà.

Messaggio di base

Un messaggio TaxFeeInfo di base:

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

Eliminare le tasse

Elimina tutte le tasse e le commissioni a livello di proprietà per l'hotel specificato:

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

Imposta con aliquote differenziate

Imposta GST con aliquote differenziate applicata in India in base alle tariffe per notte. Gli scaglioni d'imposta sono:

  • Nessuna tassa se la tariffa per notte è minore o uguale a 1000.
  • Tassa del 12% se la tariffa per notte è maggiore di 1000 e minore o uguale a 7500.
  • Tassa del 18% se la tariffa per notte è maggiore di 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>

Tasse basate sull'età

Tasse applicate in base all'età degli occupanti:

  • Tassa di 20 $ per gli adulti.
  • Tassa di 10 $ per i bambini di età compresa tra 11 e 17 anni.
  • Tassa di 5 $ per i bambini di età compresa tra 0 e 10 anni.
<?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>

Intervalli di date del soggiorno sovrapposti

Quando vengono definiti più intervalli di date del soggiorno che si sovrappongono tra loro, la data del soggiorno specificata deve soddisfare solo uno di questi intervalli e non tutti. Gli intervalli di date del soggiorno devono essere specificati in un unico intervallo di inizio e fine.

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

Tasse e commissioni multiple con classificazione esclusiva

Di seguito è riportato un esempio con più tasse e commissioni con exclusive="true" e ranghi diversi. Considera le seguenti tasse e commissioni da applicare alla tariffa:

  • Un'imposta di soggiorno del 5% con rango 1 exclusive="true".
  • Un'imposta sul servizio in camera di 10 $ con rango 1.
  • Un costo di pulizia di 50 $ con il rango 2 exclusive="true".
  • Una commissione per i servizi del 2% con il livello 3.

L'ordine cronologico in cui vengono applicate le tasse e le commissioni in base a <Rank> è:

  1. Viene applicata per prima la tassa di occupazione con exclusive="true" e rango 1.
  2. L'imposta sul servizio in camera con rango 1 non verrà applicata perché l'imposta sull'occupazione precedente è esclusiva.
  3. Successivamente, viene applicato il costo per le pulizie con exclusive="true" e il rango 2.
  4. La tariffa per i servizi con rango 3 viene applicata dopo la tariffa per le pulizie con rango 2.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2024-02-29T12:00:00Z"
            id="tax-fee-id"
            partner="partner_key">
  <Property action="overlay">
    <ID>765432</ID>
    <Taxes>
      <Tax>
        <Type>percent</Type>
        <Amount>5</Amount>
        <Period>stay</Period>
        <Basis>room</Basis>
        <Rank exclusive="true">1</Rank>
      </Tax>
      <Tax>
        <Type>amount</Type>
        <Amount>10</Amount>
        <Period>night</Period>
        <Basis>room</Basis>
        <Currency>USD</Currency>
        <Rank>1</Rank>
      </Tax>
    </Taxes>
    <Fees>
      <Fee>
        <Type>amount</Type>
        <Amount>50</Amount>
        <Period>night</Period>
        <Basis>room</Basis>
        <Currency>USD</Currency>
        <Rank exclusive="true">2</Rank>
      </Fee>
      <Fee>
        <Type>percent</Type>
        <Amount>2</Amount>
        <Period>stay</Period>
        <Basis>room</Basis>
        <Rank>3</Rank>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

Risposte

Sintassi

La sintassi del messaggio TaxFeeInfoResponse è la seguente:

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

Elementi e attributi

Il messaggio TaxFeeInfoResponse contiene i seguenti elementi e attributi:

Elemento / @attributo Occorrenze Tipo Descrizione
TaxFeeInfoResponse 1 Complex element L'elemento principale che indica se l'esito è positivo o negativo per un messaggio di richiesta TaxFeeInfo ricevuto.
TaxFeeInfoResponse / @timestamp 1 DateTime La data e l'ora di creazione di questo messaggio.
TaxFeeInfoResponse / @id 1 string L'identificatore univoco del messaggio TaxFeeInfo associato.
TaxFeeInfoResponse / @partner 1 string L'account partner di questo messaggio.
TaxFeeInfoResponse / Success 0..1 Success Indica che il messaggio TaxFeeInfo è stato elaborato correttamente senza avvisi, errori o problemi.

In ogni messaggio è presente <Success> o <Issues>.

TaxFeeInfoResponse / Issues 0..1 Issues Un contenitore per uno o più problemi riscontrati durante l'elaborazione del messaggio TaxFeeInfo.

In ogni messaggio è presente <Success> o <Issues>.

TaxFeeInfoResponse / Issues / Issue 1..n Issue La descrizione di un avviso, un errore o un problema riscontrato durante l'elaborazione del messaggio TaxFeeInfo. Per informazioni dettagliate su questi problemi, consulta la sezione Messaggi di errore relativi allo stato dei feed.
TaxFeeInfoResponse / Issues / Issue / @code 1 integer L'identificatore del problema.
TaxFeeInfoResponse / Issues / Issue / @status 1 enum

Il tipo di problema riscontrato.

I valori validi sono warning, error e failure .

Esempi

Operazione riuscita

Di seguito è riportata una risposta a un messaggio TaxFeeInfo elaborato correttamente.

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

Problemi

Di seguito è riportata una risposta a un messaggio TaxFeeInfo non elaborato a causa di errori.

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