Travel Partner Prices API
Die Travel Partner Prices API bietet eine RESTful-Schnittstelle, über die Sie Hotelpreise an Google senden können.
Dienst: Travelpartnerprices.googleapis.com
Zum Aufrufen dieses Dienstes empfehlen wir, dass Sie den von Google bereitgestellten Client Bibliotheken. Wenn Ihr Anwendung Ihre eigenen Bibliotheken verwenden muss, um diesen Dienst aufzurufen, wenden Sie sich an Ihren Technical Account Manager (TAM) zum Abrufen des Discovery-Dokuments für diesen Dienst.
Dienstendpunkt
Ein Dienst Endpunkt ist ein Basis-URL, die die Netzwerkadresse eines API-Dienstes angibt. Ein Dienst kann mehrere Dienstendpunkte haben. Dieser Dienst hat den folgenden Dienstendpunkt und alle aufgeführten URIs beziehen sich auf ihn:
https://travelpartnerprices.googleapis.com
Methoden | |
---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
Laden Sie die angegebenen Preise für die Aufenthaltsdauer für eine bestimmte Unterkunft hoch. Erfordert eine JSON-codierte LoS-Preisnachricht (siehe unten) als HTTP-Nachrichtentext.
|
API-Authentifizierung
Die Travel Partner Prices API verwendet OAuth 2.0, um Authentifizieren Sie Ihre Anwendung, damit Sie auf die APIs zugreifen können.
Folgen Sie der Einrichtung von OAUTH 2.0. um eine Autorisierung für die Travel Partner Prices API zu erhalten.
Wenn Sie ein neues Projekt für die Travel Partner Prices API erstellen, müssen Sie den Zugriff auf Ihr neues Google Cloud Console-Projekt zu ermöglichen, in der Travel Partner API bereitgestellt.
Folgen Sie der Anleitung in der Travel Partner API und ersetzen Sie alle Instanzen von „Travel Partner API“ durch „Travel Partner Prices API“, um Ihr Projekt zu aktivieren.
Der Geltungsbereich der Travel Partner Prices API:
"https://travelpartnerprices.googleapis.com"
Der Uploadpfad für die Travel Partner Prices API lautet:
"/travel/lodging/uploads/accounts/<account_id>/property_data"
Anfragen
Syntax
Die Nachricht LoS Prices
verwendet die folgende Syntax:
{
"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,...]
}]
}]
}]
}]
}
}
Elemente und Attribute
Die Nachricht „Preise nach Aufenthaltsdauer“ enthält folgende Elemente und Attribute:
Element | Häufigkeit | Typ | Beschreibung |
---|---|---|---|
requestTime | 1 | string | Der Zeitpunkt, zu dem die Nachricht zum LoS-Preis gesendet wurde, im Format RFC 3339 . Alle Nachrichten, die innerhalb der vergangenen 24 Stunden mit einem Nachrichten werden in der Reihenfolge RFC 3339 erfordert vollständig angegebene Datum/Uhrzeit-Paare als
Sekundenbruchteile sind optional und können bis auf die Nanosekunde genau angegeben werden. Beispiel: |
propertyPrices | 1 | Object | Preise für eine Unterkunft. Alle Preise in diesem/dieser propertyPrices
gelten für dieselbe Property.
Dieses Element wird nicht wiederholt. Wenn Sie Preise für mehrere Unterkünfte senden möchten, müssen Sie mehrere HTTP-Anfragen senden (mindestens eine pro Unterkunft). |
arrivalDayPrices[] | 1..n | Object | Preise für ein Ankunftsdatum. Alle Preise in diesem/dieser arrivalDayPrices
gelten für eine bestimmte Unterkunft, aber unterschiedliche Ankunftsdaten. |
startDate | 1 | Object | productPrices wird auf alle Ankunftsdaten angewendet
zwischen startDate und endDate (einschließlich) liegt.
Wenn Sie nur ein Ankunftsdatum (keinen Zeitraum) angeben möchten, geben Sie das Ankunftsdatum sowohl in |
startDate.year | 1 | integer | Jahr des startDate . Muss zwischen 1 und 9.999 liegen. |
startDate.month | 1 | integer | Monat eines Jahres. Möglich ist eine Angabe von 1 bis 12. |
startDate.day | 1 | integer | Tag im Monat. Muss zwischen 1 und 31 liegen und für das Jahr und den Monat gültig sein. |
endDate | 0..1 | Object | Die productPrices werden auf alle Ankunftsdaten zwischen dem
startDate und endDate (einschließlich).
Wenn Sie nur ein Ankunftsdatum (und keinen Datumsbereich) angeben möchten,
|
endDate.year | 1 | integer | Jahr des endDate . Muss zwischen 1 und 9.999 liegen. |
endDate.month | 1 | integer | Monat eines Jahres. Möglich ist eine Angabe von 1 bis 12. |
endDate.day | 1 | integer | Tag des Monats. Die Angabe muss zwischen 1 und 31 liegen und für das Jahr und den Monat gültig sein. |
productPrices[] | 1..n | Object | Die Preise für ein Produkt. Alle Preise in diesem productPrices beziehen sich auf eine bestimmte Unterkunft und ein bestimmtes Ankunftsdatum, aber auf unterschiedliche Produkte.
|
roomTypeId | 0..1 | string | Die eindeutige ID des Zimmers, auf das sich dieser Preis bezieht. Mit dieser ID ordnen Sie die Daten des Zimmerpakets den Daten zu, die Sie in „roomdata“ gesendet haben. Weitere Informationen finden Sie unter Zimmerpaket-Metadaten. |
ratePlanId | 0..1 | string | Die eindeutige ID für die Paketdaten, auf die sich dieser Preis bezieht. Mit dieser ID ordnen Sie die Daten des Zimmerpakets den Daten zu, die Sie in „packagedata“ gesendet haben. Weitere Informationen finden Sie unter Zimmerpaket-Metadaten. |
occupancyPrices[] | 1..n | Object | Preise für eine Belegung. Alle Preise in diesem/dieser occupancyPrices
auf eine bestimmte Unterkunft, ein Ankunftsdatum oder eine Produktkombination,
unterschiedlichen Belegungen.
|
adults | 1 | integer | Die maximale Anzahl von Gästen, die pro Zimmer gebucht werden können, einschließlich
für Erwachsene und Kinder. Dieser Wert wird für alle Preise im entsprechenden occupancyPrices -Feld festgelegt und muss eine positive Ganzzahl zwischen 1 und 99 sein.
Hinweis: Wenden Sie sich an Ihr Supportteam, um Belegungen für von mehr als 4 Erwachsenen. |
prices[] | 1..n | Object | Preise für die Aufenthaltsdauer. Alle Preise in prices gelten für eine bestimmte Kombination aus Unterkunft, Anreisedatum, Produkt und Belegung.
|
rateRuleId | 0..1 | string | Bei nutzerabhängigen Preisen entspricht diese ID einem Preis in einer Definition in Ihrer Datei zum Festlegen der Preisregel. Die maximale Zeichenanzahl für dieses Feld beträgt 40 Zeichen. |
currencyCode | 1 | string | Der dreistellige Währungscode, in dem rates und taxes angegeben sind. Beispiel: "USD" für US-Dollar.
|
rates[] | 30 | float | Die Grundpreiskomponente der Preise für die Aufenthaltsdauer.
Wenn ein entsprechender Der Wert unter Index Sie müssen den vollständigen Satz von 30 LoS-Preisen gleichzeitig senden. Wenn Sie unter 30 liegen, werden alle angegebenen Preise für die Aufenthaltsdauer und die restlichen Preise sind bis zu 30 LoS nicht verfügbar. Wenn Sie mehr als 30 Preise senden, werden alle Preise, die über den 30. Preis hinausgehen, gelöscht. Nicht verfügbare Aufenthaltsdauern sollten mit einem
|
taxes[] | 30 | float | Die Steuerkomponente der Preise für die Aufenthaltsdauer.
Der Wert unter Index |
fees[] | 30 | float | Die Gebührenkomponente der Preise für die Aufenthaltsdauer.
Der Wert bei Index |
Beispiel
Preise und Steuern basierend auf der Aufenthaltsdauer
Im folgenden Beispiel wird für ein Check-in-Datum eine Mindestaufenthaltsdauer von zwei Nächten festgelegt und für ein anderes Check-in-Datum keine Verfügbarkeit.
Wenn Sie startDate
vom 01.09.2023 ohne endDate
festlegen, bedeutet das, dass
Sie die Preise für nur ein Datum angeben, und können den
endDate
.
Mit dem Array occupancyPrices
, das auf 2
festgelegt ist, können Sie unterschiedliche Preise für unterschiedliche Belegungen festlegen. Daher ist die Verfügbarkeit von rates
aufgrund der Nichtverfügbarkeit am 09.04.23 eingeschränkt.
Für das angezeigte Array taxes
werden 10% des Preises berechnet.
Für das dargestellte fees
-Array wird eine Reinigungsgebühr von 50 $ pro Aufenthalt erhoben.
Wenn der gesamte Check-in-Tag nicht verfügbar ist (z. B. 3. September 2023), müssen Sie das Datum ausdrücklich senden und rates
, taxes
und productPrices
weglassen, um anzugeben, dass für das angefragte Datum keine Verfügbarkeit besteht.
{
"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
]
}
]
}
]
}
]
}
]
}
}
Antworttext
Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:
JSON-Darstellung | |
---|---|
{ "name": "string" } |
Felder | |
---|---|
name |
Der Ressourcenname der PropertyPrices, die geändert wurde. Sie hat das Format:
accounts/{account}/properties/{property} .
|