ModificacionesTarifas

Descripción general

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

Solicitudes

Sintaxis

El mensaje RateModifications usa la siguiente sintaxis:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="partner_key&quot;
                      id="message_ID"
   >   <                timestamp="timestamp"
  HotelRateM>odifi<cations hotel_id="HotelID" action="[overlay]&quo>t;
    <ItineraryRat>eModifica<tion id="ModificationID" action="[delete]&quot;
      BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD&quot; days_of_week=&q>uot;&qu<ot;MTWHFSU_or>_subset<""/
        DateRange start=&quo>t;YYYY-<MM-DD" >end="<;YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/
      />Booking<Dates
      B>ookingW<indow min=&qu>ot;intege<r" max="integer"/
      CheckinDates
        DateRange start=&quot>;YYYY-M<M-DD" end>="<YYYY-MM>-DD"< days_of_week=""MTWHFSU_or_s>ubset&q<uot;&quo>t;/
   <   /CheckinDates
      CheckoutDates
    >    Dat<eRange start="YYYY-MM-DD&quot; end=>"Y<YYY-MM-DD>" da<ys_of_week=&quot;"MTW>HFSU_or_s<ubset"&quot;/
      />Checkou<tDates
   >   Devi<ces
     >   Device< type="[desktop|ta>blet|mobi<le]"/
      /Devic>es
    <  L>engthOfStay mi<n="integer" max="i>nteger&qu<ot;/
      MinimumAmount before_discount="integer"/
      RatePlans
   >     Ra<tePlan id=>"P<ackageID_1"/
        RatePlan id=>"Pac<kageID_2"/
      /RateP>lans
  <    Roo>mTypes
       < RoomType id=">RoomID_1&<quot;/
        RoomType id=&quot;Ro>omID_2&qu<ot;/
      /RoomTypes
   >   StayDa<tes application="[all|any]&quot;
        DateRange start="YYYY-MM-DD&quot; end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_su>bset"<;"/
      /StayDates
      User>Countri<es type="[inclu>de|ex<clude]"
        Count>ry <code="country_code>&<quot;/
      /User>Countries
      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 o @Attribute Casos 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 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 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, _ (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 tarifas a la misma tarifa, se aplican 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 del hotel también se muestra en Hotel Center.
RateModifications / HotelRateModifications / @action 0..1 enum

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

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

Es una modificación de tarifa única para una propiedad.

Nota: Las modificaciones de tarifas 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 tarifas.

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 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 la tarifa almacenada con el mismo id. Cuando uses "delete", no incluyas ningún elemento secundario en <ItineraryRateModification>. Además, "delete" no se permite junto con <HotelRateModifications action="overlay"/>.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Es un contenedor para 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 se debe realizar 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 fecha de end. Si no se especifica start, el rango de fechas es, en realidad, 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 fecha de start o una posterior. Si no se especifica end, el período es ilimitado en términos de una fecha de finalización.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Son los días de la semana permitidos 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, "L-V" especifica que se permiten los 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 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 al menos 7 días, pero no más de 180 días, antes del registro de entrada.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer Es la cantidad mínima de días antes de la entrada en la que se debe realizar la reserva para que se aplique la modificación de la tarifa. Si no se especifica, no hay mínimo.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer Es la cantidad máxima de días antes de la fecha de entrada en la que se debe realizar la reserva para que se aplique la modificación de la tarifa. Si no se especifica, no hay máximo.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Es un contenedor para uno o más períodos que definen cuándo debe ocurrir el registro para que se aplique la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Un período que especifique cuándo debe ocurrir el registro 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 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 fecha de end. Si no se especifica start, el rango de fechas es, en realidad, 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 fecha de start o una posterior. Si no se especifica end, el período es ilimitado en términos de una fecha de finalización.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

Son los días de la semana permitidos 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, "L-V" especifica que se permiten los 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 Es un contenedor para uno o más períodos que definen cuándo se debe realizar el registro de salida 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 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 tarifas.
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 fecha de end. Si no se especifica start, el rango de fechas es, en realidad, 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 fecha de start o una posterior. Si no se especifica end, el período es ilimitado en términos de una fecha de finalización.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

Son los días de la semana permitidos 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, "L-V" especifica que se permiten los 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 Es un contenedor para enumerar los dispositivos del usuario 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 enumerados. Si no se especifica, esto no restringe la aplicación de la modificación de la tarifa.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Define un tipo de dispositivo del 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

Son las 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 AmountBeforeTax y AmountAfterTax se multiplican por este valor.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Modifica la tarifa aplicando el ID de la regla de tarifa especificado.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Este ID hace coincidir una tarifa con una definición en el archivo Rate Rule Definition. Nota:
  • El límite de caracteres para este campo es de 40.
  • Cada tarifa solo se puede asociar con una regla de tarifas.
  • Si hay varias modificaciones que aplican un ID de regla de tarifa, el ID de la regla de tarifa que es el más bajo en orden alfabético se asigna a la tarifa.
  • Si este ID no coincide con una regla de tarifas en 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 las tarifas privadas.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Reemplaza la capacidad de 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 de Reembolsable de una tarifa que califica, 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 configuran uno o ambos atributos.
  • Se recomienda configurar refundable_until_time. Si no se configura, se usa la hora más temprana (medianoche).
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Obligatorio) Establece 1 o true para indicar si la tarifa permite un reembolso total. De lo contrario, establece 0 o false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Obligatorio si available es true). Especifica la cantidad de días de anticipación con los que se puede solicitar un reembolso total antes del registro. 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 hora del día más reciente, en la hora local del hotel, en la que se acepta 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 del registro de entrada". Si no se establece refundable_until_time, el valor predeterminado es la medianoche.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Anula la disponibilidad de la tarifa por el valor especificado. Solo admitimos 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 duración de la estadía dentro de los cuales 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í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 valor 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 Es un contenedor para 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 aplica 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 paquete, tarifas y disponibilidad, como se define en los mensajes Transaction (Property Data), OTA_HotelRateAmountNotifRQ y OTA_HotelAvailNotifRQ, y como lo identifica 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 Es un contenedor para una lista de 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 aplica 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 Transaction (Property Data) y se hace referencia a él con 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 Transaction (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 adaptarse a los precios de temporada.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Describe cómo se debe aplicar la modificación de 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 las fechas de la estadía.

