API de Travel Partner Pricing
La API de Travel Partner Pricing te proporciona una interfaz RESTful para enviar los precios de las propiedades a Google.
Servicio: Travelpartnerprices.googleapis.com
Para llamar a este servicio, te recomendamos usar el cliente proporcionado por Google bibliotecas. 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 podría tener múltiples 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.
Para obtener instrucciones de configuración paso a paso, consulta Cómo configurar OAuth 2.0 Esta es la configuración para la API de Travel Partner. Ten en cuenta que la API de Travel Partner y de la API de Travel Partner Pricing son diferentes. En estas instrucciones de configuración, debes reemplazar la “API de Travel Partner Prices” en cualquier lugar "API de Travel Partner" se hace referencia a ellos.
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 los precios de 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
Las fracciones de segundos son opcionales y se pueden expresar hasta
con una precisión de 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 para varias propiedades, sigue estos pasos: 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 startDate y endDate , inclusive.
Si solo intentas 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 encontrarse 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 | Año del endDate . Debe ser un valor entre 1 y 9,999. |
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 | Es el precio de un producto. Todos los precios en productPrices
se aplican a una propiedad específica, combinación de fecha de llegada, pero
productos.
|
roomTypeId | 0..1 | string | Es el ID único de la habitación a la que hace referencia este precio. Usa este ID para que coincida con los datos del paquete de habitación con los que enviaste en esa información. Para obtener más información, consulta Metadatos del paquete 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 coincida con los datos del paquete de habitación 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 en occupancyPrices
se aplican a una propiedad, fecha de llegada o combinación de productos específicos, pero a
ocupaciones diferentes.
|
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 | Para las tarifas condicionales, este ID hace coincidir una tarifa con una definición de tu archivo de definición de reglas de tarifas. El límite de caracteres de este campo es de 40. |
currencyCode | 1 | string | El código de moneda de tres letras que corresponden a rates y taxes
de seguridad. Por ejemplo, "USD" para dólares estadounidenses.
|
rates[] | 30 | float | Componente de la tarifa base de los precios de la duración de la estadía
Si se proporciona un valor de El valor del índice Debes enviar el conjunto de LOS completo de 30 precios a la vez. Si envías inferior a 30, todos los precios de la LoS proporcionados se procesan como normal, y las tarifas restantes no estarán disponibles hasta los 30. Si envía más de 30,entonces cualquier precio que envíes con una tarifa superior a 30 serán se descartó . Las duraciones de estadías no disponibles deben representarse con un
|
taxes[] | 30 | float | Es el componente fiscal de los precios de duración de la estadía.
El valor del í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 la duración mínima de la estadía de 2.
para una fecha de entrada y configurar la falta de 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
establecido en 2
te permite establecer diferentes tarifas.
para diferentes ocupaciones. Por lo tanto, no hay vacantes en los límites del 04/09/23
disponibles rates
.
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 |
El nombre del recurso de PropertyPrices que se modificó. Tiene el formulario:
accounts/{account}/properties/{property}
|