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 Casos 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) Es el espacio de nombres XML.
OTA_HotelRateAmountNotifRQ / @EchoToken 1 string Es 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 Fecha y hora de creación de este mensaje.
OTA_HotelRateAmountNotifRQ / @Version 1 decimal Es 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 los reemplaza por tarifas nuevas.
  • Remove: Borra todas las tarifas existentes por ocupación para el tipo de habitación, el plan de tarifas y las fechas especificados en <StatusApplicationControl>.
  • Delta: (valor predeterminado si no se especifica NotifType) Agrega o actualiza las tarifas existentes por ocupación para el tipo de habitación, el plan de tarifas y las fechas especificados en <StatusApplicationControl>.
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

Es el alcance del NotifType que se aplicará a cada <RateAmountMessage>.

Estos son los valores válidos:

  • ProductRate: (valor predeterminado si no se especifica NotifScopeType): El NotifType se aplica a los productos, es decir, a las 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 tu backend proporciona feeds de precios para varias cuentas de socios).
OTA_HotelRateAmountNotifRQ / POS / Source 1 Source Obligatorio si <POS> está presente. Es un contenedor para el objeto <RequestorID>.
OTA_HotelRateAmountNotifRQ / POS / RequestorID 1 RequestorID Obligatorio si <POS> está presente. Define la cuenta del socio.
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID 1 string Es la cuenta de socio para este mensaje. Este valor de cadena es el valor de "Clave de socio" que se indica 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 Transaction (Property Data) y el valor del atributo ID en el elemento <RequestorID> de tu mensaje <OTA_HotelAvailNotifRQ> para la misma cuenta.

OTA_HotelRateAmountNotifRQ / RateAmountMessages 1 RateAmountMessages Es 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 con <id> en el elemento <listing> del feed de lista de hoteles. El ID del hotel también se indica en Hotel Center.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage 1..n RateAmountMessage Es un contenedor para establecer precios de una tarifa de habitación (una combinación de tipo de habitación y plan de tarifas en un período).
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 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 de start. Si start y end son iguales, la actualización se aplica a esa fecha. Ten en cuenta que Google admite hasta tres años de datos.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon 0..1 boolean Se establece en true o 1 para incluir explícitamente los lunes.

