Travel Partner Prices API
Travel Partner Prices API, आपको Google को प्रॉपर्टी के किराये भेजने के लिए RESTful इंटरफ़ेस उपलब्ध कराता है.
सेवा: travelpartnerprices.googleapis.com
इस सेवा को कॉल करने के लिए, हमारा सुझाव है कि आप Google की ओर से उपलब्ध कराई गई क्लाइंट लाइब्रेरी का इस्तेमाल करें. अगर आपके ऐप्लिकेशन को इस सेवा को कॉल करने के लिए, अपनी लाइब्रेरी का इस्तेमाल करना है, तो इस सेवा के लिए डिस्कवरी दस्तावेज़ पाने के लिए, अपने टेक्निकल खाता मैनेजर (टैम) से संपर्क करें.
सेवा का एंडपॉइंट
सेवा एंडपॉइंट एक बेस यूआरएल होता है. यह किसी एपीआई सेवा का नेटवर्क पता बताता है. एक सेवा के कई सेवा एंडपॉइंट हो सकते हैं. इस सेवा का एंडपॉइंट यह है. यहां दिए गए सभी यूआरआई, इस सेवा एंडपॉइंट से जुड़े हुए हैं:
https://travelpartnerprices.googleapis.com
| तरीके | |
|---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
किसी प्रॉपर्टी के लिए, रुकने की अवधि के हिसाब से तय की गई कीमतों को अपलोड करें. इसके लिए, एचटीटीपी मैसेज बॉडी के तौर पर, JSON कोड में बदला गया LoS की कीमतों का मैसेज (नीचे देखें) ज़रूरी है.
|
एपीआई की पुष्टि करना
Travel Partner Prices API, आपके ऐप्लिकेशन की पुष्टि करने के लिए OAuth 2.0 का इस्तेमाल करता है, ताकि आपको एपीआई ऐक्सेस करने की अनुमति मिल सके.
Travel Partner Prices API के लिए अनुमति पाने के लिए, OAUTH 2.0 सेटअप से जुड़े निर्देशों का पालन करें.
Travel Partners Prices API के लिए नया प्रोजेक्ट बनाते समय, आपको अपने नए Google Cloud Console प्रोजेक्ट का ऐक्सेस चालू करना होगा. यह Travel Partner API में दिए गए निर्देशों के जैसा ही है.
अपने प्रोजेक्ट को चालू करने के लिए, Travel Partner API में दिए गए चरणों को देखें. साथ ही, "Travel Partner API" के सभी इंस्टेंस को "Travel Partner Prices API" से बदलें.
Travel Partner Prices API का दायरा यह है:
"https://travelpartnerprices.googleapis.com"
Travel Partner Prices API के लिए अपलोड पाथ यह है:
"/travel/lodging/uploads/accounts/<account_id>/property_data"
अनुरोध
सिंटैक्स
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 Price मैसेज भेजा गया था. इसे RFC 3339 फ़ॉर्मैट वाली स्ट्रिंग के तौर पर दिखाया जाता है. पिछले 24 घंटों में मैसेज को आरएफ़सी 3339 के लिए, तारीख और समय की पूरी जानकारी सेकंड के बाद के हिस्से की जानकारी देना ज़रूरी नहीं है. इसे नैनोसेकंड तक की सटीक जानकारी के साथ दिखाया जा सकता है. उदाहरण के लिए,
|
| propertyPrices | 1 | Object | किसी प्रॉपर्टी के किराये की जानकारी. इस propertyPrices में मौजूद सभी कीमतें, एक ही प्रॉपर्टी पर लागू होती हैं.
इस एलिमेंट को दोहराया नहीं गया है. एक से ज़्यादा प्रॉपर्टी के लिए कीमतें भेजने के लिए, आपको कई एचटीटीपी अनुरोध करने होंगे. हर प्रॉपर्टी के लिए कम से कम एक अनुरोध करना होगा. |
| 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 | productPrices, 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 | यह उस कमरे का यूनीक आईडी है जिसके लिए यह किराया दिखाया जा रहा है. इस आईडी का इस्तेमाल करके, रूम बंडल के डेटा को roomdata में भेजे गए डेटा से मैच करें. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें. |
| ratePlanId | 0..1 | string | यह पैकेज के डेटा का यूनीक आईडी होता है. यह किराया इसी डेटा से जुड़ा होता है. इस आईडी का इस्तेमाल करके, रूम बंडल के डेटा को पैकेजडेटा में भेजे गए डेटा से मैच करें. ज़्यादा जानकारी के लिए, रूम बंडल का मेटाडेटा देखें. |
| occupancyPrices[] | 1..n | Object | कमरे में रहने वाले लोगों के हिसाब से किराया. इस occupancyPrices
में दी गई सभी कीमतें, किसी खास प्रॉपर्टी, पहुंचने की तारीख, और प्रॉडक्ट कॉम्बिनेशन पर लागू होती हैं. हालांकि, ये अलग-अलग लोगों के हिसाब से तय की जाती हैं.
|
| adults | 1 | integer | हर कमरे में वयस्कों और बच्चों के साथ-साथ, मेहमानों की ज़्यादा से ज़्यादा संख्या. यह वैल्यू, occupancyPrices फ़ील्ड में मौजूद सभी किराये के लिए सेट की जाती है. यह 1 से 99 के बीच की पॉज़िटिव पूर्णांक होनी चाहिए.
ध्यान दें: चार से ज़्यादा वयस्कों के लिए, सहायता टीम से संपर्क करें. |
| prices[] | 1..n | Object | ठहरने की कुल अवधि के हिसाब से किराये. prices में मौजूद सभी कीमतें, किसी प्रॉपर्टी, पहुंचने की तारीख, प्रॉडक्ट, और ऑक्यूपेंसी के कॉम्बिनेशन पर लागू होती हैं.
|
| rateRuleId | 0..1 | string | शर्त के हिसाब से तय की गई दरों के लिए, यह आईडी आपकी Rate Rule Definition फ़ाइल में मौजूद किसी दर को परिभाषा से मैच करता है. इस फ़ील्ड में ज़्यादा से ज़्यादा 40 वर्णों का इस्तेमाल किया जा सकता है. |
| currencyCode | 1 | string | तीन अक्षरों वाला मुद्रा कोड, जिसमें rates और taxes दिए गए हैं. उदाहरण के लिए, "USD" अमेरिकी डॉलर के लिए.
|
| rates[] | 30 | float | यह ठहरने की अवधि के हिसाब से तय किए गए किराये का मूल कॉम्पोनेंट है.
अगर इंडेक्स आपको एक बार में, 30 किराये का पूरा LoS सेट भेजना होगा. अगर आपने 30 से कम दिनों के लिए कीमत भेजी है, तो उपलब्ध कराई गई सभी कीमतों को सामान्य कीमत के तौर पर प्रोसेस किया जाएगा. साथ ही, बाकी दिनों के लिए कीमतें उपलब्ध नहीं होंगी. अगर आपने 30 से ज़्यादा कीमतें भेजी हैं,तो 30वीं कीमत के बाद भेजी गई सभी कीमतें हटा दी जाएंगी . ठहरने की वे अवधियां जिनके लिए बुकिंग नहीं की जा सकती उन्हें |
| taxes[] | 30 | float | ठहरने की कुल अवधि के हिसाब से तय की गई कीमतों का टैक्स कॉम्पोनेंट.
इंडेक्स |
| fees[] | 30 | float | ठहरने की कुल अवधि के हिसाब से तय की गई कीमतों का शुल्क कॉम्पोनेंट.
इंडेक्स |
उदाहरण
एलओएस के आधार पर दरें और टैक्स
यहां दिए गए उदाहरण में, चेक-इन की एक तारीख के लिए, कम से कम दो रातें ठहरने की अवधि सेट करने और चेक-इन की दूसरी तारीख के लिए, उपलब्धता नहीं होने की जानकारी सेट करने का तरीका दिखाया गया है.
अगर आपने 1 सितंबर, 2023 से startDate सेट किया है और endDate नहीं दिया है, तो इसका मतलब है कि आपने सिर्फ़ एक तारीख के लिए किराया तय किया है. ऐसे में, endDate को शामिल करना ज़रूरी नहीं है.
occupancyPrices ऐरे को 2 पर सेट करने से, अलग-अलग इस्तेमाल के लिए अलग-अलग किराये सेट किए जा सकते हैं. इसलिए, 09/04/23 को कोई सीट खाली न होने की वजह से, rates के लिए उपलब्ध सीटों की संख्या सीमित है.
दिखाया गया taxes कलेक्शन, किराये का 10% है.
यहां दिखाए गए fees कलेक्शन में, हर बार ठहरने पर 50 डॉलर का सफ़ाई शुल्क लिया जाता है.
अगर चेक-इन करने की पूरी तारीख ‐3/9/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}.
|