Travel Partner Prices API
Travel Partner Prices API menyediakan antarmuka RESTful untuk mengirim harga properti ke Google.
Layanan: travelpartnerprices.googleapis.com
Untuk memanggil layanan ini, sebaiknya gunakan library klien yang disediakan Google. Jika perlu menggunakan pustaka Anda sendiri untuk memanggil layanan ini, hubungi Technical Account Manager (TAM) untuk mendapatkan Dokumen Discovery untuk layanan ini.
Endpoint layanan
Endpoint layanan adalah URL dasar yang menentukan alamat jaringan layanan API. Satu layanan mungkin memiliki beberapa endpoint layanan. Layanan ini memiliki layanan berikut endpoint dan semua URI yang tercantum terkait dengan endpoint layanan ini:
https://travelpartnerprices.googleapis.com
Metode | |
---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
Upload Harga Panjang Masa Inap yang diberikan untuk properti yang ditentukan. Memerlukan pesan harga LoS yang dienkode JSON (lihat di bawah) sebagai isi pesan HTTP.
|
Autentikasi API
Travel Partner Prices API menggunakan OAuth 2.0 untuk mengautentikasi aplikasi agar Anda dapat mengakses API.
Ikuti petunjuk penyiapan OAUTH 2.0 untuk mendapatkan otorisasi Travel Partner Prices API Anda.
Saat membuat project baru untuk Travel Partners Prices API, Anda harus mengaktifkan akses ke project Konsol Google Cloud baru Anda yang mirip dengan yang diberikan dalam Travel Partner API.
Lihat langkah-langkah yang diberikan di Travel Partner API dan ganti semua instance "Travel Partner API" dengan "Travel Partner Prices API" untuk mengaktifkan project Anda.
Cakupan Travel Partner Prices API adalah:
"https://travelpartnerprices.googleapis.com"
Jalur upload untuk Travel Partner Prices API adalah:
"/travel/lodging/uploads/accounts/<account_id>/property_data"
Permintaan
Sintaksis
Pesan LoS Prices
menggunakan sintaksis berikut:
{
"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,...]
}]
}]
}]
}]
}
}
Elemen & Atribut
Pesan harga Lama Menginap memiliki elemen dan atribut berikut:
Elemen | Kejadian | Jenis | Deskripsi |
---|---|---|---|
requestTime | 1 | string | Waktu saat pesan Harga LoS dikirim, dinyatakan sebagai string berformat RFC 3339. Semua pesan yang dikirim dengan Pesan diproses dengan urutan RFC 3339 memerlukan tanggal dan waktu yang ditentukan sepenuhnya sebagai
Pecahan detik bersifat opsional, dan dapat dinyatakan hingga presisi nanodetik. Sebagai contoh,
|
propertyPrices | 1 | Object | Harga untuk properti. Semua harga dalam propertyPrices ini
diterapkan pada
properti yang sama.
Elemen ini tidak berulang. Untuk mengirim harga beberapa properti, Anda perlu membuat beberapa permintaan HTTP (minimal satu per properti). |
arrivalDayPrices[] | 1..n | Object | Harga untuk tanggal kedatangan. Semua harga dalam arrivalDayPrices ini
berlaku untuk properti tertentu, tetapi
tanggal kedatangan berbeda. |
startDate | 1 | Object | productPrices diterapkan ke semua tanggal kedatangan
antara startDate dan endDate , inklusif.
Jika hanya mencoba menentukan satu tanggal kedatangan (dan bukan rentang),
masukkan tanggal kedatangan ke |
startDate.year | 1 | integer | Tahun startDate . Harus dari 1 hingga 9999. |
startDate.month | 1 | integer | Bulan dalam setahun. Harus dari 1 hingga 12. |
startDate.day | 1 | integer | Hari dalam bulan. Harus dari 1 hingga 31 dan berlaku untuk tahun dan bulan. |
endDate | 0..1 | Object | productPrices diterapkan ke semua tanggal kedatangan antara
startDate dan endDate , inklusif.
Jika hanya mencoba menentukan satu tanggal kedatangan (dan bukan rentang),
|
endDate.year | 1 | integer | Tahun endDate . Harus dari 1 hingga 9999. |
endDate.month | 1 | integer | Bulan dalam setahun. Harus dari 1 hingga 12. |
endDate.day | 1 | integer | Hari dalam bulan. Harus dari 1 hingga 31 dan berlaku untuk tahun dan bulan. |
productPrices[] | 1..n | Object | Harga untuk suatu produk. Semua harga dalam productPrices ini berlaku untuk properti tertentu, kombinasi tanggal kedatangan, tetapi produk yang berbeda.
|
roomTypeId | 0..1 | string | ID unik untuk kamar yang dimaksud harga ini. Gunakan ID ini agar cocok dengan data Paket Kamar dengan yang Anda kirim dalam data kamar. Untuk informasi selengkapnya, lihat Metadata Paket Kamar. |
ratePlanId | 0..1 | string | ID unik untuk data paket yang dirujuk oleh harga ini. Gunakan ID ini untuk mencocokkan data Paket Kamar dengan data yang Anda kirim dalam packagedata. Untuk informasi selengkapnya, lihat Metadata Paket Kamar. |
occupancyPrices[] | 1..n | Object | Harga untuk jumlah tamu. Semua harga dalam occupancyPrices ini
berlaku untuk properti, tanggal kedatangan, kombinasi produk tertentu, tetapi untuk
jumlah tamu yang berbeda.
|
adults | 1 | integer | Jumlah maksimum tamu yang dapat dipesan per kamar, termasuk
orang dewasa dan anak-anak. Nilai ini ditetapkan untuk semua tarif dalam
kolom occupancyPrices yang sesuai dan harus berupa nilai positif
bilangan bulat antara 1 dan 99.
Catatan: Hubungi tim dukungan Anda untuk mengirimkan jumlah tamu lebih dari empat orang dewasa. |
prices[] | 1..n | Object | Harga berdasarkan lama menginap. Semua harga dalam prices berlaku untuk
properti, tanggal kedatangan, produk, dan kombinasi jumlah tamu tertentu.
|
rateRuleId | 0..1 | string | Untuk tarif bersyarat, ID ini mencocokkan tarif dengan definisi dalam file Definisi Aturan Tarif. Batas karakter untuk kolom ini adalah 40 karakter. |
currencyCode | 1 | string | Kode mata uang tiga huruf yang digunakan untuk rates dan taxes . Misalnya, "USD" untuk dolar AS.
|
rates[] | 30 | float | Komponen tarif dasar dari harga lama menginap.
Jika nilai Nilai pada indeks Anda harus mengirimkan rangkaian lengkap LoS yang berisi 30 harga sekaligus. Jika Anda mengirim kurang dari 30, maka semua harga LoS yang disediakan diproses sebagai normal, dan tarif lainnya tidak tersedia hingga LoS 30. Jika Anda Kirim lebih dari 30,maka setiap harga yang Anda kirim di luar tarif ke-30 turun . Durasi masa inap yang tidak tersedia harus direpresentasikan dengan
|
taxes[] | 30 | float | Komponen pajak dari harga panjang masa inap.
Nilai pada indeks |
fees[] | 30 | float | Komponen biaya harga lama menginap.
Nilai pada indeks |
Contoh
Tarif & pajak berdasarkan LOS
Contoh berikut menunjukkan penetapan panjang masa inap minimum 2
untuk satu tanggal check-in dan mengatur tidak ada ketersediaan untuk tanggal check-in lainnya.
Jika Anda menetapkan startDate
dari 1/9/2023 tanpa endDate
, artinya
Anda menentukan tarif hanya untuk satu tanggal dan Anda dapat menghapus
endDate
.
Array occupancyPrices
yang disetel ke 2
memungkinkan Anda menetapkan tarif yang berbeda
untuk jumlah tamu yang berbeda. Oleh karena itu, tidak ada lowongan pada 09/04/23 yang membatasi
rates
yang tersedia.
Array taxes
yang ditampilkan dihitung sebagai 10% dari tarif.
Array fees
yang ditampilkan menerapkan biaya pembersihan sebesar $50 per masa inap.
Jika seluruh tanggal check-in tidak tersedia ‐3/9/2023, Anda harus
secara eksplisit mengirim tanggal, dan menghilangkan rates
, taxes
, dan productPrices
untuk
menunjukkan bahwa tidak ada ketersediaan untuk tanggal yang diminta.
{
"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
]
}
]
}
]
}
]
}
]
}
}
Isi Respons
Jika berhasil, isi respons memuat data dengan struktur berikut:
Representasi JSON | |
---|---|
{ "name": "string" } |
Kolom | |
---|---|
name |
Nama resource PropertyPrices yang telah diubah. Memiliki bentuk:
accounts/{account}/properties/{property} .
|