Harga Lama Menginap (LoS)

API Harga Partner Perjalanan

Travel Partner Prices API menyediakan antarmuka RESTful untuk mengirim harga properti ke Google.

Layanan: travelpartnerprices.googleapis.com

Untuk memanggil layanan ini, sebaiknya Anda menggunakan klien yang disediakan Google library. Jika perlu menggunakan pustaka Anda sendiri untuk memanggil layanan ini, hubungi Technical Account Manager (TAM) untuk mendapatkan Dokumen Discovery untuk layanan ini.

Endpoint layanan

Sebuah layanan endpoint 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 Lama Menginap yang diberikan untuk properti tertentu.

Memerlukan pesan harga LoS yang dienkode JSON (lihat di bawah) sebagai HTTP isi pesan.

account_id: Nilai string ini adalah "ID Akun" nilai yang tercantum di halaman Setelan akun di Hotel Tengah.

property_id: Nilai elemen ini harus berupa string yang cocok dengan ID listingan di Feed Daftar Hotel Anda.

Autentikasi API

Travel Partner Prices API menggunakan OAuth 2.0 untuk mengautentikasi aplikasi agar Anda dapat mengakses API.

Untuk mendapatkan petunjuk penyiapan langkah demi langkah, lihat Menyiapkan OAuth 2.0. Berikut adalah penyiapannya untuk Travel Partner API. Perhatikan bahwa Travel Partner API dan Travel Partner Prices API berbeda. Dalam petunjuk pengaturan ini, Anda harus mengganti "Travel Partner Prices API" nama di mana pun yang "Travel Partner API" yang dirujuk.

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 LoS Price dikirim, yang dinyatakan berformat RFC 3339 {i>string<i}.

Pesan apa pun yang dikirim dengan requestTime dalam 24 waktu terakhir jam diproses, dan jam yang belum dibuang.

Pesan diproses dengan urutan requestTime, terlepas dari urutan penerimaannya. Sebagai contoh, pembaruan harga dengan requestTime 2019-05-03T14:09:00Z yang diterima setelah pesan untuk itinerari yang sama dengan requestTime 2019-05-03T14:10:00Z dihapus dan diganti dengan pesan dengan stempel waktu kemudian.

RFC 3339 memerlukan tanggal dan waktu yang ditentukan sepenuhnya sebagai YYYY-MM-DDThh:mm:ss.SSZ. Zona waktu wajib diisi, ditentukan sebagai offset hh:mm positif atau negatif dari UTC, atau Z sebagai singkatan untuk UTC.

Detik pecahan bersifat opsional, dan dapat dinyatakan hingga presisi dalam waktu nanodetik. Sebagai contoh, 2017-01-15T01:30:15.01-08:00 mengenkode 15,01 detik sebelumnya 01.30 PST pada 15 Januari 2017.

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 harus membuat beberapa permintaan HTTP (setidaknya satu permintaan 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 berlaku untuk semua tanggal kedatangan antara startDate dan endDate, inklusif.

Jika Anda hanya mencoba menentukan satu tanggal kedatangan (dan bukan rentang), masukkan tanggal kedatangan ke startDate dan endDate.

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 Anda hanya mencoba menentukan satu tanggal kedatangan (dan bukan rentang), endDate dapat dihilangkan.

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 untuk suatu produk. Semua harga dalam productPrices ini berlaku untuk properti tertentu, kombinasi tanggal kedatangan, tetapi berbeda Google.
roomTypeId 0..1 string ID unik untuk kamar yang dirujuk 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 agar cocok dengan data Paket Kamar dengan yang Anda kirim dalam data paket. 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 jumlah tamu yang berbeda.
adults 1 integer Jumlah maksimum tamu yang dapat dipesan per ruang, 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 panjang masa inap. Semua harga di 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 dalam file Definisi Aturan Tarif. Batas karakter untuk kolom ini adalah 40 karakter.
currencyCode 1 string Kode mata uang tiga huruf yang digunakan oleh rates dan taxes disediakan. Misalnya, "USD" untuk dolar AS.
rates[] 30 float Komponen tarif dasar dari harga lama menginap.

Jika nilai taxes yang sesuai diberikan, tarif ini akan tidak termasuk pajak. Total harga adalah jumlah dari dan pajak.

Nilai pada indeks n sesuai dengan n+1 panjang masa inap mereka.

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 .

Panjang masa inap yang tidak tersedia harus ditampilkan dengan 0.

taxes[] 30 float Komponen pajak harga lama menginap.

Nilai pada indeks n sesuai dengan n+1 panjang masa inap mereka.

fees[] 30 float Komponen biaya harga lama menginap.

Nilai pada indeks n sesuai dengan n+1 panjang masa inap mereka.

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 menetapkan tarif hanya untuk satu tanggal dan Anda dapat menghilangkan endDate.

Array occupancyPrices yang disetel ke 2 memungkinkan Anda menetapkan tarif yang berbeda untuk jumlah tamu yang berbeda. Oleh karena itu, tidak ada kekosongan pada 09/04/23 tersedia rates.

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 &dash;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. Berisi formulir:
accounts/{account}/properties/{property}