Precios por duración de la estadía (LoS)

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.

account_id: Este valor de cadena es el "ID de la cuenta" valor que aparece en la página Configuración de la cuenta de Hotel Centro.

property_id: El valor de este elemento debe Debe ser una cadena que coincida con el ID de la ficha de tu feed de lista de hoteles.

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 requestTime dentro de los 24 anteriores se procesan y se descartan las que no lo hacen.

Los mensajes se procesan en orden de requestTime, independientemente del orden en que se reciban. Por ejemplo, un actualización de precio con un requestTime de 2019-05-03T14:09:00Z que se recibe después de un mensaje para los mismos itinerarios con un requestTime de 2019-05-03T14:10:00Z se descartan y se priorizan los mensaje con marca de tiempo más tarde.

RFC 3339 requiere fechas y horas especificadas completas como YYYY-MM-DDThh:mm:ss.SSZ La zona horaria es obligatoria y se especificó. como una compensación de hh:mm positiva o negativa con respecto a UTC Z como abreviatura de UTC.

Las fracciones de segundos son opcionales y se pueden expresar hasta con una precisión de nanosegundos. A modo de ejemplo, 2017-01-15T01:30:15.01-08:00 codifica 15.01 segundos anteriores 01:30 PST del 15 de enero de 2017

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 y endDate.

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.

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 taxes correspondiente, esta tarifa es no incluye el impuesto. El precio total es la suma de los costos tasa e impuestos.

El valor del índice n corresponde a un n+1 y la duración de la estadía.

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 0

taxes[] 30 float Es el componente fiscal de los precios de duración de la estadía.

El valor del índice n corresponde a un n+1 y la duración de la estadía.

fees[] 30 float Es el componente de tarifa de los precios de duración de la estadía.

El valor del índice n corresponde a un n+1 y la duración de la estadía.

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}