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_account_name">
  <Property>
    <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>
      </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>
      </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 / 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 in <PackageData> all'interno di un messaggio Transaction (Property Data) e nell'attributo RatePlanCode in <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 dell'intervallo di date (in base al fuso orario della proprietà), incluso il giorno di inizio. Questa data deve essere precedente o uguale alla data di end. Se start non è specificato, l'intervallo di date risulta effettivamente illimitato in termini di data di inizio.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @end 0..1 Date La data di fine dell'intervallo di date (in base al fuso orario della proprietà), incluso il giorno di fine. Questa data deve essere uguale o successiva alla data di start. Se end non è specificato, l'intervallo di date risulta effettivamente 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 dell'intervallo di date (in base al fuso orario della proprietà), incluso il giorno di inizio. Questa data deve essere precedente o uguale alla data di end. Se start non è specificato, l'intervallo di date risulta effettivamente illimitato in termini di data di inizio.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @end 0..1 Date La data di fine dell'intervallo di date (in base al fuso orario della proprietà), incluso il giorno di fine. Questa data deve essere uguale o successiva alla data di start. Se end non è specificato, l'intervallo di date risulta effettivamente 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 dell'intervallo di date (in base al fuso orario della proprietà), incluso il giorno di inizio. Questa data deve essere precedente o uguale alla data di end. Se start non è specificato, l'intervallo di date risulta effettivamente illimitato in termini di data di inizio.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @end 0..1 Date La data di fine dell'intervallo di date (in base al fuso orario della proprietà), incluso il giorno di fine. Questa data deve essere uguale o successiva alla data di start. Se end non è specificato, l'intervallo di date risulta effettivamente 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 la tassa.

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 sempre essere 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 dell'intervallo di date (in base al fuso orario della proprietà), incluso il giorno di inizio. Questa data deve essere precedente o uguale alla data di end. Se start non è specificato, l'intervallo di date risulta effettivamente illimitato in termini di data di inizio.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @end 0..1 Date La data di fine dell'intervallo di date (in base al fuso orario della proprietà), incluso il giorno di fine. Questa data deve essere uguale o successiva alla data di start. Se end non è specificato, l'intervallo di date risulta effettivamente 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
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).
TaxFeeInfo / Property / Taxes / Tax / Amount 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.

Puoi specificare max o excluded, ma non entrambi.

TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @max 0..1 Int Il numero massimo di notti per cui è applicabile questa tassa.

Ad esempio, se la tassa deve essere applicata per un massimo di tre notti, imposta max su 3.

Se max è maggiore o uguale alla durata del soggiorno, la tassa viene applicata a ogni notte dell'itinerario.

TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @excluded 0..1 Int Questa tassa è applicabile per (LOS - excluded) notti, dove LOS è la durata del soggiorno.

Ad esempio, se la tassa non deve essere applicata alla data del check-in, imposta excluded su 1.

Se excluded è maggiore o uguale alla durata del soggiorno, non viene applicata alcuna tassa.

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 per 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 / 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

Messaggio di base

Un messaggio TaxFeeInfo di base:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2020-05-18T16:20:00-04:00"
            id="12345678"
            partner="partner_account_name">
  <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

Questo codice elimina tutte le tasse e le tariffe a livello di proprietà per l'hotel specificato:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2020-05-18T16:20:00-04:00"
            id="12345678"
            partner="partner_account_name">
  <Property>
    <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="2020-05-18T16:20:00-04:00"
            id="12345678"
            partner="partner_account_name">
  <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>

Risposte

Sintassi

La sintassi del messaggio TaxFeeInfoResponse è la seguente:
<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfoResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_account_name">
  <!-- 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="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_account_name">
  <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="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_account_name">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</TaxFeeInfoResponse>