API Travel Partner Prices
L'API Travel Partner Prices fournit une interface RESTful permettant d'envoyer les prix des biens immobiliers à Google.
Service: Travelpartnerprices.googleapis.com
Pour appeler ce service, nous vous recommandons d'utiliser le client fourni par Google, bibliothèques. Si votre application doit utiliser vos propres bibliothèques pour appeler ce service, contactez votre Obtenir le document de découverte pour le responsable de compte technique (TAM) pour ce service.
Point de terminaison de service
Un service point de terminaison est un URL de base spécifiant l'adresse réseau d'un service d'API. Un service peut avoir plusieurs points de terminaison de service. Ce service inclut le service suivant : et tous les URI répertoriés sont relatifs à ce point de terminaison de service:
https://travelpartnerprices.googleapis.com
Méthodes | |
---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
Importez les prix pour la durée du séjour fournis pour un établissement donné. Nécessite un message de prix DDS encodé au format JSON (voir ci-dessous) en tant que corps du message.
|
Authentification auprès des API
L'API Travel Partner Prices utilise OAuth 2.0 pour : et authentifier votre application pour accéder aux API.
Pour obtenir des instructions de configuration détaillées, consultez la page Configurer OAuth 2.0. Voici la configuration pour l'API Travel Partner. Notez que les API Travel Partner et l'API Travel Partner Prices sont différentes. Donc, dans ces instructions de configuration, vous devez remplacer l'API Travel Partner Prices. n'importe où "API Travel Partner" est fait référence.
Demandes
Syntaxe
Le message LoS Prices
utilise la syntaxe suivante:
{
"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,...]
}]
}]
}]
}]
}
}
Éléments et Attributs
Le message concernant la durée du séjour contient les éléments et attributs suivants:
Élément | Occurrences | Type | Description |
---|---|---|---|
requestTime | 1 | string | Le moment où le message de prix DDS a été envoyé, exprimé au format RFC 3339 . Tous les messages envoyés avec un Les messages sont traités dans l'ordre de RFC 3339 exige des datetimes entièrement spécifiés comme
Les fractions de seconde sont facultatives et peuvent être exprimées jusqu'à
à la nanoseconde près. Par exemple,
|
propertyPrices | 1 | Object | Prix d'un établissement. Tous les prix dans ce/cette propertyPrices
s'appliquent à la même propriété.
Cet élément n'est pas répété. Pour envoyer les prix de plusieurs établissements, vous devez effectuer plusieurs requêtes HTTP (au moins une par propriété). |
arrivalDayPrices[] | 1..n | Object | Prix pour une date d'arrivée. Tous les prix dans ce/cette arrivalDayPrices
s'appliquent à un établissement spécifique, mais avec des dates d'arrivée différentes. |
startDate | 1 | Object | Le productPrices s'applique à toutes les dates d'arrivée
entre startDate et endDate inclus.
Si vous essayez de spécifier une seule date
d'arrivée (et non une plage),
saisissez la date d'arrivée dans |
startDate.year | 1 | integer | Année du startDate . La valeur doit être comprise entre 1 et 9 999. |
startDate.month | 1 | integer | Mois de l'année. La valeur doit être comprise entre 1 et 12. |
startDate.day | 1 | integer | Jour du mois. Doit être compris entre 1 et 31, et valide pour l'année et le mois. |
endDate | 0..1 | Object | La valeur productPrices est appliquée à toutes les dates d'arrivée comprises entre
startDate et endDate inclus.
Si vous essayez de spécifier une seule date
d'arrivée (et non une plage),
|
endDate.year | 1 | integer | Année du endDate . La valeur doit être comprise entre 1 et 9 999. |
endDate.month | 1 | integer | Mois de l'année. La valeur doit être comprise entre 1 et 12. |
endDate.day | 1 | integer | Jour du mois. Doit être compris entre 1 et 31, et valide pour l'année et le mois. |
productPrices[] | 1..n | Object | Prix d'un produit. Tous les prix dans ce/cette productPrices
s'appliquent à un établissement spécifique, à une combinaison de dates d'arrivée,
produits.
|
roomTypeId | 0..1 | string | Identifiant unique de la chambre à laquelle ce prix fait référence. Utilisez cet identifiant pour faire correspondre les données de l'offre de chambres avec celles que vous avez envoyées dans roomdata. Pour en savoir plus, consultez Métadonnées des offres de chambres. |
ratePlanId | 0..1 | string | Identifiant unique des données de séjour organisé à laquelle ce prix fait référence. Utilisez cet identifiant pour faire correspondre les données de l'offre de chambres avec celles que vous avez envoyées dans les données du package. Pour en savoir plus, consultez Métadonnées des offres de chambres. |
occupancyPrices[] | 1..n | Object | Prix par nombre de personnes. Tous les prix dans ce/cette occupancyPrices
s'appliquent à un établissement, une date d'arrivée ou une combinaison de produits spécifique,
selon le nombre de personnes.
|
adults | 1 | integer | Le nombre maximal de personnes pouvant être réservées par chambre, y compris
adultes et enfants. Cette valeur est définie pour tous les tarifs compris dans la
champ occupancyPrices correspondant et doit être une valeur positive
entier compris entre 1 et 99.
Remarque: Contactez votre équipe d'assistance pour indiquer le nombre de personnes pour avec plus de quatre adultes. |
prices[] | 1..n | Object | Prix selon la durée du séjour. Tous les prix compris dans les prices s'appliquent à
une combinaison spécifique d'établissement, de date d'arrivée, de produit et de nombre de personnes.
|
rateRuleId | 0..1 | string | Pour les tarifs sous conditions, procédez comme suit : cet identifiant correspond à un tarif avec une définition dans votre fichier de définition des règles d'offres. Le nombre maximal de caractères pour ce champ est de 40. |
currencyCode | 1 | string | Code de devise à trois lettres correspondant à rates et taxes
sont fournies. Par exemple, "USD" pour le dollar américain.
|
rates[] | 30 | float | Composante "Tarif de base" des prix liés à la durée du séjour.
Si une valeur La valeur à l'indice Vous devez envoyer simultanément l'ensemble complet de 30 prix pour la DDS. Si vous envoyez inférieur à 30, tous les prix DDS fournis sont traités comme suit : normal, et les tarifs restants sont indisponibles jusqu'à la DDS 30. Si vous Si vous envoyez plus de 30,les prix que vous envoyez au-delà du 30e tarif seront a baissé . Les durées de séjour non disponibles doivent être représentées par une
|
taxes[] | 30 | float | Composante "taxes" des prix selon la durée du séjour.
La valeur à l'indice |
fees[] | 30 | float | Composante "frais" dans le prix de la durée du séjour.
La valeur à l'indice |
Exemple
Tarifs et taxes basées sur la durée du séjour
L'exemple suivant montre comment définir une durée de séjour minimale de 2 jours
pour une date d'arrivée et ne définir aucune disponibilité pour une autre date d'arrivée.
Si vous définissez startDate
à partir du 01/09/2023 sans endDate
, cela signifie que
vous spécifiez les tarifs pour une seule date et vous pouvez omettre
endDate
Le tableau occupancyPrices
défini sur 2
vous permet de définir différents tarifs
selon le nombre de personnes. Par conséquent, il n'y a pas de vacance le 04/09/2023.
disponible le rates
.
Le tableau taxes
affiché représente 10% du tarif.
Le tableau fees
affiché applique des frais de ménage de 50 $par séjour.
Si la date d'arrivée n'est pas disponible (03/09/2023), vous devez
envoyez explicitement la date, et omettez rates
, taxes
et productPrices
pour
signifie qu'il n'y a pas de disponibilité à la date demandée.
{
"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
]
}
]
}
]
}
]
}
]
}
}
Corps de la réponse
Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :
Représentation JSON | |
---|---|
{ "name": "string" } |
Champs | |
---|---|
name |
Nom de la ressource PropertyPrices qui a été modifié. Format:
accounts/{account}/properties/{property}
|