TaxFeeInfo

Solicitudes

Sintaxis

En el mensaje TaxFeeInfo se utiliza la siguiente sintaxis:
<?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>

Elementos y atributos

El mensaje TaxFeeInfo incluye los siguientes elementos y atributos:
Elemento/@Atributo Repeticiones Tipo Descripción
TaxFeeInfo 1 Complex element Elemento raíz de un mensaje que define los impuestos y las tasas de una propiedad.
TaxFeeInfo/@timestamp 1 DateTime Fecha y hora de creación de este mensaje.
TaxFeeInfo/@id 1 String Identificador único de este mensaje de solicitud. Este valor se devuelve en el mensaje de respuesta. Los caracteres permitidos son a-z, A-Z, 0-9, _ (guion bajo) y - (guion).
TaxFeeInfo/@partner 1 String Cuenta de partner de este mensaje. El valor de esta cadena es "Clave del partner", que aparece en la página Configuración de la cuenta de Hotel Center.

Nota: Si tienes un backend que proporciona feeds para varias cuentas, este valor debe coincidir con el del atributo ID que se especifica en el elemento <RequestorID> de tus mensajes <OTA_HotelRateAmountNotifRQ> y <OTA_HotelAvailNotifRQ> de la misma cuenta.

TaxFeeInfo/Property 1..n Property Contenedor para definir los impuestos y las tasas de una propiedad.
TaxFeeInfo/Property/ID 1 String Identificador único de la propiedad. Este valor debe coincidir con el ID de hotel especificado en la cadena <id> del elemento <listing> del feed de lista de hoteles. El ID de hotel también aparece en Hotel Center.
TaxFeeInfo/Property/Taxes 0..1 Taxes Contenedor para uno o más elementos <Tax>.
TaxFeeInfo/Property/Taxes/Tax 1..n Tax Impuestos concretos que se aplican a la propiedad.
TaxFeeInfo/Property/Taxes/Tax/RoomTypes 0..1 RoomTypes Contenedor para una lista de tipos de habitación a las que se aplica el impuesto. El impuesto se aplica a cada elemento <RoomType> especificado. Si no se especifica <RoomTypes>, el impuesto se aplica a todas las habitaciones.
TaxFeeInfo/Property/Taxes/Tax/RoomTypes/RoomType 1..n RoomType Especifica el tipo de habitación, que se define en un elemento <RoomData> de un mensaje Transaction (Property Data) y se identifica mediante su valor RoomID. También se hace referencia al valor de <RoomID> mediante el atributo InvTypeCode de los mensajes OTA_HotelRateAmountNotifRQ.
TaxFeeInfo/Property/Taxes/Tax/RoomTypes/RoomType/@id 1 String Identificador único del inventario (tipo de habitación). Este valor se asigna a <RoomID> en un mensaje Transaction (Property Data). Admite un máximo de 50 caracteres.
TaxFeeInfo/Property/Taxes/Tax/RatePlans 0..1 RatePlans Contenedor para una lista de planes de precios a los que se aplica el impuesto. Si no se especifica <RatePlans>, el impuesto se aplica a todos los planes de precios.
TaxFeeInfo/Property/Taxes/Tax/RatePlans/RatePlan 1..n RatePlan Especifica un plan de precios. Un plan de precios se define a partir de una combinación de paquetes, precios y disponibilidad, tal como se define en los mensajes Transaction (Property Data), OTA_HotelRateAmountNotifRQ y OTA_HotelAvailNotifRQ, y se identifica por el PackageID.
TaxFeeInfo/Property/Taxes/Tax/RatePlans/RatePlan @id 1 String Identificador único del plan de precios. Este valor se corresponde con el valor de PackageID de <PackageData> en un mensaje Transaction (Property Data) y en el atributo RatePlanCode de <StatusApplicationControl> en los mensajes <OTA_HotelRateAmountNotifRQ> y <OTA_HotelAvailNotifRQ>. Admite un máximo de 50 caracteres.
TaxFeeInfo/Property/Taxes/Tax/BookingDates 0..1 BookingDates Contenedor para uno o varios periodos que determinan cuándo debe producirse una reserva para que se aplique el impuesto.
TaxFeeInfo/Property/Taxes/Tax/BookingDates/DateRange 1..99 DateRange Periodo en el que se especifica cuándo debe producirse una reserva para que se aplique el impuesto.
TaxFeeInfo/Property/Taxes/Tax/BookingDates/DateRange/@start 0..1 Date Fecha de inicio del periodo (en función de la zona horaria de la propiedad). Esta fecha debe ser la misma o anterior a la indicada en end. Si no se especifica start, el periodo es ilimitado en lo que se refiere a la fecha de inicio.
TaxFeeInfo/Property/Taxes/Tax/BookingDates/DateRange/@end 0..1 Date Fecha de finalización del periodo (en función de la zona horaria de la propiedad). Esta fecha debe ser la misma o posterior a la indicada en start. Si no se especifica end, el periodo es ilimitado en lo que se refiere a la fecha de finalización.
TaxFeeInfo/Property/Taxes/Tax/BookingDates/DateRange/@days_of_week 0..1 String

