ModificacionesTarifas

Descripción general

Esta API te permite definir formas de aplicar acciones a una tarifa de forma dinámica cuando se cumplen las condiciones, como ajustar el precio o habilitar el reembolso. A diferencia de la API de promociones, que solo puede aplicar promociones aptas con los descuentos más significativos, esta API aplica cualquier acción cuando se cumplen ciertas condiciones, incluidos los ajustes de precio que podrían aumentar el precio final en última instancia.

Solicitudes

Sintaxis

El mensaje RateModifications usa la siguiente sintaxis:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
                      id="message_ID"
                      timestamp="timestamp">
  <HotelRateModifications hotel_id="HotelID" action="[overlay]">
    <ItineraryRateModification id="ModificationID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </BookingDates>
      <BookingWindow min="integer" max="integer"/>
      <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>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <LengthOfStay min="integer" max="integer"/>
      <MinimumAmount before_discount="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates application="[all|any]">
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="float"/>
        <RateRule id="RateRuleID"/>
        <Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/>
        <Availability status="[unavailable]"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

Elementos y atributos

El mensaje RateModifications tiene los siguientes elementos y atributos:

Elemento / @Attribute Occurrences Tipo Descripción
RateModifications 1 Complex element Es el elemento raíz de un mensaje de modificaciones de tarifa.
RateModifications / @partner 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 ID especificado en el elemento <RequestorID> de tus mensajes <OTA_HotelRateAmountNotifRQ> y <OTA_HotelAvailNotifRQ> para la misma cuenta.

RateModifications / @id 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, _ (guion bajo) y - (guion).
RateModifications / @timestamp 1 DateTime La fecha y hora de creación de este mensaje.
RateModifications / HotelRateModifications 0..n HotelRateModifications

Modificaciones de tarifas de una propiedad. Cada modificación de tarifa se aplica a una sola propiedad.

Nota: Si se pueden aplicar varias modificaciones de tarifa a la misma tarifa, se aplicarán todas las modificaciones. No se garantiza ningún orden específico.

RateModifications / HotelRateModifications / @hotel_id 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.
RateModifications / HotelRateModifications / @action 0..1 enum

Si no se especifica action, las modificaciones dentro de este elemento se agregan o actualizan en este hotel. Si se especifica un valor de action="overlay", primero se borrarán todas las modificaciones definidas con anterioridad para este hotel. Luego, se escriben las modificaciones especificadas aquí. Si se usa action="overlay" y no se especifican modificaciones en este elemento, se borrarán todas las modificaciones de este hotel.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

Una sola modificación de la tarifa de una propiedad.

Nota: Las modificaciones de tarifa son difíciles de depurar y te recomendamos que las uses con moderación. Comunícate con tu administrador técnico de cuentas (TAM) para casos de uso que requieran más de 200 modificaciones de tarifa.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string Es un identificador único para la modificación de la tarifa. La cantidad máxima de caracteres permitida es 40. Los caracteres permitidos son a-z, A-Z, 0-9, _ (guion bajo), - (guion) y . (punto).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

Si no se especifica y no se almacena una modificación de tarifa con el mismo id, se almacenará esta modificación. De lo contrario, si no se especifica y se almacena una modificación de tarifa con el mismo id, se actualizará la modificación existente.