Siempre se debe especificar este atributo.

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 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 fecha de end. Si no se especifica start, el rango de fechas es, en realidad, 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 la misma que la fecha de start o posterior. Si no se especifica end, el período es ilimitado en términos de una fecha de finalización.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

Son los días de la semana permitidos 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, "L-V" especifica que se permiten los 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 UserCountries.

Los valores válidos son include y exclude.

Si el type de UserCountries está configurado como include, la modificación de la tarifa se aplica a los usuarios de los países enumerados.

Si el type de UserCountries es exclude, la modificación de la tarifa se aplica a los usuarios que no pertenecen a los países enumerados.

Si no se establece el type de UserCountries, se considera como include y la modificación de la tarifa se aplica a los usuarios de los países enumerados.

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 CLDR, como DE o FR. Ten en cuenta que, para algunos países, el código de país del CLDR no es el mismo que el código de país ISO de 2 letras. Además, no se admiten los códigos de región de CLDR.

Ejemplos

Mensaje básico

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

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id>="<Property_1&q>uot;
    I<tineraryRateModification id="1"
      BookingDates
      >   DateRan<ge start="2023-07-01" end="2023>-07-31&<quot; days_of>_week=&<quot;MTWHF"/
         DateR>ange st<art="20>23-09-01&q<uot; end="2023-09-30"/
      /BookingDates
      Bookin>gWindow< min="7&>quot; m<ax="330&>quot;/
   <   CheckinDates
         DateRange start="2023-10-01" e>nd=&quo<t;2023-10-31&q>uot; da<ys_of_w>eek="<;FSU"/
      /Ch>eckinDate<s
      CheckoutDates>
      <   DateRange st<art="2023-10-08" end>="<2023-11-0>7" da<ys_of_week="F>SU"/