Días de la semana permitidos en el periodo. Si no se especifica, se permiten todos los días. Cada carácter de la cadena indica un día. Por ejemplo, "MTWHF" especifica que se permiten días laborables en el periodo.

Los caracteres válidos son:

  • M para el lunes
  • T para el martes
  • W para el miércoles
  • H para el jueves
  • F para el viernes
  • S para el sábado
  • U para el domingo

Cualquier combinación de caracteres es válida.

TaxFeeInfo/Property/Taxes/Tax/CheckinDates 0..1 CheckinDates Contenedor para uno o varios periodos que determinan cuándo debe realizarse la entrada para que se aplique el impuesto.
TaxFeeInfo/Property/Taxes/Tax/CheckinDates/DateRange 1..20 DateRange Periodo que indica cuándo debe realizarse la entrada para que se aplique el impuesto.
TaxFeeInfo/Property/Taxes/Tax/CheckinDates/DateRange/@start 0..1 Date Fecha de inicio del periodo (en función de la zona horaria de la propiedad). Esta fecha debe ser la misma o anterior a la indicada en end. Si no se especifica start, el periodo es ilimitado en lo que se refiere a la fecha de inicio.
TaxFeeInfo/Property/Taxes/Tax/CheckinDates/DateRange/@end 0..1 Date Fecha de finalización del periodo (en función de la zona horaria de la propiedad). Esta fecha debe ser la misma o posterior a la indicada en start. Si no se especifica end, el periodo es ilimitado en lo que se refiere a la fecha de finalización.
TaxFeeInfo/Property/Taxes/Tax/CheckinDates/DateRange/@days_of_week 0..1 String

Días de la semana permitidos en el periodo. Si no se especifica, se permiten todos los días. Cada carácter de la cadena indica un día. Por ejemplo, "MTWHF" especifica que se permiten días laborables en el periodo.

Los caracteres válidos son:

  • M para el lunes
  • T para el martes
  • W para el miércoles
  • H para el jueves
  • F para el viernes
  • S para el sábado
  • U para el domingo

Cualquier combinación de caracteres es válida.

TaxFeeInfo/Property/Taxes/Tax/CheckoutDates 0..1 CheckoutDates Contenedor para uno o varios periodos que determinan cuándo debe realizarse la salida para que se aplique el impuesto.
TaxFeeInfo/Property/Taxes/Tax/CheckoutDates/DateRange 1..20 DateRange Periodo que indica cuándo debe realizarse la salida para que se aplique el impuesto.
TaxFeeInfo/Property/Taxes/Tax/CheckoutDates/DateRange/@start 0..1 Date Fecha de inicio del periodo (en función de la zona horaria de la propiedad). Esta fecha debe ser la misma o anterior a la indicada en end. Si no se especifica start, el periodo es ilimitado en lo que se refiere a la fecha de inicio.
TaxFeeInfo/Property/Taxes/Tax/CheckoutDates/DateRange/@end 0..1 Date Fecha de finalización del periodo (en función de la zona horaria de la propiedad). Esta fecha debe ser la misma o posterior a la indicada en start. Si no se especifica end, el periodo es ilimitado en lo que se refiere a la fecha de finalización.
TaxFeeInfo/Property/Taxes/Tax/CheckoutDates/DateRange/@days_of_week 0..1 String

Días de la semana permitidos en el periodo. Si no se especifica, se permiten todos los días. Cada carácter de la cadena indica un día. Por ejemplo, "MTWHF" especifica que se permiten días laborables en el periodo.

Los caracteres válidos son:

  • M para el lunes
  • T para el martes
  • W para el miércoles
  • H para el jueves
  • F para el viernes
  • S para el sábado
  • U para el domingo

Cualquier combinación de caracteres es válida.

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

Contenedor para uno o más periodos que determinan si se aplica el impuesto (por ejemplo, para ajustar los descuentos de temporada).

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

Describe cómo se debe aplicar el impuesto.

