Solicitudes
Sintaxis
En el mensajeTaxFeeInfo
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 mensajeTaxFeeInfo
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 |
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:
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:
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:
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:
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:
Cualquier combinación de caracteres es válida. |
TaxFeeInfo/Property/Taxes/Tax/Type | 1 | Enum | Estos son los valores válidos:
|
TaxFeeInfo/Property/Taxes/Tax/Basis | 1 | Enum | Estos son los valores válidos:
|
TaxFeeInfo/Property/Taxes/Tax/Period | 1 | Enum |
Estos son los valores válidos:
|
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 |
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 |
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 Se aplica un tramo impositivo si el precio por noche es mayor o igual al valor 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 |
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 mensajeTaxFeeInfoResponse
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 mensajeTaxFeeInfoResponse
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 |
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 |
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>