Travel Partner Prices API
Travel Partner Prices API memberi Anda antarmuka RESTful untuk mengirim harga properti ke Google.
Layanan: travelpartnerprices.googleapis.com
Untuk memanggil layanan ini, sebaiknya gunakan library klien yang disediakan Google. Jika aplikasi Anda perlu menggunakan library Anda sendiri untuk memanggil layanan ini, hubungi Technical Account Manager (TAM) Anda untuk mendapatkan Dokumen Penemuan 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 endpoint layanan berikut dan semua URI yang tercantum didasarkan pada endpoint layanan ini:
https://travelpartnerprices.googleapis.com
| Metode | |
|---|---|
ingestLosPropertyPrices |
POST /v1/accounts/account_id/properties/property_id:ingestLosPropertyPrices
Mengupload Harga Panjang Masa Inap yang diberikan untuk properti tertentu. Memerlukan pesan harga LoS berenkode JSON (lihat di bawah) sebagai isi pesan HTTP.
|
Autentikasi API
Travel Partner Prices API menggunakan OAuth 2.0 untuk mengautentikasi aplikasi Anda sehingga Anda dapat mengakses API.
Ikuti petunjuk penyiapan OAUTH 2.0 untuk mendapatkan otorisasi bagi Travel Partner Prices API Anda.
Saat membuat project baru untuk Travel Partner Prices API, Anda harus mengaktifkan akses ke project Konsol Google Cloud baru Anda, yang serupa dengan petunjuk yang diberikan di 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 Durasi Menginap memiliki elemen dan atribut berikut:
| Elemen | Kejadian | Jenis | Deskripsi |
|---|---|---|---|
| requestTime | 1 | string | Waktu saat pesan Harga LoS dikirim, dinyatakan sebagai string yang diformat RFC 3339. Semua pesan yang dikirim dengan Pesan diproses dalam urutan RFC 3339 memerlukan tanggal dan waktu yang sepenuhnya ditentukan sebagai
Pecahan detik bersifat opsional, dan dapat dinyatakan hingga presisi nanodetik. Sebagai contoh,
|
| propertyPrices | 1 | Object | Harga untuk suatu properti. Semua harga dalam propertyPrices ini
berlaku untuk properti yang sama.
Elemen ini tidak diulang. Untuk mengirimkan harga untuk beberapa properti, Anda harus membuat beberapa permintaan HTTP (setidaknya satu per properti). |
| arrivalDayPrices[] | 1..n | Object | Harga untuk tanggal kedatangan. Semua harga dalam arrivalDayPrices
ini berlaku untuk properti tertentu, tetapi tanggal kedatangan yang 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 dalam |
| 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 sebulan. 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 sebulan. Harus dari 1 hingga 31 dan berlaku untuk tahun dan bulan. |
| productPrices[] | 1..n | Object | Harga suatu produk. Semua harga dalam productPrices ini
berlaku untuk kombinasi properti dan tanggal kedatangan tertentu, tetapi produk yang berbeda.
|
| roomTypeId | 0..1 | string | ID unik untuk kamar yang dirujuk oleh harga ini. Gunakan ID ini untuk mencocokkan data Paket Kamar dengan data yang Anda kirim di roomdata. Untuk mengetahui 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 di packagedata. Untuk mengetahui informasi selengkapnya, lihat metadata Paket Kamar. |
| occupancyPrices[] | 1..n | Object | Harga untuk hunian. 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 bilangan
bulat positif antara 1 dan 99.
Catatan: Hubungi tim dukungan Anda untuk mengirimkan data hunian untuk lebih dari empat orang dewasa. |
| prices[] | 1..n | Object | Harga durasi menginap. Semua harga dalam prices berlaku untuk
kombinasi properti, tanggal kedatangan, produk, dan jumlah tamu tertentu.
|
| rateRuleId | 0..1 | string | Untuk tarif bersyarat, ID ini mencocokkan tarif dengan definisi di file Definisi Aturan Tarif Anda. 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 seluruh kumpulan LoS yang terdiri dari 30 harga sekaligus. Jika Anda mengirimkan kurang dari 30, semua harga LoS yang diberikan akan diproses seperti biasa, dan tarif yang tersisa tidak tersedia hingga LoS 30. Jika Anda mengirim lebih dari 30 tarif,tarif yang Anda kirim setelah tarif ke-30 akan dihilangkan . Durasi menginap yang tidak tersedia harus ditampilkan dengan
|
| taxes[] | 30 | float | Komponen pajak harga lama menginap.
Nilai pada indeks |
| fees[] | 30 | float | Komponen biaya harga lama menginap.
Nilai pada indeks |
Contoh
Tarif & pajak berdasarkan LOS
Contoh berikut menunjukkan cara menetapkan durasi menginap minimum 2 untuk satu tanggal check-in dan tidak menetapkan ketersediaan untuk tanggal check-in lainnya.
Jika Anda menetapkan startDate mulai 1/9/2023 tanpa endDate, berarti Anda
menentukan tarif hanya untuk satu tanggal dan Anda dapat menghilangkan
endDate.
Array occupancyPrices yang ditetapkan ke 2 memungkinkan Anda menetapkan tarif yang berbeda untuk jumlah tamu yang berbeda. Oleh karena itu, tidak ada lowongan pada 04/09/23 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
mengirim tanggal secara eksplisit, 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 diubah. Memiliki bentuk:
accounts/{account}/properties/{property}.
|