Prezzi della durata del soggiorno (LoS)

API Travel Partner Prices

L'API Travel Partner Prices fornisce un'interfaccia RESTful per l'invio prezzi degli immobili a Google.

Servizio: Travelpartnerprices.googleapis.com

Per chiamare questo servizio, ti consigliamo di utilizzare il client fornito da Google librerie. Se la tua applicazione deve utilizzare le tue librerie per chiamare questo servizio, contatta il tuo Technical Account Manager (TAM) per ottenere il Documento di scoperta per questo servizio.

Endpoint di servizio

Un servizio endpoint è un URL di base che specifica l'indirizzo di rete di un servizio API. Un servizio potrebbe avere più endpoint di servizio. Questo servizio ha il seguente endpoint e tutti gli URI elencati sono relativi a questo endpoint di servizio:

https://travelpartnerprices.googleapis.com
Metodi
ingestLosPropertyPrices POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices

Carica i prezzi forniti per la durata del soggiorno per una proprietà specificata.

Richiede un messaggio con prezzi LoS codificato in JSON (vedi di seguito) come corpo del messaggio HTTP.

account_id: questo valore di stringa è il valore "ID account" elencato nella pagina Impostazioni account di Hotel Center.

property_id: il valore di questo elemento deve essere una stringa corrispondente all'ID scheda nel feed elenco hotel.

Autenticazione API

L'API Travel Partner Prices utilizza OAuth 2.0 per di autenticare l'applicazione in modo da poter accedere alle API.

Segui la configurazione di OAUTH 2.0 istruzioni per ottenere l'autorizzazione per l'API Travel Partner Prices.

Quando crei un nuovo progetto per l'API Travel Partners Prices, devi attivare l'accesso al nuovo progetto della console Google Cloud, in modo simile alle istruzioni fornite nell'API Travel Partner.

Consulta i passaggi forniti nell'API Travel Partner e sostituisci tutte le istanze di "API Travel Partner" con "Travel Partner Prices API" per abilitare il tuo progetto.

L'ambito dell'API Travel Partner Prices è: "https://travelpartnerprices.googleapis.com"

Il percorso di caricamento per l'API Travel Partner Prices è: "/travel/lodging/uploads/accounts/<account_id>/property_data"

Richieste

Sintassi

Il messaggio LoS Prices utilizza la seguente sintassi:

{
  "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,...]
          }]
        }]
      }]
    }]
  }
}

Elementi e attributi

Il messaggio Prezzi per durata del soggiorno contiene i seguenti elementi e attributi:

Elemento Occorrenze Tipo Descrizione
requestTime 1 string

Il momento in cui è stato inviato il messaggio relativo al prezzo della LoS, espresso in formato RFC 3339 stringa.

Qualsiasi messaggio inviato con requestTime entro le 24 ore precedenti ore, mentre quelle non ancora eliminate.

I messaggi vengono elaborati nell'ordine di requestTime, a prescindere dall'ordine di ricezione. Ad esempio, un aggiornamento del prezzo con un requestTime di 2019-05-03T14:09:00Z ricevuto dopo un messaggio per gli stessi itinerari con un requestTime di 2019-05-03T14:10:00Z vengono scartati a favore del con un timestamp successivo.

Il documento RFC 3339 richiede valori data/ora completamente specificati come YYYY-MM-DDThh:mm:ss.SSZ. Il fuso orario è obbligatorio e deve essere specificato come differenza hh:mm positiva o negativa rispetto a UTC oppure come Z per indicare UTC.

I secondi frazionari sono facoltativi e possono essere espressi con una precisione fino a un nanosecondo. Ad esempio, 2017-01-15T01:30:15.01-08:00 codifica 15,01 secondi dopo 01:30 PST del 15 gennaio 2017.

propertyPrices 1 Object Prezzi di una proprietà. Tutti i prezzi entro questo periodo: propertyPrices si applicano alla stessa proprietà.

Questo elemento non è ripetuto. Per inviare i prezzi di più proprietà, devi effettuare più richieste HTTP (almeno una per proprietà).

arrivalDayPrices[] 1..n Object Prezzi per una data di arrivo. Tutti i prezzi entro questo periodo: arrivalDayPrices si applicano a una struttura specifica, ma con date di arrivo diverse.
startDate 1 Object L'productPrices viene applicato a tutte le date di arrivo tra startDate e endDate inclusi.

Se provi a specificare una sola data di arrivo (e non un intervallo), inserisci la data di arrivo sia in startDate che in endDate.

startDate.year 1 integer Anno del startDate. Deve essere compreso tra 1 e 9999.
startDate.month 1 integer Mese di un anno. Il valore deve essere compreso tra 1 e 12.
startDate.day 1 integer Giorno di un mese. Deve essere compreso tra 1 e 31 e valido per l'anno e il mese.
endDate 0..1 Object Il valore productPrices viene applicato a tutte le date di arrivo comprese tra startDate e endDate.

