Preço por duração da estadia (LoS)

API Travel Partner Prices

A API Travel Partner Prices fornece uma interface RESTful para enviar preços de propriedades para o Google.

Serviço: Travelpartnerprices.googleapis.com

Para chamar esse serviço, recomendamos que você use o cliente fornecido pelo Google bibliotecas. Se as aplicativo precisa usar suas próprias bibliotecas para chamar este serviço, entre em contato com seu Gerente técnico de contas (TAM) para acessar o documento de descoberta para este serviço.

Endpoint de serviço

Um serviço endpoint é um URL de base que especifica o endereço de rede de um serviço de API. Um serviço podem ter vários endpoints de serviço. Este serviço tem o seguinte endpoint e todos os URIs listados são relativos a este endpoint de serviço:

https://travelpartnerprices.googleapis.com
Métodos
ingestLosPropertyPrices POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices

Faça upload dos preços para duração da estadia para uma propriedade especificada.

Requer uma mensagem de preços de LoS codificada em JSON (confira abaixo) como o HTTP corpo da mensagem.

account_id: este valor de string é o "ID da conta" valor listado na página "Configurações da conta" em "Hotel" de Ajuda.

property_id: o valor desse elemento precisa ser uma string que corresponde ao ID da ficha no seu Feed de lista de hotéis.

Autenticação da API

A API Travel Partner Prices usa o OAuth 2.0 para autenticar seu aplicativo para que você possa acessar as APIs.

Para instruções detalhadas, consulte Como configurar o OAuth 2.0. Estas são a configuração instruções para a API Travel Partner. A API Travel Partner e a API Travel Partner Prices são diferentes. Nestas instruções de configuração, substitua a "API Travel Partner Prices" em qualquer lugar "API Travel Partner" a origem da referência.

Solicitações

Sintaxe

A mensagem LoS Prices usa a seguinte sintaxe:

{
  "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 e Atributos

A mensagem de preços para duração da estadia tem os seguintes elementos e atributos:

Elemento Ocorrências Tipo Descrição
requestTime 1 string

O momento em que a mensagem de preço de LoS foi enviada, expresso como um arquivo no formato RFC 3339 fio.

Qualquer mensagem enviada com um requestTime nos 24 anteriores horas são processadas, e as que não foram descartadas.

As mensagens são processadas em ordem de requestTime: independentemente da ordem em que são recebidos. Por exemplo, atualização de preço com requestTime de 2019-05-03T14:09:00Z, que é recebido após um mensagem para os mesmos itinerários com um requestTime de 2019-05-03T14:10:00Z são descartados em favor do com carimbo de data/hora posterior.

O RFC 3339 requer datas e horas totalmente especificadas, YYYY-MM-DDThh:mm:ss.SSZ: O fuso horário é obrigatório e foi especificado como uma diferença de hh:mm positiva ou negativa em relação ao UTC ou Z como abreviação de UTC.

Os frações de segundos são opcionais e podem ser expressos até com precisão de nanossegundos. Por exemplo, 2017-01-15T01:30:15.01-08:00 codifica os últimos 15,01 segundos 13:30 PST em 15 de janeiro de 2017.

propertyPrices 1 Object Preços de uma propriedade. Todos os preços neste propertyPrices se aplicam à mesma propriedade.

Esse elemento não é repetido. Para enviar preços de várias propriedades, será necessário fazer várias solicitações HTTP (pelo menos uma por propriedade).

arrivalDayPrices[] 1..n Object Preços para uma data de chegada. Todos os preços neste arrivalDayPrices se aplicam a uma propriedade específica, mas com datas de chegada diferentes.
startDate 1 Object O productPrices é aplicado a todas as datas de chegada. entre startDate e endDate, inclusive.

Se você tentar especificar apenas uma data de chegada (e não um intervalo), insira a data de chegada em startDate e endDate.

startDate.year 1 integer Ano de startDate. O valor precisa estar entre 1 e 9.999.
startDate.month 1 integer Mês do ano. Precisa ser de 1 a 12.
startDate.day 1 integer Dia do mês. Deve ter um valor entre 1 e 31 e ser válido para o ano e o mês.
endDate 0..1 Object O atributo productPrices é aplicado a todas as datas de chegada entre as startDate e endDate, inclusive.

Se você tentar especificar apenas uma data de chegada (e não um intervalo), endDate pode ser omitido.

endDate.year 1 integer Ano de endDate. O valor precisa estar entre 1 e 9.999.
endDate.month 1 integer Mês do ano. Precisa ser de 1 a 12.
endDate.day 1 integer Dia do mês. Deve ter um valor entre 1 e 31 e ser válido para o ano e o mês.
productPrices[] 1..n Object Preços de um produto. Todos os preços neste productPrices se aplicam a uma propriedade específica, combinação de data de chegada, mas diferentes produtos.
roomTypeId 0..1 string O código exclusivo do quarto a que esse preço se refere. Usar esse ID para corresponder os dados de Categoria de quarto com o que você enviou em dados de quarto. Para mais informações, consulte Metadados de Categoria de quarto.
ratePlanId 0..1 string O ID exclusivo dos dados do pacote a que esse preço se refere. Usar esse ID para corresponder os dados de Categoria de quarto com o que você enviou em packagedata. Para mais informações, consulte Metadados de Categoria de quarto.
occupancyPrices[] 1..n Object Preços para uma ocupação. Todos os preços neste occupancyPrices se aplicam a uma propriedade específica, data de chegada, combinação de produtos, mas com diferentes ocupações.
adults 1 integer O número máximo de hóspedes que podem ser reservados por sala, incluindo adultos e crianças. Esse valor é definido para todas as tarifas no o campo occupancyPrices correspondente e precisa ser um valor positivo número inteiro entre 1 e 99.

Observação: entre em contato com a equipe de suporte para enviar a ocupação de mais de quatro adultos.

prices[] 1..n Object Preços por duração da estadia. Todos os preços em prices se aplicam a uma combinação específica de propriedade, data de chegada, produto e ocupação.
rateRuleId 0..1 string Para tarifas condicionais: esse ID corresponde uma taxa a uma definição em seu arquivo de definição de regra de tarifação. O limite de caracteres desse campo é de 40 caracteres.
currencyCode 1 string O código da moeda de três letras que rates e taxes são fornecidas. Por exemplo, "USD" para dólares americanos.
rates[] 30 float O componente de tarifa básica dos preços de duração da estadia.

Se um valor taxes correspondente for fornecido, essa taxa será que não incluem o tributo. O preço total é a soma dos custos alíquota e tributos.

O valor no índice n corresponde a um n+1 duração da estadia.

Você precisa enviar o conjunto completo de 30 preços de LoS de uma vez. Se você enviar menos de 30, todos os preços de LoS fornecidos serão processados como o valor normal e as demais taxas ficam indisponíveis até o loS 30, 00. Se você enviar mais de 30,então quaisquer preços que você enviar além da 30a taxa serão caiu .

As durações indisponíveis das estadias devem ser representadas por 0:

taxes[] 30 float O componente fiscal dos preços de duração da estadia.

O valor no índice n corresponde a um n+1 duração da estadia.

fees[] 30 float O componente da tarifa de preços de duração da estadia.

O valor no índice n corresponde a um n+1 duração da estadia.

Exemplo

Taxas e tributos com base na estadia

O exemplo a seguir mostra como definir a duração mínima da estadia de 2 para uma data de check-in e não define disponibilidade para outra. Se você definir startDate de 01/09/2023 sem endDate, isso significa que você está especificando as taxas para apenas uma data e pode omitir endDate.

Com a matriz occupancyPrices definida como 2, é possível definir taxas diferentes para ocupações diferentes. Portanto, não há vagas nos limites de 04/09/23 disponível rates.

A matriz taxes mostrada é calculada como 10% da taxa.

A matriz fees exibida se aplica a uma taxa de limpeza de US $50 por estadia.

Se toda a data de check-in estiver indisponível (03/09/2023), você vai precisar envie explicitamente a data e omita rates, taxes e productPrices para significa que não há disponibilidade para a data 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
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}

Corpo da resposta

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação JSON
        {
          "name": "string"
        }
        
Campos
name O nome do recurso do PropertyPrices que foi modificado. Com o formato:
accounts/{account}/properties/{property}.