Si se especifica, el valor debe ser "delete". Si se especifica "delete", se borra la modificación de tarifa almacenada con el mismo id. Cuando uses "delete", no incluyas ningún elemento secundario en <ItineraryRateModification>. Además, no se permite usar "delete" junto con <HotelRateModifications action="overlay"/>.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Un contenedor para uno o más períodos que definen cuándo debe ocurrir la reserva para que se aplique la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Es un período que especifica cuándo debe ocurrir la reserva para que se aplique la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date Es la fecha de inicio (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser anterior o igual a la de end. Si no se especifica start, el período es efectivamente ilimitado en términos de una fecha de inicio.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date Es la fecha de finalización (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser la misma que la de start o una posterior. Si no se especifica end, el período es efectivamente ilimitado en términos de una fecha de finalización.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Indica los días de la semana que se permiten en el período. Si no se especifica, se permiten todos los días en el período. Cada carácter de la cadena especifica un día. Por ejemplo, “MTWHF” especifica que se permiten días de la semana en el período.

Los caracteres válidos son los siguientes:

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

Cualquier combinación de caracteres es válida.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow Especifica el período en el que la reserva debe ocurrir en relación con la fecha de entrada (según la zona horaria de la propiedad). Por ejemplo, el período de reserva se puede establecer en un mínimo de 7 días, pero no más de 180 días, antes del registro de entrada.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer La cantidad mínima de días antes del registro de entrada en el momento de la reserva para que se aplique la modificación de la tarifa. Si no se especifica, no hay un mínimo.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer La cantidad máxima de días antes del registro de entrada en el momento de la reserva para que se aplique la modificación de la tarifa. Si no se especifica, no hay un máximo.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Para que se aplique la modificación de la tarifa, debe ocurrir un contenedor de uno o más períodos que definan cuándo se debe registrar la entrada.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Un período que especifica cuándo se debe registrar la entrada para que se aplique la modificación de la tarifa. Este elemento no es obligatorio si borras una o más modificaciones de tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date Es la fecha de inicio (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser anterior o igual a la de end. Si no se especifica start, el período es efectivamente ilimitado en términos de una fecha de inicio.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date Es la fecha de finalización (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser la misma que la de start o una posterior. Si no se especifica end, el período es efectivamente ilimitado en términos de una fecha de finalización.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

Indica los días de la semana que se permiten en el período. Si no se especifica, se permiten todos los días en el período. Cada carácter de la cadena especifica un día. Por ejemplo, “MTWHF” especifica que se permiten días de la semana en el período.

Los caracteres válidos son los siguientes:

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

Cualquier combinación de caracteres es válida.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates Para que se aplique la modificación de la tarifa, debe haber un contenedor de uno o más períodos que definan la fecha de salida.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange Un período que especifica cuándo debe ocurrir la salida para que se aplique la modificación de la tarifa. Este elemento no es obligatorio si borras una o más modificaciones de tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date Es la fecha de inicio (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser anterior o igual a la de end. Si no se especifica start, el período es efectivamente ilimitado en términos de una fecha de inicio.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date Es la fecha de finalización (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser la misma que la de start o una posterior. Si no se especifica end, el período es efectivamente ilimitado en términos de una fecha de finalización.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

Indica los días de la semana que se permiten en el período. Si no se especifica, se permiten todos los días en el período. Cada carácter de la cadena especifica un día. Por ejemplo, “MTWHF” especifica que se permiten días de la semana en el período.

Los caracteres válidos son los siguientes:

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

Cualquier combinación de caracteres es válida.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices Contenedor para crear una lista de los dispositivos de los usuarios que son aptos para la modificación de la tarifa. Si se especifica, la modificación de la tarifa solo se aplica si el usuario coincide con uno de los dispositivos de la lista. Si no se especifica, no se restringe la aplicación de la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Define un tipo de dispositivo de usuario que es apto para la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum Es un tipo de dispositivo. El valor debe ser desktop, tablet o mobile.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

Acciones que se aplican a la tarifa si se cumplen todas las condiciones especificadas.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Modifica la tarifa multiplicando AmountBeforeTax y AmountAfterTax por el multiplicador especificado.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float Tanto AmountBeforeTax como AmountAfterTax se multiplican por este valor.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Modifica la tarifa mediante la aplicación del ID de regla de tarifas especificado.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Este ID coincide con una tarifa con una definición en el archivo Definición de reglas de tarifas. Nota:
  • El límite de caracteres de este campo es de 40.
  • Cada tarifa solo se puede asociar con una sola regla de tarifas.
  • Si hay varias modificaciones que aplican un ID de regla de tarifa, el ID de regla de tarifa que es lexicográficamente más pequeño se asigna a la tarifa.
  • Si este ID no coincide con una regla de tarifas de tu archivo de definición de reglas de tarifas, se considerará no apto.
Consulta este artículo para obtener información sobre los diferentes tratamientos de la IU de tarifa privada.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Reemplaza el reembolso de la tarifa por el valor especificado.

Cuando configures los atributos, ten en cuenta lo siguiente:

  • Esta acción de modificación reescribe por completo la configuración Reembolsable de una tarifa apta, no solo los campos propagados.
  • Si no se establece available o refundable_until_days, la tarifa no se mostrará como reembolsable.
  • Si available es 0 o false, se ignoran los otros atributos. La tarifa no se muestra como reembolsable, incluso si se configuraron uno o ambos atributos.
  • Se recomienda configurar refundable_until_time; si no se establece, se usa el horario más temprano (medianoche).
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Obligatorio) Configúralo en 1 o true para indicar si la tarifa permite un reembolso total. De lo contrario, configúralo en 0 o false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer Especifica la cantidad de días antes del registro de entrada en los que se puede solicitar un reembolso total (obligatorio si available es true). El valor de refundable_until_days debe ser un número entero entre 0 y 330, ambos incluidos.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time Se recomienda si available es true. Especifica la hora más reciente, en la hora local del hotel, en la que se respeta una solicitud de reembolso total. Esto se puede combinar con refundable_until_days para especificar, por ejemplo, que "los reembolsos están disponibles hasta las 4:00 p.m. dos días antes de registrar la entrada". Si refundable_until_time no está configurado, el valor predeterminado es la medianoche.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Reemplaza la disponibilidad de la tarifa en el valor especificado. Solo se admite establecer la tarifa en unavailable.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum Si es status="unavailable", la tarifa se considera como si no estuviera disponible, independientemente de si existe un precio válido para ella.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Define los límites de la duración de la estadía dentro de los que se puede aplicar esta modificación de tarifa. La modificación de la tarifa no se aplica cuando la duración de la estadía está fuera de los límites mínimo y máximo.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer Es la cantidad mínima de noches permitidas en la estadía para que se aplique la modificación de la tarifa. Si no se especifica, no hay un mínimo.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer Es la cantidad máxima de noches permitidas en la estadía para que se aplique la modificación de la tarifa. Si no se especifica, no hay un máximo.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Especifica la suma mínima de las tarifas diarias de las habitaciones (con el valor más alto de AmountBeforeTax o AmountAfterTax) que se debe superar para que se aplique la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer Es el valor que se debe superar para que se aplique la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Contenedor de una lista de los planes de tarifas a los que se aplica la modificación de tarifa. Si no se especifica <RatePlans>, la modificación de la tarifa se aplicará a todos los planes de tarifas.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Especifica un plan de tarifas. Un plan de tarifas se define mediante una combinación de paquetes, tarifas y disponibilidad, tal como se define en los mensajes de transacción (datos de propiedad), OTA_HotelRateAmountNotifRQ y OTA_HotelAvailNotifRQ, y como lo identifica el PackageID.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string El identificador único del plan de tarifas. Este valor se asigna al valor PackageID en <PackageData> en un mensaje de transacción (datos de propiedad) y en el atributo RatePlanCode en <StatusApplicationControl> en los mensajes <OTA_HotelRateAmountNotifRQ> y <OTA_HotelAvailNotifRQ>. La cantidad máxima de caracteres permitida es 50.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Contenedor de una lista de los tipos de habitaciones a los que se aplica la modificación de la tarifa. La modificación de la tarifa se aplica a cada <RoomType> especificado. Si no se especifica <RoomTypes>, la modificación de la tarifa se aplicará a todas las habitaciones.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Especifica un tipo de habitación. Un tipo de habitación se define en un elemento <RoomData> en un mensaje Transacción (datos de propiedad) y se hace referencia a él mediante su valor <RoomID>. (El atributo InvTypeCode también hace referencia a su valor <RoomID> en los mensajes OTA_HotelRateAmountNotifRQ).
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 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). La cantidad máxima de caracteres permitida es 50.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Un contenedor para uno o más períodos que determinan cómo se aplica la modificación de tarifa, por ejemplo, para adaptarse a los precios de temporada.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Describe cómo se debe aplicar la modificación de la tarifa.

Estos son los valores válidos:

  • all: Aplica la modificación de la tarifa a cada noche del itinerario si todas las fechas del itinerario se superponen con las de la estadía.
  • any: Aplica la modificación de la tarifa a todas las noches del itinerario si alguna fecha de este se superpone con una fecha del período de la estadía.

Siempre se debe especificar este atributo.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Un período que especifica las fechas en las que se aplicará la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date Es la fecha de inicio (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser anterior o igual a la de end. Si no se especifica start, el período es efectivamente ilimitado en términos de una fecha de inicio.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date Es la fecha de finalización (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser igual o posterior a la fecha de start. Si no se especifica end, el período es efectivamente ilimitado en términos de una fecha de finalización.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

Indica los días de la semana que se permiten en el período. Si no se especifica, se permiten todos los días en el período. Cada carácter de la cadena especifica un día. Por ejemplo, “MTWHF” especifica que se permiten días de la semana en el período.

Los caracteres válidos son los siguientes:

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

Cualquier combinación de caracteres es válida.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries Si se especifica, la modificación de la tarifa solo se aplica si el usuario se encuentra en uno de los países especificados. Si no se especifica, la modificación de la tarifa se aplica independientemente de la ubicación del usuario.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum Es el tipo de especificación de UserCountry.

Los valores válidos son include y exclude.

Si el campo UserCountry type se establece como include, la modificación de la tarifa se aplicará a los usuarios de los países mencionados.

Si el campo UserCountry type es exclude, la modificación de la tarifa se aplicará a los usuarios que se encuentran fuera de los países mencionados.

Si no estableces el campo UserCountry type, se considerará include y la modificación de la tarifa se aplicará a los usuarios de los países mencionados.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Especifica un país de usuario permitido para la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string Un código de país de CLDR, como DE o FR Ten en cuenta que, en algunos países, el código de país de CLDR no es el mismo que el código de país ISO de 2 letras. Además, los códigos regionales CLDR no son compatibles.

Ejemplos

Mensaje básico

En el siguiente ejemplo, se muestra un mensaje RateModifications básico:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Cómo borrar una modificación de tarifa

En el siguiente ejemplo, se muestra cómo borrar una modificación de tarifa de una propiedad:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

Borrar todas las modificaciones de tarifas

En el siguiente ejemplo, se muestra cómo borrar todas las modificaciones de tarifa de una propiedad:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>


Superponer todas las modificaciones de tarifas

En el siguiente ejemplo, se muestra cómo superponer <HotelRateModifications> para la propiedad con una o más modificaciones de tarifa nuevas. Cuando es action="overlay", se borran todas las modificaciones de frecuencia almacenadas antes de almacenar las modificaciones de frecuencia especificadas en el mensaje actual:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

Varias acciones de modificación

En el siguiente ejemplo, se muestra cómo realizar varias acciones de modificación a la vez:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-01-01" end="2023-02-28"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier=".95"/>
        <Refundable available="true"
                    refundable_until_days="1"
                    refundable_until_time="12:00:00"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Desactiva un plan de tarifas para los países de los usuarios

En el siguiente ejemplo, se muestra cómo limitar un plan de tarifas solo a los usuarios japoneses (JP):

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <RatePlans>
         <RatePlan id="jp_only"/>
      </RatePlans>
      <UserCountries type="exclude">
        <Country code="JP"/>
      </UserCountries>
      <ModificationActions>
        <Availability status="unavailable"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Respuestas

Sintaxis

El mensaje RateModificationsResponse usa la siguiente sintaxis:

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type"><var>issue_description</var></Issue>
  </Issues>
</RateModificationsResponse>

Elementos y atributos

El mensaje RateModificationsResponse tiene los siguientes elementos y atributos:

Elemento / @Attribute Occurrences Tipo Descripción
RateModifications 1 Complex element El elemento raíz que indica el éxito o los problemas de un mensaje de solicitud de RateModifications recibido.
RateModificationsResponse / @timestamp 1 DateTime La fecha y hora de creación de este mensaje.
RateModificationsResponse / @id 1 string El identificador único del mensaje RateModifications asociado.
RateModificationsResponse / @partner 1 string La cuenta de socio de este mensaje.
RateModificationsResponse / Success 0..1 Success Indica que el mensaje RateModifications se procesó correctamente sin advertencias, errores ni fallas.

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

RateModificationsResponse / Issues 0..1 Issues Un contenedor para uno o más problemas que se encontraron durante el procesamiento del mensaje RateModifications.

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

RateModificationsResponse / Issues / Issue 1..n Issue La descripción de una advertencia, un error o una falla que se encontró mientras se procesaba el mensaje de RateModifications. Puedes encontrar detalles sobre estos problemas en la sección Mensajes de error del estado del feed.
RateModificationsResponse / Issues / Issue / @code 1 integer Es el identificador del problema.
RateModificationsResponse / Issues / Issue / @status 1 enum

El tipo de problema encontrado.

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

Ejemplos

Se completó correctamente

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

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</RateModificationsResponse>

Con problemas

La siguiente es una respuesta a un mensaje de RateModifications que no se procesó debido a errores.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</RateModificationsResponse>