Solicitudes
Sintaxis
En el mensajeOTA_HotelRateAmountNotifRQ
se utiliza la siguiente sintaxis:
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="message_ID" TimeStamp="timestamp" Version="3.0" NotifType="[Overlay|Delta|Remove]" NotifScopeType="[ProductRate]"> <POS> <Source> <RequestorID ID="partner_account_name"/> </Source> </POS> <RateAmountMessages HotelCode="HotelID"> <RateAmountMessage> <StatusApplicationControl Start="YYYY-MM-DD" End="YYYY-MM-DD" Mon="boolean_value" Tue="boolean_value" Weds="boolean_value" Thur="boolean_value" Fri="boolean_value" Sat="boolean_value" Sun="boolean_value" InvTypeCode="RoomID" RatePlanCode="PackageID"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="float" AmountAfterTax="float" CurrencyCode="currency" NumberOfGuests="integer"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Elementos y atributos
El mensaje OTA_HotelRateAmountNotifRQ incluye los siguientes elementos y atributos:Elemento/@Atributo | Repeticiones | Tipo | Descripción |
---|---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Complex element | Elemento raíz de un mensaje de precios. |
OTA_HotelRateAmountNotifRQ/@xmlns | 0..1 | String (URI) | Espacio de nombres de XML. |
OTA_HotelRateAmountNotifRQ/@EchoToken | 1 | String | Identificador único de este mensaje de solicitud. Este valor se devuelve en el mensaje de respuesta. Los caracteres permitidos son a-z, A-Z, 0-9, _ (guion bajo) y - (guion). |
OTA_HotelRateAmountNotifRQ/@TimeStamp | 1 | DateTime | Fecha y hora de creación de este mensaje. |
OTA_HotelRateAmountNotifRQ/@Version | 1 | Decimal | Versión del mensaje de OpenTravel. |
OTA_HotelRateAmountNotifRQ/@NotifType | 0..1 | Enum | Tipo de notificación que se aplicará a cada elemento Estos son los valores válidos:
|
OTA_HotelRateAmountNotifRQ/@NotifScopeType | 0..1 | Enum | Alcance del objeto Estos son los valores válidos:
|
OTA_HotelRateAmountNotifRQ/POS | 0..1 | POS | Contenedor para especificar la cuenta de partner de este mensaje (normalmente se utiliza si tu backend proporciona feeds de precios para varias cuentas de partner). |
OTA_HotelRateAmountNotifRQ/POS/Source | 1 | Source | Es obligatorio si aparece <POS> . Contenedor para <RequestorID> . |
OTA_HotelRateAmountNotifRQ/POS/RequestorID | 1 | RequestorID | Es obligatorio si aparece <POS> . Define la cuenta del partner. |
OTA_HotelRateAmountNotifRQ/POS/RequestorID/@ID | 1 | String | Cuenta de partner de este mensaje. El valor de esta cadena es "Clave del partner", 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 del atributo |
OTA_HotelRateAmountNotifRQ/RateAmountMessages | 1 | RateAmountMessages | Conjunto de elementos <RateAmountMessage> que definen los precios. |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/@HotelCode | 1 | String | Identificador único de la propiedad. Este valor debe coincidir con el ID de hotel especificado en la cadena <id> del elemento <listing> del feed de lista de hoteles. El ID de hotel también aparece en Hotel Center. |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage | 1..n | RateAmountMessage | Contenedor para definir los precios de una habitación (que se determinan combinando un tipo de habitación y un plan de precios durante un periodo). |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl | 1 | StatusApplicationControl | Define el periodo, así como los identificadores del tipo de habitación (InvTypeCode ) y del plan de precios (RatePlanCode ). |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@Start | 1 | Date | Fecha de inicio del periodo. |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@End | 1 | Date | Fecha de finalización del periodo. Debe ser igual o superior al valor de start . Si los valores de start y
end son iguales, los datos actualizados se aplicarán a esa fecha. |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@Mon | 0..1 | Boolean | Asigna el valor true o 1 para incluir los lunes de forma explícita.
Si se asigna el valor |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@Tue | 0..1 | Boolean | Asigna el valor true o 1 para incluir los martes de forma explícita.
Si se asigna el valor |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@Weds | 0..1 | Boolean | Asigna el valor true o 1 para incluir los miércoles de forma explícita.
Si se asigna el valor |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@Thur | 0..1 | Boolean | Asigna el valor true o 1 para incluir los jueves de forma explícita.
Si se asigna el valor |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@Fri | 0..1 | Boolean | Asigna el valor true o 1 para incluir los viernes de forma explícita.
Si se asigna el valor |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@Sat | 0..1 | Boolean | Asigna el valor true o 1 para incluir los sábados de forma explícita.
Si se asigna el valor |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@Sun | 0..1 | Boolean | Asigna el valor true o 1 para incluir los domingos de forma explícita.
Si se asigna el valor |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@InvTypeCode | 1 | String | Identificador único del inventario (tipo de habitación). Este valor se asigna a <RoomID> en un mensaje Transaction (Property Data). |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/StatusApplicationControl/@RatePlanCode | 1 | String | Identificador único del plan de precios. Este identificador se asigna al objeto <PackageID> en un mensaje Transaction (Property Data). El plan de precios se define mejor y se hace referencia a él en el elemento <StatusApplicationControl> de los mensajes <OTA_HotelRateAmountNotifRQ> y <OTA_HotelAvailNotifRQ> . |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/Rates | 0..1 | Rates | Contenedor para una colección de elementos <Rate> . Si el valor de NotifType es "Remove", este elemento no se debe especificar.
Si no tiene ese valor, deberá especificarse una única vez. |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/Rates/Rate | 1 | Rate | Contenedor para una colección de elementos <BaseByGuestAmts> . |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/Rates/Rate/BaseGuestAmts | 1 | BaseByGuestAmts | Contenedor para una colección de cargos base. |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/Rates/Rate/BaseGuestAmts/BaseByGuestAmt | 1..n | BaseByGuestAmt | Especifica el precio de las habitaciones en una moneda concreta. El precio puede fijarse por ocupación usando varios elementos <BaseByGuestAmt> , cada uno de ellos con un valor diferente para NumberOfGuests .
De lo contrario, el precio se aplica a un número máximo de ocupantes definido por NumberOfGuests . |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/Rates/Rate/BaseGuestAmts/BaseByGuestAmt/@AmountBeforeTax | 0..1 | Float |
Precio diario de la habitación antes de añadir impuestos y otras tasas. Si utilizas promociones, el descuento se aplica a |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/Rates/Rate/BaseGuestAmts/BaseByGuestAmt/@AmountAfterTax | 0..1 | Float | Precio diario de la habitación después de aplicar los impuestos y las tasas correspondientes. Si se especifica AmountAfterTax , no es necesario enviar mensajes <TaxFeeInfo> independientes por propiedad. Este atributo se puede usar junto con AmountBeforeTax para proporcionar precios base y totales que se pueden mostrar a los usuarios de determinadas regiones.
Advertencia: Si utilizas promociones, te recomendamos encarecidamente que no utilices importes Nota: Si no se especifica |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/Rates/Rate/BaseGuestAmts/BaseByGuestAmt/@CurrencyCode | 1 | Enum | Código de caracteres alfanuméricos ISO 4217 (3) para una unidad monetaria específica. |
OTA_HotelRateAmountNotifRQ/RateAmountMessages/RateAmountMessage/Rates/Rate/BaseGuestAmts/BaseByGuestAmt/@NumberOfGuests | 0..1 | Integer | Número máximo de huéspedes para los que se ha diseñado una habitación. El valor predeterminado es 2 si no se proporciona ninguno. |
Ejemplos
En esta sección se incluyen ejemplos de código que señalan cómo hacer lo siguiente:
Fijar precios base y totales
Ejemplo 1
Precio base (sin impuestos ni tasas) para una ocupación predeterminada (doble). En este modelo, los impuestos y las tasas de la propiedad deben definirse mediante un mensaje TaxFeeInfo. El precio base aparecerá de una forma más destacada para los usuarios que hagan búsquedas desde determinadas regiones.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Ejemplo 2
Precio base y total para una ocupación predeterminada (doble). En este modelo, los impuestos y las tasas no deben definirse de forma independiente mediante mensajes TaxFeeInfo. El precio base aparecerá de una forma más destacada para los usuarios que hagan búsquedas desde determinadas regiones.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Ejemplo 3
Precio total (con impuestos y tasas incluidos) para varias ocupaciones. En este modelo, los impuestos y las tasas no deben definirse de forma independiente mediante mensajes TaxFeeInfo.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountAfterTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountAfterTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> <BaseByGuestAmt AmountAfterTax="120.00" CurrencyCode="USD" NumberOfGuests="3"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Ejemplo 4
Precio base y total de varios tipos de habitaciones y planes de precios en diferentes periodos.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> <RateAmountMessage> <StatusApplicationControl Start="2020-05-01" End="2020-05-31" InvTypeCode="RoomID_2" RatePlanCode="PackageID_2"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" AmountAfterTax="220.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Añadir, superponer y quitar precios
Añadir precios
Asigna a NotifType
el valor Delta para añadir precios por ocupación para RoomID_1 y PackageID_1 entre el 18/05/2020 y el 23/05/2020.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountBeforeTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> <BaseByGuestAmt AmountBeforeTax="120.00" CurrencyCode="USD" NumberOfGuests="3"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Superponer precios
Asigna a NotifType
el valor Overlay para eliminar todos los precios por ocupación para RoomID_1 y PackageID_1 entre el 18/05/2020 y el 23/05/2020, y sustituirlos por los nuevos.
Por ejemplo, si este mensaje se envió después del mensaje "Añadir precios", se eliminarían los precios por ocupación 1, 2 y 3, y solo se almacenaría el nuevo.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" CurrencyCode="USD" NumberOfGuests="1"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Quitar precios
Asigna a NotifType
el valor Delete para eliminar todos los precios por ocupación para RoomID_1 y PackageID_1 entre el 18/05/2020 y el 23/05/2020.
Por ejemplo, si este mensaje se envió después de cualquiera de los otros mensajes de ejemplo, no se almacenaría ningún precio por ocupación.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate">> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Respuestas
Sintaxis
En el mensajeOTA_HotelRateAmountNotifRS
se utiliza la siguiente sintaxis:
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="timestamp" EchoToken="echo_token" Version="3.0"> <!-- Either Success or Errors will be populated. --> <Success/> <Errors> <Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error> </Errors> </OTA_HotelRateAmountNotifRS>
Elementos y atributos
El mensajeOTA_HotelRateAmountNotifRS
incluye los siguientes elementos y atributos:
Elemento/@Atributo | Repeticiones | Tipo | Descripción |
---|---|---|---|
OTA_HotelRateAmountNotifRS | 1 | Complex element | Elemento raíz de una respuesta a un mensaje de disponibilidad. |
OTA_HotelRateAmountNotifRS/@TimeStamp | 1 | DateTime | Fecha y hora de creación de este mensaje. |
OTA_HotelRateAmountNotifRS/@EchoToken | 1 | String | Identificador único del mensaje OTA_HotelRateAmountNotifRQ asociado. |
OTA_HotelRateAmountNotifRS/Success | 0..1 | Success | Indica que el mensaje OTA_HotelRateAmountNotifRQ se ha procesado correctamente.
En cada mensaje se incluye |
OTA_HotelRateAmountNotifRS/Errors | 0..1 | Errors | Contenedor de uno o más problemas detectados al procesar el mensaje OTA_HotelRateAmountNotifRQ .
En cada mensaje se incluye |
OTA_HotelRateAmountNotifRS/Errors/Error | 1..n | Error | Descripción de un error detectado al procesar el mensaje OTA_HotelRateAmountNotifRQ . Puedes ver detalles de estos errores en los mensajes de error de estado del feed. |
OTA_HotelRateAmountNotifRS/Errors/Error/@Type | 1 | Integer | EWT (tipo de advertencia de error) de OpenTravel Alliance asociado al error. Solo se utiliza el valor 12 (Processing exception) . |
OTA_HotelRateAmountNotifRS/Errors/Error/@Code | 1 | Integer | ERR (código de error) de OpenTravel Alliance asociado al error.
Solo se utiliza el valor 450 (Unable to process) . |
OTA_HotelRateAmountNotifRS/Errors/Error/@Code | 1 | Enum | Estado de la solicitud original. Solo se utiliza el valor NotProcessed . |
OTA_HotelRateAmountNotifRS/Errors/Error/@ShortText | 1 | String | Identificador de Google del problema. Para obtener más información sobre estos errores, consulta los mensajes de error del estado del feed. |
Ejemplos
Sin errores
A continuación, se muestra una respuesta a un mensaje OTA_HotelRateAmountNotifRQ correcto.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-13T20:50:37-05:00" Version="3.0"> <Success/> </OTA_HotelRateAmountNotifRS>
Errores
A continuación, se muestra una respuesta a un mensaje OTA_HotelRateAmountNotifRQ que no se ha procesado debido a determinados errores.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-13T20:50:37-05:00" Version="3.0"> <Errors> <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error> </Errors> </OTA_HotelRateAmountNotifRS>