Estos son los valores válidos:

  • all: se aplica el impuesto a cada noche del itinerario si todas sus fechas se solapan con las fechas de estancia.
  • any: se aplica el impuesto a todas las noches del itinerario si alguna de sus fechas se solapa con una fecha del periodo de estancia.
  • overlap: se aplica el impuesto solo a las noches del itinerario que se solapan con una fecha del periodo de estancia.

    Nota: overlap solo es válido cuando <Period> se define como night.

Este atributo se debe especificar siempre.

TaxFeeInfo/Property/Taxes/Tax/StayDates/DateRange 1..99 DateRange Periodo que indica las fechas en las que debe aplicarse el impuesto.
TaxFeeInfo/Property/Taxes/Tax/StayDates/DateRange/ @start 0..1 Date Fecha de inicio del periodo (en función de la zona horaria de la propiedad). Esta fecha debe ser la misma o anterior a la indicada en end. Si no se especifica start, el periodo es ilimitado en lo que se refiere a la fecha de inicio.
TaxFeeInfo/Property/Taxes/Tax/StayDates/DateRange/ @end 0..1 Date Fecha de finalización del periodo (en función de la zona horaria de la propiedad). Esta fecha debe ser la misma o posterior a la indicada en start. Si no se especifica end, el periodo es ilimitado en lo que se refiere a la fecha de finalización.
TaxFeeInfo/Property/Taxes/Tax/StayDates/DateRange/ @days_of_week 0..1 String

Días de la semana permitidos en el periodo. Si no se especifica, se permiten todos los días. Cada carácter de la cadena indica un día. Por ejemplo, "MTWHF" especifica que se permiten días laborables en el periodo.

Los caracteres válidos son:

  • M para el lunes
  • T para el martes
  • W para el miércoles
  • H para el jueves
  • F para el viernes
  • S para el sábado
  • U para el domingo

Cualquier combinación de caracteres es válida.

TaxFeeInfo/Property/Taxes/Tax/Type 1 Enum

Estos son los valores válidos:

  • percent: porcentaje del precio total
  • amount: importe fijo que se añade al precio final
TaxFeeInfo/Property/Taxes/Tax/Basis 1 Enum

Estos son los valores válidos:

  • room: el valor de <Amount> se aplica a la habitación.
  • person: el valor de <Amount> se aplica por persona. Este valor solo se aplica si se asigna un importe a <Type>.
TaxFeeInfo/Property/Taxes/Tax/Period 1 Enum

Estos son los valores válidos:

  • stay: el valor de <Amount> se añade al precio total de la estancia.
  • night: el valor de <Amount> se añade por cada noche de la estancia.
TaxFeeInfo/Property/Taxes/Tax/Currency 0..1 String Código de tres letras de la moneda asignada al impuesto (por ejemplo, USD).
TaxFeeInfo/Property/Taxes/Tax/Amount 1 Float Valor del porcentaje o del importe del impuesto.
TaxFeeInfo/Property/Taxes/Tax/ApplicableNights 0..1 ApplicableNights Este valor solo se aplica si se asigna el valor amount a <Type> y el valor night a <Period>.

Limita el número de noches a las que se puede aplicar un impuesto.

Se puede especificar max o excluded, pero no ambos.

TaxFeeInfo/Property/Taxes/Tax/ApplicableNights/@max 0..1 Int Número máximo de noches a las que se puede aplicar este impuesto.

Por ejemplo, si el impuesto debe aplicarse a un máximo de 3 noches, asigna el valor "3" a max.

Si el valor de max es mayor o igual a la duración de la estancia, el impuesto se aplica a todas las noches del itinerario.

TaxFeeInfo/Property/Taxes/Tax/ApplicableNights/@excluded 0..1 Int Se puede aplicar este impuesto a las noches (LOS: excluded), donde "LOS" es la duración de la estancia.

Por ejemplo, si el impuesto no se debe aplicar en la fecha de entrada, asigna el valor "1" a excluded.

Si el valor de excluded es mayor o igual a la duración de la estancia, no se aplica ningún impuesto.

TaxFeeInfo/Property/Taxes/Tax/LengthOfStay 0..1 LengthOfStay Define los límites de la duración de la estancia dentro de los que se puede aplicar este impuesto. El impuesto no se aplica si la duración de la estancia está fuera de los límites mínimo o máximo.
TaxFeeInfo/Property/Taxes/Tax/LengthOfStay/@min 0..1 Integer Número mínimo de noches de estancia que se permiten para que se aplique el impuesto. Si no se especifica, no se aplica ningún mínimo.
TaxFeeInfo/Property/Taxes/Tax/LengthOfStay/@max 0..1 Integer Número máximo de noches de estancia que se permiten para que se aplique el impuesto. Si no se especifica, no se aplica ningún máximo.
TaxFeeInfo/Property/Taxes/Tax/Brackets 0..1 Brackets Contenedor para uno o más elementos <Bracket>. Define un conjunto de tramos impositivos correlativos que no se superponen (por ejemplo, los niveles determinados según los ingresos para aplicar el IBS en la India).