Se provi a specificare una sola data di arrivo (e non un intervallo), endDate potrebbe essere omesso.

endDate.year 1 integer Anno del endDate. Il valore deve essere compreso tra 1 e 9999.
endDate.month 1 integer Mese di un anno. Il valore deve essere compreso tra 1 e 12.
endDate.day 1 integer Giorno di un mese. Il valore deve essere compreso tra 1 e 31 ed essere valido per l'anno e il mese.
productPrices[] 1..n Object Prezzi di un prodotto. Tutti i prezzi all'interno di questo productPrices si applicano a una combinazione specifica di proprietà e data di arrivo, ma a prodotti diversi.
roomTypeId 0..1 string L'ID univoco della camera a cui fa riferimento questo prezzo. Utilizza le funzionalità di questo ID per abbinare i dati del pacchetto camera a quelli che hai inviato nei dati della camera. Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera.
ratePlanId 0..1 string L'ID univoco per i dati del pacchetto a cui si riferisce questo prezzo. Utilizza le funzionalità di questo ID per abbinare i dati del pacchetto camera a quelli che hai inviato nei dati del pacchetto. Per ulteriori informazioni, consulta Metadati dei pacchetti camera.
occupancyPrices[] 1..n Object Prezzi per un numero di persone. Tutti i prezzi all'interno di questo occupancyPrices si applicano a una proprietà, a una data di arrivo e a una combinazione di prodotti specifici, ma a un numero di persone diverso.
adults 1 integer Il numero massimo di ospiti che è possibile prenotare per camera, inclusi adulti e bambini. Questo valore è impostato per tutte le tariffe all'interno di campo occupancyPrices corrispondente e deve essere un valore positivo numero intero compreso tra 1 e 99.

Nota: contatta il team di assistenza per inviare il numero di persone superiore a quattro adulti.

prices[] 1..n Object Prezzi per la durata del soggiorno. Tutti i prezzi all'interno di prices si applicano a una combinazione specifica di proprietà, data di arrivo, prodotto e numero di persone.
rateRuleId 0..1 string Per le tariffe agevolate, questo ID associa una tariffa a una definizione nel file di definizione delle regole tariffarie. Il limite di caratteri per questo campo è 40.
currencyCode 1 string Il codice valuta di tre lettere in cui sono forniti rates e taxes. Ad esempio, "USD" per i dollari statunitensi.
rates[] 30 float Il componente della tariffa di base dei prezzi della durata del soggiorno.

Se viene fornito un valore taxes corrispondente, questa aliquota non include l'imposta. Il prezzo totale è la somma dell'aliquota e dell'imposta pertinenti.

Il valore all'indice n corrisponde a una durata del soggiorno di n+1.

Devi inviare l'intero set di 30 prezzi relativi alla LoS alla volta. Se invii meno di 30, tutti i prezzi della LoS specificati vengono elaborati come normale e le tariffe rimanenti non sono disponibili fino a LoS 30. Se ne invii più di 30, tutti i prezzi inviati oltre la 30a tariffa vengono ignorati.

Le durate dei soggiorni non disponibili devono essere rappresentate da un 0.

taxes[] 30 float La componente fiscale dei prezzi della durata del soggiorno.

Il valore all'indice n corrisponde a una durata del soggiorno di n+1.

fees[] 30 float La componente della tariffa dei prezzi della durata del soggiorno.

Il valore all'indice n corrisponde a una durata del soggiorno di n+1.

Esempio

Tariffe e tasse in base alla LOS

L'esempio seguente mostra l'impostazione di una durata minima del soggiorno di 2 per una data di check-in e l'impostazione di nessuna disponibilità per un'altra data di check-in. Se imposti startDate dall'1/09/2023 senza endDate, significa che specifichi le tariffe per una sola data e puoi omettere i endDate.

L'array occupancyPrices impostato su 2 ti consente di impostare tariffe diverse per il numero di persone. Pertanto, i limiti di nessun posto vacante al 09/04/23 disponibile: rates.

L'array taxes mostrato viene calcolato come il 10% della tariffa.

Nell'array fees mostrato viene applicato un supplemento di 50 $per la pulizia a soggiorno.

Se l'intera data di check-in non è disponibile (ad es. 3/09/2023), devi inviare esplicitamente la data e omettere rates, taxes e productPrices per indicare che non è disponibile per la data richiesta.

{
  "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 della risposta

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
        {
          "name": "string"
        }
        
Campi
name Il nome della risorsa PropertyPrices che è stata modificata. Ha il formato:
accounts/{account}/properties/{property}.