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.
|
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 As mensagens são processadas em ordem de O RFC 3339 requer datas e horas totalmente especificadas,
Os frações de segundos são opcionais e podem ser expressos até
com precisão de nanossegundos. Por exemplo,
|
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.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.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 O valor no índice 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
|
taxes[] | 30 | float | O componente fiscal dos preços de duração da estadia.
O valor no índice |
fees[] | 30 | float | O componente da tarifa de preços de duração da estadia.
O valor no índice |
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} .
|