Descripción general
Esta API te permite definir formas de aplicar acciones de manera dinámica a una tarifa cuando se cumplen las condiciones, como ajustar el precio o habilitar la reembolsabilidad. A diferencia de la Promotions API, que solo puede aplicar promociones aptas con los mayores descuentos, 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 | Casos | Tipo | Descripción |
|---|---|---|---|
| RateModifications | 1 | Complex element | Es el elemento raíz de un mensaje de modificaciones de tarifas. |
| RateModifications / @partner | 1 | string | Es la cuenta de socio de este mensaje. Este valor de cadena es el valor de "Clave de socio" que se indica en la
página Configuración de la cuenta de Hotel Center.
Nota: Si tienes un backend que proporciona feeds para varias cuentas, este valor debe coincidir con el valor del atributo |
| 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 | Fecha y hora de creación de este mensaje. |
| RateModifications / HotelRateModifications | 0..n | HotelRateModifications | Son las 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 la tarifa a la misma tarifa, se aplicarán todas las modificaciones. No se garantiza un orden específico. |
| RateModifications / HotelRateModifications / @hotel_id | 1 | string | Es el identificador único de la propiedad. Este valor debe coincidir con el ID del hotel especificado con
<id> en el elemento <listing> del feed de lista de hoteles. El ID del hotel también se indica en Hotel Center. |
| RateModifications / HotelRateModifications / @action | 0..1 | enum | Si no se especifica |
| RateModifications / HotelRateModifications / ItineraryRateModification | 0..200 | ItineraryRateModification | Es una sola modificación de tarifa para una propiedad. Nota: Las modificaciones de la tarifa son difíciles de depurar, por lo que recomendamos usarlas con moderación. Comunícate con tu administrador técnico de cuentas (TAM) para los 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 la tarifa con el mismo Si se especifica, el valor debe ser |
| 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 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 igual o posterior a la fecha de start. Si no se especifica end, el rango de fechas no tiene un límite efectivo en términos de fecha de finalización. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week | 0..1 | string | Son 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 cadena especifica un día. Por ejemplo, "LMMJV" especifica que se permiten los días de la semana en el período. Los caracteres válidos son los siguientes:
Cualquier combinación de caracteres es válida. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow | 0..1 | BookingWindow | Especifica el período durante el cual debe realizarse la reserva en relación con la fecha de entrada (según la zona horaria de la propiedad). Por ejemplo, la ventana de reserva se puede establecer en un mínimo de 7 días y un máximo 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 del 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ínimo. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max | 0..1 | integer | Es la cantidad máxima de días antes del 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 valor máximo. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates | 0..1 | CheckinDates | Es un contenedor para uno o más períodos que definen cuándo se debe realizar el registro de 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 ocurrir 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 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 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 igual o posterior a la fecha de start. Si no se especifica end, el rango de fechas no tiene un límite efectivo en términos de fecha de finalización. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week | 0..1 | string | Son 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 cadena especifica un día. Por ejemplo, "LMMJV" especifica que se permiten los días de la semana en el período. Los caracteres válidos son los siguientes:
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 debe ocurrir la 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 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 igual o posterior a la fecha de start. Si no se especifica end, el rango de fechas no tiene un límite efectivo en términos de fecha de finalización. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week | 0..1 | string | Son 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 cadena especifica un día. Por ejemplo, "LMMJV" especifica que se permiten los días de la semana en el período. Los caracteres válidos son los siguientes:
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, 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 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 tasa 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 aplicando el ID de regla de tarifa especificado. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id | 1 | string | Este ID vincula una tarifa a una definición en tu archivo de definición de reglas de tarifas.
Nota:
|
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable | 0..1 | Refundable | Anula la reembolsabilidad de la tarifa con el valor especificado.
Cuando establezcas los atributos, ten en cuenta lo siguiente:
|
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available | 1 | boolean | (Obligatorio) Se debe establecer en 1 o true para indicar si la tarifa permite un reembolso completo; de lo contrario, se debe establecer en 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 al check-in con 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 | (Se recomienda si available es true) Especifica la hora del día más reciente, en la hora local del hotel, en la que se aceptará 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 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 | Reemplaza 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 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 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ínimo y máximo. |
| RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min | 0..1 | integer | 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 valor máximo. |
| RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount | 0..1 | MinimumAmount | Especifica la suma mínima de las tarifas diarias de la habitación (con el valor más alto entre AmountBeforeTax y 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 tarifa. 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 por una combinación de paquete, tarifas y disponibilidad, tal como se define en los mensajes de Transaction (Property Data), OTA_HotelRateAmountNotifRQ y OTA_HotelAvailNotifRQ, y como se identifica con 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>. (Su valor de <RoomID> también se menciona en el atributo InvTypeCode de los mensajes de 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 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:
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 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 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 rango de fechas no tiene un límite efectivo en términos de fecha de finalización. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week | 0..1 | string | Son 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 cadena especifica un día. Por ejemplo, "LMMJV" especifica que se permiten los días de la semana en el período. Los caracteres válidos son los siguientes:
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 Si UserCountries Si UserCountries Si no se establece UserCountries |
| 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 CLDR, como DE o FR. Ten en cuenta que, en 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" 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 para 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>
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" 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 una propiedad con una o más modificaciones de tarifas nuevas. Cuando es 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" 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 de Japón (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 | Casos | Tipo | Descripción |
|---|---|---|---|
| RateModifications | 1 | Complex element | Elemento raíz que indica el éxito o los problemas de un mensaje de solicitud de RateModifications recibido. |
| RateModificationsResponse / @timestamp | 1 | DateTime | 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 | Es 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.
|
| RateModificationsResponse / Issues | 0..1 | Issues | Es un contenedor para uno o más problemas que se encontraron durante el procesamiento del mensaje RateModifications.
|
| RateModificationsResponse / Issues / Issue | 1..n | Issue | Es la descripción de una advertencia, un error o una falla que se produjo durante el procesamiento del mensaje de 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 | Es el tipo de problema que se encontró. Los valores válidos son |
Ejemplos
Listo
A continuación, se muestra una respuesta a un mensaje de 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>
Problemas
A continuación, se muestra 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>