ModificacionesTarifas

Descripción general

Esta API te permite definir formas de aplicar de forma dinámica acciones a una tarifa siempre que se cumplan ciertas 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 altos, esta API aplica cualquier acción cuando se cumplen ciertas condiciones, incluidos los ajustes de precios que, en última instancia, podrían aumentar el precio final.

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 tarifas.
RateModifications / @partner 1 string La cuenta de socio de este mensaje. Este valor de string 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 en las 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. 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 con <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 incluidas en este elemento se agregarán o actualizarán para este hotel. Si se especifica action="overlay", primero se borran todas las modificaciones definidas anteriormente para este hotel. Luego, se escriben las modificaciones que se especifican 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 modificación de la tarifa única de una propiedad.

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

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string 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 almacena esta modificación de tarifa. De lo contrario, si no se especifica y se almacena una modificación de tarifa con el mismo id, se actualiza la modificación de tarifa 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>. Tampoco se permite usar "delete" junto con <HotelRateModifications action="overlay"/>.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Es un contenedor de uno o más períodos que definen cuándo se debe realizar 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 realizarse la reserva para que se aplique la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date Indica 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 fecha end. Si no se especifica start, el período es realmente ilimitado en términos de una fecha de inicio.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date La fecha de finalización (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser igual a la fecha start o posterior a ella. 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 del período. Cada carácter de la string especifica un día. Por ejemplo, “MTWHF” especifica que los días de semana se permiten 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 durante el que se debe realizar la reserva 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 7 días como mínimo, pero no más de 180 días, antes de la entrada.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer Es la cantidad mínima de días previos al registro de entrada en el que se debe realizar 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 Es la cantidad máxima de días previos al registro de entrada en los que se debe realizar 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 Es un contenedor de uno o más períodos que define cuándo se debe registrar la entrada para que se aplique la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Es un período que especifica cuándo debe registrarse para que se aplique la modificación de la tarifa. Este elemento no es obligatorio si borras una o más modificaciones de tarifas.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date Indica 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 fecha end. Si no se especifica start, el período es realmente ilimitado en términos de una fecha de inicio.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date La fecha de finalización (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser igual a la fecha start o posterior a ella. 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 del período. Cada carácter de la string especifica un día. Por ejemplo, “MTWHF” especifica que los días de semana se permiten 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 Es un contenedor de uno o más períodos que definen cuándo debe realizarse la confirmación de la compra para que se aplique la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange Es un período que especifica cuándo debe efectuarse 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 tarifas.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date Indica 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 fecha end. Si no se especifica start, el período es realmente ilimitado en términos de una fecha de inicio.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date La fecha de finalización (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser igual a la fecha start o posterior a ella. 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 del período. Cada carácter de la string especifica un día. Por ejemplo, “MTWHF” especifica que los días de semana se permiten 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 enumerar 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 restringe la aplicación de la modificación de tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Define un tipo de dispositivo de usuario 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 hace coincidir una tarifa con una definición del archivo de definición de reglas de tarifas. Nota:
  • El límite de caracteres para este campo es de 40.
  • Cada tarifa solo puede asociarse con una única regla de tarifas.
  • Si hay varias modificaciones que aplican un ID de regla de tarifa, se asigna el ID de regla de tarifa más pequeño lexicográficamente a la tarifa.
  • Si este ID no coincide con una regla de tarifas del archivo de definición de reglas de tarifas, se considera 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 al valor especificado.

Cuando configures los atributos, ten en cuenta lo siguiente:

  • Con esta acción de modificación, se vuelve a escribir por completo la configuración reembolsable de una tarifa apta, no solo los campos completados.
  • Si no se establecen available o refundable_until_days, la tarifa no se muestra como reembolsable.
  • Si available es 0 o false, se ignoran los otros atributos. La tarifa no se muestra como reembolsable, incluso si se configuran uno o ambos atributos.
  • Se recomienda configurar refundable_until_time. Si no se establece, se usa la primera hora (medianoche).
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean Configúralo como 1 o true para indicar si la tarifa permite un reembolso total; de lo contrario, configúralo como 0 o false (obligatorio).
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Obligatorio si available es true). Especifica la cantidad de días antes de la entrada en los que se puede solicitar un reembolso total. El valor de refundable_until_days debe ser un número entero entre 0 y 330, inclusive.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (Recomendado si available es true). Especifica la última hora del día (en la hora local del hotel) en la que se acepta una solicitud de reembolso total. 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 la entrada”. Si no se configura refundable_until_time, el valor se establece de forma predeterminada en la medianoche.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Reemplaza la disponibilidad de la tarifa al valor especificado. Solo se admite la configuración de la tarifa en unavailable.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum Si es status="unavailable", la tarifa se trata 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 la tarifa. La modificación de la tarifa no se aplica cuando la duración de la estadía se encuentra fuera de los límites mínimos y máximos.
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 Indica 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 la habitación (con la tarifa más alta 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 planes de tarifas a los que se aplica la modificación de tarifas. 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, como se define en los mensajes de transacción (datos de propiedad), OTA_HotelRateAmountNotifRQ y OTA_HotelAvailNotifRQ, y según lo identificado por el PackageID.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string Es el identificador único del plan de tarifas. Este valor se asigna al valor de 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 de 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 Es un contenedor para uno o más períodos que determinan cómo se aplica la modificación de la tarifa, por ejemplo, para ajustar 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 fechas de la estadía.
  • any: Aplica la modificación de la tarifa a todas las noches del itinerario si alguna fecha del itinerario se superpone con una fecha del período de la estadía.

Este atributo siempre se debe especificar.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Es un período que especifica las fechas en las que se debe aplicar la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date Indica 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 fecha end. Si no se especifica start, el período es realmente ilimitado en términos de una fecha de inicio.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date La fecha de finalización (según la zona horaria de la propiedad), inclusive, del período. Esta fecha debe ser igual a la fecha start o posterior a ella. 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 del período. Cada carácter de la string especifica un día. Por ejemplo, “MTWHF” especifica que los días de semana se permiten 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, se aplica la modificación de la tarifa sin importar la ubicación del usuario.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum Es el tipo de especificación UserPaíses.

Los valores válidos son include y exclude.

Si type de UserPaíses se configura como include, la modificación de tarifa se aplica a los usuarios de los países enumerados.

Si el type de UserPaíses es exclude, la modificación de la tarifa se aplica a los usuarios que no están en los países mencionados.

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

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Especifica un país del 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, para 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. Tampoco se admiten los códigos regionales de CLDR.

Ejemplos

Mensaje básico

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

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


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 tarifas 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 se action="overlay", todas las modificaciones de tarifa almacenadas se borran antes de almacenar las modificaciones de tarifa 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>


Cómo desactivar 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 de japonés (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 Es 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 Es el identificador único del mensaje de 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.

Cada mensaje contiene <Success> o <Issues>.

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

Cada mensaje contiene <Success> o <Issues>.

RateModificationsResponse / Issues / Issue 1..n Issue Es 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 el artículo Mensajes de error sobre el estado del feed.
RateModificationsResponse / Issues / Issue / @code 1 integer Es el identificador del problema.
RateModificationsResponse / Issues / Issue / @status 1 enum

El tipo de problema detectado.

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

Ejemplos

Completado correctamente

La siguiente es una respuesta a un mensaje de RateModifications que se procesó correctamente.

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

Issues

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>