Si se configura como true, se excluyen otros días de la semana que no se hayan configurado explícitamente como true (en efecto, se filtran de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 boolean Se establece en true o 1 para incluir explícitamente los martes.

Si se configura como true, se excluyen otros días de la semana que no se hayan configurado explícitamente como true (en efecto, se filtran de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds 0..1 boolean Se establece en true o 1 para incluir explícitamente los miércoles.

Si se configura como true, se excluyen otros días de la semana que no se hayan configurado explícitamente como true (en efecto, se filtran de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 boolean Se establece en true o 1 para incluir explícitamente los jueves.

Si se configura como true, se excluyen otros días de la semana que no se hayan configurado explícitamente como true (en efecto, se filtran de las fechas dentro de Start y End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri 0..1 boolean Se establece en true o 1 para incluir explícitamente los viernes.

Si se configura como true, se excluyen otros días de la semana que no se hayan configurado explícitamente como true (en efecto, se filtran de las fechas dentro de Start y End).

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

Si se configura como true, se excluyen otros días de la semana que no se hayan configurado explícitamente como true (en efecto, se filtran de las fechas dentro de Start y End).

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

Si se configura como true, se excluyen otros días de la semana que no se hayan configurado explícitamente como true (en efecto, se filtran 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 Transaction (Property Data).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode 1 string Es un identificador único del plan de tarifas. Este identificador se asigna a <PackageID> en un mensaje de Transaction (Property Data). El plan de tarifas se define 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 Es un identificador que indica el tipo de modelo de precios del 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 duración de la estadía. La exclusión de este atributo indica que se trata de 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 se debe especificar 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 Unidad con la que se 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 duración de la estadía, se deben especificar RateTimeUnit y UnitMultiplier. De lo contrario, no se debe especificar 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 cada noche de una estadía de 5 noches.

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

Para usar los precios basados en la duración de la estadía, se deben especificar RateTimeUnit y UnitMultiplier. De lo contrario, no se debe especificar ninguno.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts 1 BaseByGuestAmts Es un contenedor para una colección de cargos básicos.
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 se usan 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

Es el precio diario de la tarifa de la habitación antes de impuestos y comisiones.

Se pueden especificar AmountBeforeTax y AmountAfterTax. Si no se especifica AmountBeforeTax, se debe especificar AmountAfterTax. Si se especifica AmountBeforeTax y no se especifica AmountAfterTax, los impuestos y las comisiones se deben especificar 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 comisiones.

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 comisiones aplicables. Si se especifica AmountAfterTax, no es necesario enviar mensajes de <TaxFeeInfo> separados por propiedad. Este atributo se puede usar en combinación con AmountBeforeTax para proporcionar tarifas base y totales que se pueden mostrar a los usuarios en ciertas regiones.

Advertencia: Si usas promociones, te recomendamos que no utilices importes de AmountAfterTax. Si quieres usar descuentos, especifica los impuestos y las comisiones con 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 Es la cantidad máxima de huéspedes que se pueden alojar con esta tarifa. El valor predeterminado es 2 invitados si no se proporciona.

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

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts 0..1 AdditionalGuestAmounts Es un contenedor para una colección de cargos por huéspedes adicionales.

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

Los importes adicionales por huésped se aplican de la siguiente manera:
  • Se aplican sobre la tarifa de ocupación base. La tarifa de ocupación base es la tarifa 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 y cuando la ocupación en la búsqueda del usuario esté dentro de la capacidad de la habitación.
  • <AdditionalGuestAmounts> siempre reemplaza los importes adicionales especificados anteriormente por los nuevos cuando NotifType es Delta o Overlay.
  • <AdditionalGuestAmounts> solo se puede enviar independientemente de las tarifas base cuando NotifType es Delta. <BaseByGuestAmts>se debe especificar cuando NotifType es Overlay.
  • Un elemento <AdditionalGuestAmounts> vacío con NotifType establecido en Delta quita los importes adicionales existentes sin afectar las tarifas base.
  • Se aplican con la moneda especificada en <BaseByGuestAmt>.

Por ejemplo, supongamos que se especifican 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 para 1 adulto.
  • Si el usuario busca 1 adulto y 2 niños, se seleccionará la tarifa de ocupación individual como la tarifa base, y se aplicarán importes adicionales sobre ella 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, que se indica a través de AgeQualifyingCode y, si corresponde, la edad del huésped, que se indica a través de MaxAge.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode 1 enum Define el tipo de huésped adicional, ya sea adulto o niño. Las opciones válidas son:
  • 10: Adulto.
  • 8: hijo o hija

AgeQualifyingCode se puede establecer en 10 para, como máximo, 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 se debe especificar cuando AgeQualifyingCode es 10.

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

Si se especifica 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 de los niños a través de elementos AdditionalGuestAmount separados. Los rangos de edad deben ser contiguos y no superponerse.

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

Los impuestos y las comisiones 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 que destacan cómo realizar las siguientes acciones:

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

Precios por fecha

Para una habitación y un plan de tarifas determinados, puede haber un máximo de 50 tasas de ocupación por propiedad. Si las tarifas son las mismas para todas las ocupaciones, solo debes enviar las ocupaciones máximas con el precio requerido. De esta manera, Google infiere que las ocupaciones más bajas también reciben la misma tarifa base.

Cómo configurar las tarifas base y las tarifas totales

Ejemplo 1

Tarifa base (sin impuestos ni cargos) para la ocupación predeterminada (doble). En este modelo, los impuestos y las comisiones de la propiedad se deben definir con un mensaje <TaxFeeInfo>. La tarifa base será más destacada 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 comisiones no se deben definir por separado con mensajes <TaxFeeInfo>. La tarifa base se destacará más 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"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Ejemplo 3

Tarifa total (con impuestos y comisiones) para varias ocupaciones. En este modelo, los impuestos y las comisiones no se deben definir por separado con 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 habitación y planes de tarifas en 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>
Agregar, superponer y quitar tarifas

Hay un límite de 5,000 productos (combinaciones de tipo de habitación y paquete) por propiedad. Usa los tipos de notificación Overlay o Remove para quitar los productos definidos anteriormente.

Agregar tarifas

Establece NotifType en Delta para agregar 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>

Porcentajes de superposición

Establece NotifType en 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 reemplazarlas por las tarifas por ocupación especificadas recientemente.

Por ejemplo, si este mensaje se envió después del mensaje "Add rates", se borrarían las tarifas de ocupación 1, 2 y 3, y solo se almacenaría la nueva tarifa de ocupación 1. También puedes establecer un período más corto (p.ej., 2021-12-20 y 2021-12-31) para reemplazar solo algunos de los porcentajes de ocupación en ciertas fechas, como los días feriados.

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

Porcentajes de retiro

Establece NotifType en Removepara 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 envió después de cualquiera de los otros mensajes de ejemplo, no se almacenaría ninguna tarifa 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 importes de invitados adicionales

Cómo agregar importes

Establece NotifType en Delta para agregar tarifas base para la ocupación 1 y 2, y cantidades de huéspedes adicionales, para RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021.

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

En este ejemplo, los importes de huéspedes adicionales se aplicarán de la siguiente manera:

  • USD 5 para niños de 0 a 10 años (inclusive)
  • USD 10 para niños y adolescentes de 11 a 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 de superposición

Establece NotifType en Overlay para borrar todas las tarifas por ocupación y todos los importes adicionales para huéspedes de RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021, y reemplazarlos por las tarifas por ocupación y los importes adicionales especificados recientemente.

Por ejemplo, si este mensaje se envió después del mensaje "Add rates", se borrarían las tarifas base de ocupación 1 y 2, y solo se almacenaría la nueva tarifa base de ocupación 1. Se borrará el conjunto anterior de importes adicionales para huéspedes, y solo se almacenará el nuevo conjunto de importes. Los importes de huéspedes adicionales 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 definen cargos adicionales para los niños que son 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="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

Establece NotifType en Delete para borrar todas las tarifas básicas por ocupación y todos los importes adicionales para huéspedes de RoomID_1 y PackageID_1 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, no se almacenarían tarifas base por ocupación ni importes adicionales para 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>

Quita solo los importes de los invitados adicionales

Establece NotifType en Delta con un elemento <AdditionalGuestAmounts> vacío para borrar todos los importes de huéspedes adicionales para RoomID_1 y PackageID_1 sin afectar las tarifas básicas entre el 2021-10-20 y el 2021-12-31.

Por ejemplo, si este mensaje se envió después de cualquiera de los otros mensajes de ejemplo, solo se almacenarían 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

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

Ejemplo 1

Establece tarifas para estadías de 1, 2 y 3 noches a partir del 2020-05-18. En este ejemplo, la tarifa total para estadías de 1, 2 y 3 noches sería de USD 100, USD 180 y USD 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 longitud de la estadía

Agrega 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 fechas de entrada indicados en <StatusApplicationControl> y para todas las duraciones de la estadía indicadas por el elemento UnitMultiplier de cada elemento secundario Rate.

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 la 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 rango de fechas de entrada indicados en <StatusApplicationControl>.

Con este mensaje, se quitarán las tarifas por ocupación para 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>

Cómo quitar duraciones de la estadía

Con los precios basados en la LOS, una operación Remove quita las tarifas para todas las duraciones de la estadía del producto y el período de fechas de entrada indicados 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 Casos Tipo Descripción
OTA_HotelRateAmountNotifRS 1 Complex element Es el elemento raíz de una respuesta a un mensaje de disponibilidad.
OTA_HotelRateAmountNotifRS / @TimeStamp 1 DateTime 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ó correctamente.

<Success> o <Errors> están presentes en cada mensaje.

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

<Success> o <Errors> están presentes en cada mensaje.

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

Ejemplos

Listo

A continuación, se muestra 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

A continuación, se muestra una respuesta a un mensaje de OTA_HotelRateAmountNotifRQ que no se procesó 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>