OTA_HotelRateAmountNotifRQ

Solicitudes

Sintaxis

El mensaje OTA_HotelRateAmountNotifRQ usa la siguiente sintaxis:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="message_ID"
                            TimeStamp="timestamp"
                            Version="3.0"
                            NotifType="[Overlay|Delta|Remove]"
                            NotifScopeType="[ProductRate]">
  <POS>
    <Source>
      <RequestorID ID="partner_key"/>
    </Source>
  </POS>
  <RateAmountMessages HotelCode="HotelID">
    <RateAmountMessage>
      <StatusApplicationControl Start="YYYY-MM-DD"
                                End="YYYY-MM-DD"
                                Mon="boolean_value"
                                Tue="boolean_value"
                                Weds="boolean_value"
                                Thur="boolean_value"
                                Fri="boolean_value"
                                Sat="boolean_value"
                                Sun="boolean_value"
                                InvTypeCode="RoomID"
                                RatePlanCode="PackageID"
                                RatePlanType="[26]" />
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="float"
                            AmountAfterTax="float"
                            CurrencyCode="currency"
                            NumberOfGuests="integer"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="float"
                                   AgeQualifyingCode="[10|8]"
                                   MaxAge="integer"/>
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Elementos y atributos

El mensaje OTA_HotelRateAmountNotifRQ tiene los siguientes elementos y atributos:

Elemento / @Attribute Occurrences Tipo Descripción
OTA_HotelRateAmountNotifRQ 1 Complex element Es el elemento raíz de un mensaje de tarifas.
OTA_HotelRateAmountNotifRQ / @xmlns 0..1 string (URI) El espacio de nombres XML.
OTA_HotelRateAmountNotifRQ / @EchoToken 1 string Un identificador único para este mensaje de solicitud. Este valor se muestra en el mensaje de respuesta. Los caracteres permitidos son a-z, A-Z, 0-9, _ (underscore) y - (dash).
OTA_HotelRateAmountNotifRQ / @TimeStamp 1 DateTime La fecha y hora de creación de este mensaje.
OTA_HotelRateAmountNotifRQ / @Version 1 decimal La versión del mensaje de OpenTravel.
OTA_HotelRateAmountNotifRQ / @NotifType 0..1 enum

Es el tipo de notificación que se aplicará a cada <RateAmountMessage>.

Estos son los valores válidos:

Para comprender cómo funcionan estos atributos, consulta los ejemplos.

  • Overlay: Borra todas las tarifas por ocupación del tipo de habitación, el plan de tarifas y las fechas especificados en <StatusApplicationControl> y reemplázalas por tarifas nuevas.
  • Remove: Borra todas las tarifas por ocupación existentes para el tipo de habitación, el plan de tarifas y las fechas especificadas en <StatusApplicationControl>.
  • Delta: (el valor predeterminado si no se especifica NotifType) Agrega o actualiza las tarifas por ocupación existentes para el tipo de habitación, el plan de tarifas y las fechas especificadas en <StatusApplicationControl>.
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

El alcance de NotifType que se aplicará a cada <RateAmountMessage>.

Estos son los valores válidos:

  • ProductRate: (el valor predeterminado si no se especifica NotifScopeType) El NotifType se aplica a los productos: combinaciones de tipo de habitación (InvTypeCode) y plan de tarifas (RatePlanCode).
OTA_HotelRateAmountNotifRQ / POS 0..1 POS Es un contenedor para especificar la cuenta de socio para este mensaje (por lo general, se usa si el backend proporciona feeds de precios para varias cuentas de socios).
OTA_HotelRateAmountNotifRQ / POS / Source 1 Source Es obligatorio si <POS> está presente. Es un contenedor para <RequestorID>.
OTA_HotelRateAmountNotifRQ / POS / RequestorID 1 RequestorID Es obligatorio si <POS> está presente. Define la cuenta de socio.
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID 1 string La cuenta de socio de este mensaje. Este valor de cadena es el valor de “Clave de socio” 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 valor del atributo partner de tu mensaje de transacción (datos de propiedad) y con el valor del atributo ID en el elemento <RequestorID> del mensaje <OTA_HotelAvailNotifRQ> para la misma cuenta.