Este elemento solo es válido si se asigna el valor night a <Period> y no se especifica <Amount>.

TaxFeeInfo/Property/Taxes/Tax/Brackets/@base_amount 0..1 Float Valor del porcentaje o importe del impuesto que se aplica a los precios por noche que están por debajo del valor starts_at del primer tramo.
TaxFeeInfo/Property/Taxes/Tax/Brackets/Bracket 1..n Bracket Define un tramo impositivo a partir de los precios por noche.
TaxFeeInfo/Property/Taxes/Tax/Brackets/Bracket/@starts_at 1 Float

Define el límite inferior de un tramo impositivo. El límite superior se especifica en el campo starts_at del tramo posterior. El último tramo impositivo no tiene límite superior.

Se aplica un tramo impositivo si el precio por noche es mayor o igual al valor starts_at de ese tramo y claramente menor al valor starts_at del tramo posterior.

Este valor debe ser mayor que 0, sin excepciones.

TaxFeeInfo/Property/Taxes/Tax/Brackets/Bracket/@amount 1 Float Valor del porcentaje o importe del impuesto que se aplica en un tramo impositivo.
TaxFeeInfo/Property/Fees 0..1 Fees Contenedor para uno o más elementos <Fee>.
TaxFeeInfo/Property/Fees/Fee 1..n Fee

Comisión concreta que se aplica a la propiedad.

Todos los elementos secundarios de <Tax> también se admiten en <Fee> con la misma sintaxis.

Ejemplos

Mensaje básico

Un mensaje TaxFeeInfo básico:

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

Eliminación de impuestos

Se eliminan todos los impuestos y comisiones que se aplican a la propiedad en el hotel especificado:

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

Niveles impositivos

Niveles determinados según los ingresos para aplicar el IBS en la India, que se definen a partir de los precios por noche. Los tramos impositivos son los siguientes:

  • No se aplica el impuesto si el precio por noche es inferior o igual a 1000.
  • Se aplica un impuesto del 12 % si el precio por noche es superior a 1000 e inferior o igual a 7500.
  • Se aplica un impuesto del 18 % si el precio por noche es superior a 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>

Respuestas

Sintaxis

En el mensaje TaxFeeInfoResponse se utiliza la siguiente sintaxis:
<?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>

Elementos y atributos

El mensaje TaxFeeInfoResponse incluye los siguientes elementos y atributos:
Elemento/@Atributo Repeticiones Tipo Descripción
TaxFeeInfoResponse 1 Complex element Elemento raíz que indica si se han detectado problemas en un mensaje de solicitud TaxFeeInfo recibido o si, por el contrario, se ha procesado correctamente.
TaxFeeInfoResponse/@timestamp 1 DateTime Fecha y hora de creación de este mensaje.
TaxFeeInfoResponse/@id 1 String Identificador único del mensaje TaxFeeInfo asociado.
TaxFeeInfoResponse/@partner 1 String Cuenta de partner de este mensaje.
TaxFeeInfoResponse/Success 0..1 Success Indica que el mensaje TaxFeeInfo se ha procesado correctamente sin advertencias, errores ni fallos.

En cada mensaje se incluye <Success> o <Issues>.

TaxFeeInfoResponse/Issues 0..1 Issues Contenedor para uno o varios problemas que se han detectado al procesar el mensaje TaxFeeInfo.

En cada mensaje se incluye <Success> o <Issues>.

TaxFeeInfoResponse/Issues/Issue 1..n Issue Descripción de una advertencia, error o fallo que se ha detectado al procesar el mensaje TaxFeeInfo. Para obtener más información sobre estos problemas, consulta los mensajes de error del estado del feed.
TaxFeeInfoResponse/Issues/Issue/@code 1 Integer Identificador del problema.
TaxFeeInfoResponse/Issues/Issue/@status 1 Enum

Tipo de problema que se ha detectado.

Los valores válidos son warning, error y failure.

Ejemplos

Sin errores

A continuación, se incluye una respuesta a un mensaje TaxFeeInfo que se ha procesado correctamente:

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

Con errores

A continuación, se incluye una respuesta a un mensaje TaxFeeInfo que no se procesado debido a determinados errores:

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