<      /CheckoutDat>es
    <  D>evices
       < Device t>ype="<mobile"/
    >    Device< type="tablet>"/<
      /De>vices
 <     L>engthOfStay min=<"2" max=>"14&<quot;/
      RateP>lans
  <       >RatePlan id=&q<uot;234"/
    >     Rate<Plan id="567"/
      /R>atePlan<s
      RoomTypes
  >     <  RoomType id="123&qu>ot;</
         RoomType id=>&<quot;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 para una propiedad:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id="Property_1>&qu<ot;
    ItineraryRateMo>d<ification id=">;1" action="delete"/
  /HotelRateModifications
/RateModifications

Borra 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" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00"
  HotelRateMod>i<fications hotel_id>=&quot;Property_1" action="overlay"/
/RateModifications


Superposición de 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 tarifas nuevas. Cuando action="overlay", se borran todas las modificaciones de tarifas almacenadas antes de almacenar las modificaciones de tarifas especificadas en el mensaje actual:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00"
  HotelRateMod>ifica<tions hotel_id="Property_1&>quot; a<ction=">overlay&qu<ot;/
    ItineraryRateModification id="1&>quot;
 <     B>ookingDates
  <       DateRange st>art="<;2023-09-01" end="2023->09-30&q<uot;/
      /Booking>Dates
 <     ModificationAc<tions
        Pric>eAdjustmen<t multiplier=">;1.2&qu<ot;/
     > /Modif<icationAc>tions
    <  RoomTypes
      >   RoomTyp<e id="123&quo>t;/
   <      RoomType <id="456"/
      >/Ro<omTypes
      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" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id>="<Property_1&q>uot;
    I<tineraryRateModification id="1"
    >  Booki<ngDates
     >    Dat<eRange start=">2023-01-0<1" end="2023-02-28">;/
      </BookingDates
      ModificationActions
        PriceAdjustment multiplier=".95"/
        Refundable available=">true&qu<ot;
                >    r<efundable_until_days=">;1&<quot;
                 > <  refundabl>e_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 japoneses (JP):

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id>="<Property_>1"
  <  ItineraryRate>Modification i<d="1&>quot;
 <     RatePlans
         Rate>Plan id=&<quot;jp_only">/
     < /RatePlans
  >    Use<rCountries type=&qu>ot;exclud<e"
        Country code=">;JP&quo<t;/
      /UserCount>ries
<      ModificationActions
>   <     Availability statu>s<="unavailable>&quot;/
      /ModificationActions
    /ItineraryRateModification
  /HotelRateModifications
/RateModifications


Respuestas

Sintaxis

El mensaje RateModificationsResponse usa la siguiente sintaxis:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModificationsResponse timestamp="timestamp&quot;
                    id="message_ID"
 >   <                partner="partner_key"
  >!--< Either >Suc<cess o>r Iss<ues will be populated. --
  Success/
  Issu><es
>    Issue code=&q<uot;><issue_>cod<e"> <status="issue_type&qu>ot;varissue_description/var/Issue
  /Issues
/RateModificationsResponse

Elementos y atributos

El mensaje RateModificationsResponse tiene los siguientes elementos y atributos:

Elemento o @Attribute Casos 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 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án presentes en cada mensaje.

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

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

RateModificationsResponse / Issues / Issue 1..n Issue Es la descripción de una advertencia, un error o una falla que se encontró durante el procesamiento del mensaje RateModifications. Puedes encontrar detalles sobre estos problemas en 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 que se encontró

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

Ejemplos

Listo

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

<?xml version="1.0" encodin>g<="UTF-8"?
RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
 >   <        > <       partner=&quo>t;partner_key"
  Success/
/RateModificationsResponse

Problemas

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

<?xml version="1.0" encodin>g<="UTF-8"?
RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
 >   <      >     <     partner="partne>r_key"
  <Issues>
  <  Issue <code="1001" stat>us="error"Example/Issue
  /Issues
/RateModificationsResponse