OTA_HotelRateAmountNotifRQ / RateAmountMessages 1 RateAmountMessages Una colección de elementos <RateAmountMessage> que definen tarifas.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode 1 string Es el identificador único de la propiedad. Este valor debe coincidir con el ID de hotel especificado usando <id> en el elemento <listing> del feed de lista de hoteles. El ID de hotel también aparece en Hotel Center.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage 1..n RateAmountMessage Un contenedor para establecer precios de una tarifa de habitación (una combinación de tipo de habitación y plan de tarifas para un período determinado).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl 1 StatusApplicationControl Define el período, así como los identificadores del tipo de habitación (InvTypeCode) y el plan de tarifas (RatePlanCode).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start 1 Date Es la fecha de inicio (según la zona horaria de la propiedad), inclusive, del período.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End 1 Date Es la fecha de finalización (según la zona horaria de la propiedad), inclusive, del período. Debe ser igual o mayor que el valor start. Si start y end son iguales, la actualización se aplicará a esa fecha. Ten en cuenta que Google admite datos de hasta tres años.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon 0..1 boolean Configúralo en true o 1 para incluir los lunes de forma explícita.

Si se establece en true, se excluyen otros días de la semana que no están configurados explícitamente como true (en efecto, se excluyen de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 boolean Configúralo en true o 1 para incluir los martes de manera explícita.

Si se establece en true, se excluyen otros días de la semana que no están configurados explícitamente como true (en efecto, se excluyen de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds 0..1 boolean Configúralo en true o 1 para incluir los miércoles de manera explícita.

Si se establece en true, se excluyen otros días de la semana que no están configurados explícitamente como true (en efecto, se excluyen de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 boolean Configúralo en true o 1 para incluir los jueves de forma explícita.

Si se establece en true, se excluyen otros días de la semana que no están configurados explícitamente como true (en efecto, se excluyen de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri 0..1 boolean Configúralo en true o 1 para incluir los viernes de manera explícita.

Si se establece en true, se excluyen otros días de la semana que no están configurados explícitamente como true (en efecto, se excluyen de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat 0..1 boolean Configúralo en true o 1 para incluir los sábados de forma explícita.

Si se establece en true, se excluyen otros días de la semana que no están configurados explícitamente como true (en efecto, se excluyen de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun 0..1 boolean Configúralo en true o 1 para incluir los domingos de forma explícita.

Si se establece en true, se excluyen otros días de la semana que no están configurados explícitamente como true (en efecto, se excluyen de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode 1 string Es el identificador único del inventario (tipo de habitación). Este valor se asigna a <RoomID> en un mensaje de transacción (datos de propiedad).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode 1 string Es un identificador único para el plan de tarifas. Este identificador se asigna al <PackageID> en un mensaje de transacción (datos de propiedad). El plan de tarifas se define con más detalle y se hace referencia a él en <StatusApplicationControl> en los mensajes <OTA_HotelRateAmountNotifRQ> y <OTA_HotelAvailNotifRQ>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType 0..1 string Un identificador que indica el tipo de modelo de precios de ARI que se aplica a esta actualización de precios. Solo se debe especificar, con un valor de 26, cuando se usa el modelo de precios basado en la LOS. La exclusión de este atributo indica que esta es una actualización de precios por fecha.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates 0..1 Rates Contenedor para una colección de elementos <Rate>. Si NotifType es "Remove", no se debe especificar este elemento. De lo contrario, este elemento debe especificarse exactamente una vez.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate 1 Rate Contenedor para una colección de elementos <BaseByGuestAmts>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit 0..1 String Es la unidad que especifica la duración de la estadía. El único valor admitido es "Day", lo que significa que la duración de la estadía se especificará en días.

Para usar los precios basados en la LOS, debes especificar RateTimeUnit y UnitMultiplier. De lo contrario, no debe especificarse ninguno.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier 0..1 Integer Es la cantidad de RateTimeUnits que componen la duración de la estadía para esta tarifa.

Por ejemplo, si el valor de RateTimeUnits es "Day", un UnitMultiplier de 5 indica que las tarifas especificadas en este objeto Rate se aplican a todas las noches de una estadía de 5 noches.

Las tarifas de ocupación especificadas en este objeto Rate se multiplicarán por UnitMultiplier (duración de la estadía) para llegar al precio total de la estadía.

Para usar los precios basados en la LOS, debes especificar RateTimeUnit y UnitMultiplier. De lo contrario, no debe especificarse ninguno.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts 1 BaseByGuestAmts Contenedor de un conjunto de cargos base.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt 1..n BaseByGuestAmt Especifica los precios de las habitaciones en una moneda determinada. El precio puede ser por ocupación si usas varios elementos <BaseByGuestAmt>, cada uno con un valor diferente para NumberOfGuests. De lo contrario, el precio se aplica a una cantidad máxima de ocupantes definida por NumberOfGuests.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax 0..1 float

El precio diario de la tarifa de la habitación sin impuestos ni tarifas.

Se pueden especificar AmountBeforeTax y AmountAfterTax. Si no se especifica AmountBeforeTax, se debe especificar AmountAfterTax. Si se especifica AmountBeforeTax, pero no se especifica AmountAfterTax, se deben especificar los impuestos y las tarifas en un mensaje <TaxFeeInfo>.

Si usas promociones, el descuento se aplica a AmountBeforeTax. Los descuentos porcentuales también se aplican a AmountAfterTax. Dado que esto no funciona con algunas estructuras fiscales, te recomendamos que solo especifiques AmountBeforeTax aquí y que uses <TaxFeeInfo> para especificar impuestos y tarifas.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax 0..1 float Es el precio diario de la tarifa de la habitación después de incluir los impuestos y las tarifas aplicables. Si se especifica AmountAfterTax, no es necesario enviar mensajes <TaxFeeInfo> separados por propiedad. Este atributo se puede usar junto con AmountBeforeTax para proporcionar las tarifas base y totales que se pueden mostrar a los usuarios en ciertas regiones.

Advertencia: Si usas promociones, te recomendamos que no uses importes de AmountAfterTax. Si deseas usar descuentos, especifica los impuestos y las tarifas mediante el mensaje <TaxFeeInfo>. Luego, se aplicarán los descuentos a los importes de AmountBeforeTax.

Nota: Si no se especifica AmountBeforeTax, se debe especificar AmountAfterTax.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode 1 enum Es el código de caracteres alfa ISO 4217 (3) para una unidad monetaria específica.

Consulta la lista de monedas admitidas.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests 0..1 integer Cantidad máxima de huéspedes que pueden alojarse con esta tarifa. El valor predeterminado es 2 invitados si no se proporcionan.

Ten en cuenta que, si <AdditionalGuestAmounts> contiene cargos por niños, NumberOfGuests solo se refiere a adultos. Si no se especifica <AdditionalGuestAmounts> o no contiene cargos por niños, NumberOfGuests se refiere a la cantidad total de ocupantes, incluidos adultos y niños.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts 0..1 AdditionalGuestAmounts Contenedor para un cobro de cargos por huéspedes adicionales.

Esta sintaxis es útil si las tarifas adicionales para huéspedes o niños cambian según la fecha. Considera usar el mensaje ExtraGuestCharges más eficiente si estas cantidades se pueden definir de forma estática a nivel de la propiedad.

Se aplican importes de huéspedes adicionales de la siguiente manera:
  • Se aplican sobre la tarifa de ocupación base. La tasa de ocupación base es la tasa de ocupación más alta, especificada en <BaseByGuestAmts>, que es menor o igual que la cantidad de adultos en la búsqueda de un usuario.
  • Se aplican siempre que la ocupación en una búsqueda de usuarios se encuentre dentro de la capacidad de la sala.
  • <AdditionalGuestAmounts> siempre reemplaza los importes adicionales especificados anteriormente por valores nuevos cuando NotifType es Delta o Superposición.
  • <AdditionalGuestAmounts> se puede enviar independientemente de las tarifas base solo cuando NotifType es Delta. <BaseByGuestAmts>Se debe especificar cuando NotifType es Overlay.
  • Un elemento <AdditionalGuestAmounts> vacío con NotifType configurado como Delta quita los importes adicionales existentes sin afectar las tarifas base.
  • Se aplican usando la moneda especificada en <BaseByGuestAmt>.

Por ejemplo, supongamos que se especifican las tarifas base para 1 y 2 adultos.

  • Si un usuario busca 3 adultos, se seleccionaría la tarifa de ocupación doble como tarifa base y se aplicaría un importe adicional de huéspedes por 1 adulto.
  • Si el usuario busca 1 adulto y 2 niños, se seleccionaría la tarifa de ocupación individual como tarifa base y se aplicarían importes adicionales para los dos niños.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount 0..n AdditionalGuestAmount Especifica los precios según el tipo de huésped, especificado en AgeQualifyingCode, y, si corresponde, la edad del huésped especificada mediante MaxAge.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode 1 enum Define el tipo de invitado adicional, ya sea adulto o niño. Las opciones válidas son las siguientes:
  • 10: Adulto.
  • 8: publicador secundario.

AgeQualifyingCode se puede establecer en 10 para un máximo de un elemento AdditionalGuestAmount.

Se debe especificar MaxAge cuando AgeQualifyingCode es 8.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge 0..1 integer Se debe especificar MaxAge cuando AgeQualifyingCode es 8. No debe especificarse cuando AgeQualifyingCode es 10.

MaxAge debe ser un número entero entre 0 y 17.

Si especificas un valor de 0, se inhabilitan los ocupantes secundarios.

Los valores superiores a 17 se tratarán como el valor máximo aceptado de 17.

Se pueden especificar varios rangos de edad secundarios mediante elementos AdditionalGuestAmount independientes. Los rangos de edad deben ser contiguos y no superponerse.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount 1 float Importe sin impuestos ni tarifas que se agrega a la tarifa base por cada huésped adicional.

Los impuestos y las tarifas que dependen de la edad de los ocupantes se deben especificar a través del elemento <AgeBrackets> en un mensaje <TaxFeeInfo>.

Ejemplos

En esta sección, se proporcionan ejemplos de código en los que se destaca cómo realizar las siguientes acciones:

Cuando configuras los valores add, overlay o remove, los períodos pueden ser iguales o diferentes según tus objetivos. Por ejemplo, puedes usar overlay para establecer solo unas pocas semanas para las festividades de diciembre, en lugar de todo el período establecido para el mensaje “Agregar tarifa”. Esto reemplazará las tarifas de ocupación solo para este período.

Precios por fecha

Configura las tarifas base y las tarifas totales

Ejemplo 1

Tarifa base (sin impuestos ni tarifas) para la ocupación predeterminada (doble). En este modelo, los impuestos y las tarifas de la propiedad se deben definir con un mensaje <TaxFeeInfo>. La tarifa base será más prominente para los usuarios que realicen búsquedas desde ciertas regiones.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Ejemplo 2

Tarifa base y total para la ocupación predeterminada (doble). En este modelo, los impuestos y las tarifas no deben definirse por separado mediante mensajes <TaxFeeInfo>. La tarifa base se destacará más en el caso de los usuarios que realicen búsquedas desde ciertas regiones.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Ejemplo 3

Tarifa total (con impuestos y tarifas) para varias ocupaciones. En este modelo, los impuestos y las tarifas no deben definirse por separado mediante mensajes <TaxFeeInfo>.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Ejemplo 4

Tarifa base y total para varios tipos de habitaciones y planes de tarifas para diferentes períodos.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-01"
                                End="2020-05-31"
                                InvTypeCode="RoomID_2"
                                RatePlanCode="PackageID_2"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            AmountAfterTax="220.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Agrega, superpón y quita tarifas

Agregar tarifas

Configura NotifType como Delta para agregar las tarifas por ocupación para RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021. Ten en cuenta que Google admite hasta tres años de datos.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountBeforeTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Tarifas de superposición

Configura NotifType como Overlay para borrar todas las tarifas por ocupación de RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021, y reemplázalas por las tarifas por ocupación especificadas recientemente.

Por ejemplo, si este mensaje se envió después del mensaje “Agregar tarifas”, se borrarán las tarifas de ocupación 1, 2 y 3, y solo se almacenará la tarifa de ocupación 1 nueva. También puede establecer un período más corto (p.ej.: 2021-12-20 y 2021-12-31) para reemplazar solo algunas de las tarifas de ocupación en determinadas fechas, como en días festivos.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Quitar tarifas

Configura NotifType como Remove para borrar todas las tarifas por ocupación de RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021.

Por ejemplo, si este mensaje se enviara después de cualquiera de los otros mensajes de ejemplo, no se almacenaría ninguna tasa por ocupación.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Agregar, superponer y quitar montos de invitados adicionales

Agregar importes

Configura NotifType como Delta para agregar tarifas base para la ocupación 1 y 2, así como importes adicionales de huéspedes, para RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021.

Se aplicarán importes adicionales por huéspedes sobre una tarifa base que se determinará según la ocupación en la búsqueda de un usuario. La ocupación especificada por el usuario debe estar dentro de la capacidad de RoomID_1.

En este ejemplo, se aplicarán importes de huéspedes adicionales como:

  • USD 5 para niños de 0 a 10 años (inclusive).
  • USD 10 para niños de entre 11 y 17 años (inclusive).
  • USD 20 para adultos.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" />
            <AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" />
            <AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Importes superpuestos

Configura NotifType como Overlay para borrar todas las tarifas por ocupación y todos los importes adicionales de huéspedes de RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021, y reemplázalos por las tarifas por ocupación especificadas recientemente y los importes adicionales.

Por ejemplo, si este mensaje se envió después del mensaje “Agregar tarifas”, se borrarán las tarifas de ocupación base 1 y 2, y solo se almacenará la nueva tarifa de ocupación base 1. Se borrará el conjunto anterior de importes de huéspedes adicionales, y solo se almacenará el conjunto nuevo de importes. Los importes adicionales de los huéspedes ahora usarían la nueva tarifa de ocupación 1 como la tarifa base. Ten en cuenta que, después de esta actualización, no se aplicarán cargos adicionales por huéspedes definidos para los niños.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Quitar importes

Configura NotifType como Delete para borrar todas las tarifas base por ocupación y todos los importes adicionales de huéspedes de RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021.

Por ejemplo, si este mensaje se enviara después de cualquiera de los otros ejemplos, no se almacenarán tarifas base por ocupación o importes adicionales de huéspedes.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Quitar solo los importes adicionales de los huéspedes

Configura NotifType como Delta con un elemento <AdditionalGuestAmounts> vacío para borrar todos los importes adicionales de huéspedes de RoomID_1 y PackageID_1 sin afectar las tarifas base entre el 20/10/2021 y el 31/12/2021.

Por ejemplo, si este mensaje se envió después de cualquiera de los otros mensajes de ejemplo, solo se almacenarán los importes base.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <AdditionalGuestAmounts/>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Precios basados en la duración de la estadía

Configurar tarifas basadas en la duración de la estadía

Ejemplo 1

Establecer tarifas para estadías de 1, 2 y 3 noches a partir del 18/5/2020. En este ejemplo, la tarifa total para estadías de 1, 2 y 3 noches en este ejemplo sería de $100, $180 y $240 respectivamente.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="1" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="2" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="90.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2" />
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Cómo agregar, superponer y quitar tarifas basadas en la duración de la estadía

Agregar duraciones de estadía

Con los precios basados en la duración de la estadía, una operación Delta permite que las tarifas se actualicen de forma incremental para los períodos de entrada indicados en <StatusApplicationControl> y para todas las duraciones de la estadía indicadas en el UnitMultiplier de cada elemento Rate secundario.

Para cada fecha de entrada y duración de la estadía aplicables, se deben especificar todas las tarifas de ocupación.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Superposición de duraciones de estadía

Con los precios basados en la duración de la estadía, una operación Overlay reemplaza las tarifas para todas las duraciones de la estadía del producto y el período de entrada que se indica en <StatusApplicationControl>.

Con este mensaje, se quitarán las tarifas por ocupación de todas las duraciones de la estadía en las fechas de llegada especificadas y se reemplazarán por una tarifa de ocupación doble que solo se define para la duración de la estadía 3.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Quitar las duraciones de la estadía

Con los precios basados en la duración de la estadía, una operación Remove quita las tarifas para todas las duraciones de la estadía del producto y el período de entrada que se indica en <StatusApplicationControl>.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Respuestas

Sintaxis

El mensaje OTA_HotelRateAmountNotifRS usa la siguiente sintaxis:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                            TimeStamp="timestamp"
                            EchoToken="echo_token"
                            Version="3.0">
  <!-- Either Success or Errors will be populated. -->
  <Success/>
  <Errors>
    <Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>

Elementos y atributos

El mensaje OTA_HotelRateAmountNotifRS tiene los siguientes elementos y atributos:

Elemento / @Attribute Occurrences Tipo Descripción
OTA_HotelRateAmountNotifRS 1 Complex element El elemento raíz de una respuesta a un mensaje de disponibilidad.
OTA_HotelRateAmountNotifRS / @TimeStamp 1 DateTime La fecha y hora de creación de este mensaje.
OTA_HotelRateAmountNotifRS / @EchoToken 1 string Es el identificador único del mensaje OTA_HotelRateAmountNotifRQ asociado.
OTA_HotelRateAmountNotifRS / Success 0..1 Success Indica que el mensaje OTA_HotelRateAmountNotifRQ se procesó de forma correcta.

<Success> o <Errors> está presente en cada mensaje.

OTA_HotelRateAmountNotifRS / Errors 0..1 Errors Un contenedor para uno o más problemas que se encontraron durante el procesamiento del mensaje OTA_HotelRateAmountNotifRQ.

<Success> o <Errors> está presente en cada mensaje.

OTA_HotelRateAmountNotifRS / Errors / Error 1..n Error La descripción de un error que se encontró mientras se procesaba el mensaje OTA_HotelRateAmountNotifRQ. Puedes encontrar detalles sobre estos errores en la sección Mensajes de error del estado del feed.
OTA_HotelRateAmountNotifRS / Errors / Error / @Type 1 integer El EWT (tipo de advertencia de error) de OpenTravel Alliance asociado con el error. Solo se usa el valor 12 (Processing exception).
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 integer El ERR (código de error) de OpenTravel Alliance asociado con el error. Solo se usa el valor 450 (Unable to process).
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 enum El estado de la solicitud original. Solo se usa el valor NotProcessed.
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText 1 string Es el identificador de Google del problema. Puedes encontrar detalles sobre estos errores en la sección Mensajes de error del estado del feed.

Ejemplos

Se completó correctamente

La siguiente es una respuesta a un mensaje OTA_HotelRateAmountNotifRQ procesado correctamente.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Success/>
</OTA_HotelRateAmountNotifRS>

Errores

La siguiente es una respuesta a un mensaje OTA_HotelRateAmountNotifRQ no procesado debido a errores.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Errors>
    <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>