API de Travel Partner Prices
La API de Travel Partner Prices te proporciona una interfaz RESTful para enviar precios de propiedades a Google.
Servicio: Travelpartnerprices.googleapis.com
Para llamar a este servicio, te recomendamos que uses las bibliotecas cliente que proporciona Google. Si el necesita usar tus propias bibliotecas para llamar a este servicio, comunícate con tu Administrador técnico de cuentas (TAM) para obtener el documento de descubrimiento para este servicio.
Extremo de servicio
Un servicio extremo es un URL base que especifica la dirección de red de un servicio de API. Un servicio puede tener varios extremos de servicio. Este servicio ofrece los siguientes servicios: y todos los URIs enumerados están relacionados con este extremo de servicio:
https://travelpartnerprices.googleapis.com
Métodos | |
---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
Sube los precios de duración de la estadía proporcionados para una propiedad específica. Requiere un mensaje de precios de LoS codificado en JSON (ver a continuación) como el HTTP cuerpo del mensaje.
|
Autenticación de la API
La API de Travel Partner Pricing usa OAuth 2.0 para hacer lo siguiente: autenticar tu aplicación para que puedas acceder a las APIs.
Sigue las instrucciones de configuración de OAUTH 2.0 para obtener la autorización de tu API de Travel Partner Prices.
Cuando creas un proyecto nuevo para la API de precios de Travel Partners, debes hacer lo siguiente: habilita el acceso a tu nuevo proyecto de la consola de Google Cloud, que es similar al que se proporcionan en la API de Travel Partner.
Consulta los pasos que se proporcionan en la API de Travel Partner. y reemplazar todas las instancias de “API de Travel Partner” con "Precios de socios de viajes API" para habilitar tu proyecto.
El alcance de la API de Travel Partner Prices es el siguiente:
"https://travelpartnerprices.googleapis.com"
La ruta de carga de la API de Travel Partner Prices es la siguiente:
"/travel/lodging/uploads/accounts/<account_id>/property_data"
Solicitudes
Sintaxis
El mensaje LoS Prices
usa la siguiente sintaxis:
{
"requestTime": YYYY-MM-DDTHH:mm:ss.SSSZ,
"propertyPrices": {
"arrivalDatePrices": [{
"startDate": {
"year": int
"month": int
"day": int
}
"endDate": {
"year": int
"month": int
"day": int
}
"productPrices": [{
"roomTypeId": "string"
"ratePlanId": "string"
"occupancyPrices": [{
"adults": int
"prices": [{
"rateRuleId": "string"
"currencyCode": "string"
"rates": [night_1,night_2,...]
"taxes": [night_1,night_2,...]
"fees": [night_1,night_2,...]
}]
}]
}]
}]
}
}
Elementos y Atributos
El mensaje de precios por duración de la estadía tiene los siguientes elementos y atributos:
Elemento | Casos | Tipo | Descripción |
---|---|---|---|
requestTime | 1 | string | El momento en que se envió el mensaje de precio por línea de pedido, expresado con formato RFC 3339 una cadena vacía. Cualquier mensaje enviado con un Los mensajes se procesan en orden de RFC 3339 requiere fechas y horas especificadas completas como
Los segundos fraccionarios son opcionales y se pueden expresar con una precisión de hasta
nanosegundos. A modo de ejemplo, |
propertyPrices | 1 | Object | Precios de una propiedad. Todos los precios en propertyPrices
se aplican a la misma propiedad.
Este elemento no se repite. Para enviar precios de varias propiedades, debes realizar varias solicitudes HTTP (al menos una por propiedad). |
arrivalDayPrices[] | 1..n | Object | Precios para una fecha de llegada. Todos los precios en arrivalDayPrices
se aplican a una propiedad específica, pero fechas de llegada diferentes. |
startDate | 1 | Object | El productPrices se aplica a todas las fechas de llegada entre el startDate y el endDate inclusive.
Si solo quieres especificar una fecha de llegada (y no un rango), ingresa la fecha de llegada en |
startDate.year | 1 | integer | Año del startDate . Debe ser un valor entre 1 y 9,999. |
startDate.month | 1 | integer | Mes del año. Debe encontrarse entre 1 y 12. |
startDate.day | 1 | integer | Día del mes. Debe ser entre 1 y 31, y ser válido para el año y el mes. |
endDate | 0..1 | Object | El productPrices se aplica a todas las fechas de llegada entre las
startDate y endDate inclusive.
Si solo intentas especificar una fecha de llegada (y no un rango), se puede omitir |
endDate.year | 1 | integer | Es el año de la endDate . Debe ser un valor entre 1 y 9999. |
endDate.month | 1 | integer | Mes del año. Debe encontrarse entre 1 y 12. |
endDate.day | 1 | integer | Día del mes. Debe encontrarse entre 1 y 31 y ser válido para el año y el mes. |
productPrices[] | 1..n | Object | Son los precios de un producto. Todos los precios de esta productPrices se aplican a una propiedad específica, una combinación de fechas de llegada, pero a productos diferentes.
|
roomTypeId | 0..1 | string | Es el ID único de la habitación a la que se refiere este precio. Usa este ID para que los datos del paquete de Room coincidan con los que enviaste en roomdata. Para obtener más información, consulta Metadatos de paquetes de habitaciones. |
ratePlanId | 0..1 | string | Es el ID único de los datos del paquete al que se refiere este precio. Usa este ID para que los datos del paquete de Room coincidan con los que enviaste en packagedata. Para obtener más información, consulta Metadatos del paquete de habitaciones. |
occupancyPrices[] | 1..n | Object | Precios por ocupación. Todos los precios de este occupancyPrices se aplican a una propiedad, una fecha de llegada y una combinación de productos específicas, pero a diferentes ocupaciones.
|
adults | 1 | integer | La cantidad máxima de huéspedes que se pueden reservar por habitación, incluida la cantidad
adultos y niños. Este valor se establece para todas las tarifas del
occupancyPrices correspondiente y debe ser un valor positivo
un número entero entre 1 y 99.
Nota: Comunícate con tu equipo de asistencia al cliente para enviar la ocupación para más de cuatro adultos. |
prices[] | 1..n | Object | Precios por duración de la estadía Todos los precios dentro de prices se aplican a
una combinación específica de propiedad, fecha de llegada, producto y ocupación.
|
rateRuleId | 0..1 | string | En el caso de las tarifas condicionales, este ID hace coincidir una tarifa con una definición en tu archivo de definición de reglas de tarifas. El límite de caracteres para este campo es de 40. |
currencyCode | 1 | string | Es el código de moneda de tres letras en el que se proporcionan rates y taxes . Por ejemplo, "USD" para dólares estadounidenses.
|
rates[] | 30 | float | Es el componente de la tarifa base de los precios de la duración de la estadía.
Si se proporciona un valor El valor del índice Debes enviar el conjunto completo de 30 precios de la LoS a la vez. Si envías menos de 30, todos los precios de LoS proporcionados se procesarán como de costumbre, y las tarifas restantes no estarán disponibles hasta el LoS 30. Si envías más de 30, se descartarán los precios que envíes después de la tarifa número 30. Las duraciones de las estadías no disponibles se deben representar con un |
taxes[] | 30 | float | Es el componente impositivo de los precios por duración de la estadía.
El valor en el índice |
fees[] | 30 | float | Es el componente de tarifa de los precios de duración de la estadía.
El valor del índice |
Ejemplo
Tarifas y impuestos según la duración de la estadía
En el siguiente ejemplo, se muestra cómo establecer una duración mínima de la estadía de 2 días para una fecha de entrada y no establecer disponibilidad para otra fecha de entrada.
Si configuras la startDate
del 1/9/2023 sin endDate
, significa que
estás especificando las tarifas para una sola fecha y puedes omitir la
endDate
El array occupancyPrices
que se establece en 2
te permite establecer diferentes tarifas para diferentes ocupaciones. Por lo tanto, la ausencia de vacantes el 04/09/23 limita los rates
disponibles.
El array de taxes
que se muestra se calcula como el 10% de la tasa.
El array de fees
que se muestra aplica una tarifa de limpieza de USD 50 por estadía.
Si la fecha de entrada completa no está disponible (3/9/2023), debes
enviar la fecha de forma explícita y omitir rates
, taxes
y productPrices
a
indican que no hay disponibilidad para la fecha solicitada.
{
"requestTime": "2023-08-10T12:15:222",
"propertyPrices": {
"arrivalDatePrices": [
{
"startDate": {
"year": 2023,
"month": 9,
"day": 1
},
"productPrices": [
{
"occupancyPrices": [
{
"adults": 2,
"prices": [
{
"currencyCode": "USD",
"rates": [
0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"taxes": [
0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"fees": [
0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]
}
]
}
]
}
]
},
{
"startDate": {
"year": 2023,
"month": 9,
"day": 3
},
"productPrices": [
{
"occupancyPrices": [
{
"adults": 2,
"prices": [
{
"currencyCode": "USD",
"rates": [
0, 200, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"taxes": [
0, 20, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
],
"fees": [
0, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
]
}
]
}
]
}
]
}
]
}
}
Cuerpo de la respuesta
Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:
Representación JSON | |
---|---|
{ "name": "string" } |
Campos | |
---|---|
name |
Es el nombre del recurso de PropertyPrices que se modificó. Tiene el formulario:
accounts/{account}/properties/{property}
|