Travel Partner Prices API
Travel Partner Prices API 提供符合 REST 樣式的介面,方便你傳送訊息 將房源價格傳送給 Google
服務:travelpartnerprices.googleapis.com
如要呼叫這項服務,建議您使用 Google 提供的 用戶端 程式庫。如果您的 應用程式需要使用您自己的程式庫才能呼叫這項服務,請聯絡您的 客戶技術顧問 (TAM) 索取探索文件 使用此服務。
服務端點
服務 端點 指定 API 服務網路位址的基準網址。一項服務 可能有多個服務端點這項服務包含以下服務 且這裡列出的所有 URI 都與這個服務端點相關:
https://travelpartnerprices.googleapis.com
方法 | |
---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
上傳為指定房源提供的入住天數長度。 需要以 JSON 編碼的 LoS 價格訊息 (請見下方) 做為 HTTP 訊息內文。
|
API 驗證
Travel Partner Prices API 會使用 OAuth 2.0 執行下列操作: 驗證應用程式,這樣您即可存取 API。
如需逐步設定操作說明,請參閱「設定 OAuth 2.0。這裡是設定 請參閱 Travel Partner API 的操作說明。請注意,Travel Partner API 和 Travel Partner Prices API 不同。在這些設定操作說明中 你必須改為使用「Travel Partner Prices API」隨便取個名字 「Travel Partner API」
要求
語法
LoS Prices
訊息使用下列語法:
{
"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,...]
}]
}]
}]
}]
}
}
元素和屬性
入住天數價格訊息包含下列元素和屬性:
元素 | 發生次數 | 類型 | 說明 |
---|---|---|---|
requestTime | 1 | string | 成功傳送 LoS 價格訊息的時間點 (以數字表示) 格式為 RFC 3339 字串。 過去 24 天內透過 訊息會依 RFC 3339 需要完整指定日期和時間,例如
小數秒數為選填,可能會以
精確度可達奈秒舉例來說
|
propertyPrices | 1 | Object | 房源的價格。這個propertyPrices 涵蓋的所有價格
套用至同一個資源
此元素不會重複。如要傳送多個房源的價格, 您需要發出多個 HTTP 要求 (每項資源至少一個)。 |
arrivalDayPrices[] | 1..n | Object | 抵達日期的價格。這個arrivalDayPrices 涵蓋的所有價格
套用至特定房源,但抵達日期不同。 |
startDate | 1 | Object | 系統會將 productPrices 套用至所有抵達日期
介於 startDate 和 endDate 之間 (含首尾)。
如果只嘗試指定一個抵達日期 (而非範圍),
請在 |
startDate.year | 1 | integer | startDate 的年份。必須介於 1 至 9999 之間。 |
startDate.month | 1 | integer | 一年中的月份。值必須介於 1 至 12 之間。 |
startDate.day | 1 | integer | 一個月中的第幾天。這個值必須介於 1 至 31,有效期限為年和月份。 |
endDate | 0..1 | Object | 產品價格會套用至
startDate 和 endDate (含頭尾)。
如果只嘗試指定一個抵達日期 (而非範圍),
|
endDate.year | 1 | integer | endDate 的年份。必須介於 1 至 9999 之間。 |
endDate.month | 1 | integer | 一年中的月份。值必須介於 1 至 12 之間。 |
endDate.day | 1 | integer | 一個月中的第幾天。這個值必須介於 1 至 31,有效期限為年和月份。 |
productPrices[] | 1..n | Object | 產品的價格。這個productPrices 涵蓋的所有價格
套用至特定屬性、抵達日期組合,但
很少直接解答該如何打造產品
|
roomTypeId | 0..1 | string | 這個價格所參照的房間專屬 ID。使用 這個 ID 即可比對 Room Bundle 資料與你在會議室資料中傳送的資料。 如需更多資訊,請參閱 會議室套裝組合中繼資料。 |
ratePlanId | 0..1 | string | 這個價格所參照的套件資料專屬 ID。使用 ,以便比對 Room Bundle 資料與您在 packagedata 中傳送的資料。 如需更多資訊,請參閱 會議室套裝組合中繼資料。 |
occupancyPrices[] | 1..n | Object | 可住人數的價格。這個occupancyPrices 涵蓋的所有價格
套用至特定屬性、到達日期和產品組合,但
人數不同
|
adults | 1 | integer | 每間會議室可預訂的房客人數上限,包括
成人與兒童這個值適用於
對應的 occupancyPrices 欄位,且必須是正數
介於 1 到 99 之間的整數
注意:如要傳送可住人數,請與支援團隊聯絡 超過 4 位成人 |
prices[] | 1..n | Object | 入住天數。prices 中的所有價格適用於
特定房源、抵達日期、產品和可住人數的組合。
|
rateRuleId | 0..1 | string | 關於條件式費率, 這個 ID 與費率規則定義檔案中的定義相符。 這個欄位的字元限制為 40 個半形字元。 |
currencyCode | 1 | string | rates 和 taxes 的貨幣代碼 (三字母)
輸入的名稱例如 "USD" 代表美元。
|
rates[] | 30 | float | 入住天數價格的基本費率元件。
如果提供對應的 索引 您一次只能傳送 30 個價格的完整 LoS。如果傳送 少於 30 次,系統會將您提供的所有 LoS 價格視為 一般,剩餘費率則未到 LoS 30 為止。如果發生以下情況: 傳送超過 30 美元的費率,則傳送超過 30 美元的房價時, 已捨棄 . 無法使用的入住天數應以
|
taxes[] | 30 | float | 入住天數價格的稅金元件。
索引 |
fees[] | 30 | float | 入住天數費用的費用元件。
索引 |
範例
費率和根據 LOS 計算稅金
以下範例說明如何將最短入住天數設為 2
為一個入住日期,並且設定另一個入住日期的空位。
如果從 2023 年 9 月 1 日設定 startDate
,而沒有 endDate
,則表示
您只指定單一日期的房價,因此可以省略
endDate
。
將 occupancyPrices
陣列設為 2
,即可設定不同費率
因應不同使用人數因此,2023 年 9 月 4 日的限制並未設有頻寬限制
可用價格:rates
。
顯示的 taxes
陣列是以 10% 的費率計算。
顯示的 fees
陣列會針對每次入住收取 $50 美元的清潔費。
如果無法取得完整的入住日期 ‐9/3/2023,請務必
明確傳送日期,並省略 rates
、taxes
和 productPrices
以
表示所要求的日期沒有可預約的時段。
{
"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
]
}
]
}
]
}
]
}
]
}
}
回應主體
如果成功,回應主體會含有以下結構的資料:
JSON 表示法 | |
---|---|
{ "name": "string" } |
欄位 | |
---|---|
name |
修改的 PropertyPrices 資源名稱。格式如下:
accounts/{account}/properties/{property} 。
|