Permintaan dan respons
Halaman ini membahas format body permintaan, envelope respons, paginasi, format tanggal dan jumlah uang, serta cara menafsirkan kode status HTTP.
Body permintaan#
Endpoint menggunakan salah satu dari dua format body. Halaman referensi setiap endpoint menyebutkan format yang berlaku.
| Format | Content-Type | Digunakan oleh |
|---|---|---|
| Field form | application/x-www-form-urlencoded atau multipart/form-data | Login, daftar kamar, validasi kupon, negara |
| JSON | application/json | Pengiriman reservasi (BookingPushRQ), langkah awal pembayaran |
| Query string | — | Semua endpoint GET |
Field array dalam body form diulang dengan tanda kurung siku: childAges[]=7&childAges[]=12. Body JSON harus menggunakan UTF-8.
Envelope respons#
Respons berformat JSON. Sebagian besar memuat penanda success; daftar dikembalikan dengan count dan items:
{
"success": true,
"count": 3,
"items": [
{
"id": 1,
"titleCode": "TRY",
"symbol": "₺",
"price": 1
},
{
"id": 2,
"titleCode": "EUR",
"symbol": "€",
"price": 47.85000000000000142108547152020037174224853515625
}
]
}Pemeriksaan aturan bisnis yang gagal mengembalikan success: false beserta deskripsi error, dalam salah satu dari dua bentuk berikut:
{
"success": false,
"message": "online_cupon_is_not_found"
}{
"success": false,
"errorMessage": "Invalid parameters.",
"errorCode": 10022
}Pengecualian: endpoint detail kontak mengembalikan objek polos tanpa envelope, dan pengiriman reservasi mengembalikan objek BookingPushRS. Keduanya ditampilkan di referensi.
Kode status HTTP#
| Kode | Kapan | Yang perlu dilakukan |
|---|---|---|
| 200 | Permintaan diproses (berhasil atau error aturan bisnis) | Periksa success, message / errorCode. |
| 401 | Token tidak ada, formatnya salah, atau tidak dikenal | Login ulang; lihat Autentikasi. |
| 404 | Parameter path tidak cocok dengan record apa pun (mis. /hotel/{hotelID}/…, /payment/type/{paymentType}) | Periksa ID-nya. |
| 405 | Metode HTTP salah | Gunakan metode yang tercantum di referensi (negara dan daftar kamar menggunakan POST). |
| 500 | Error server yang tidak terduga | Coba lagi setelah jeda singkat; jika masih terjadi, buka tiket dukungan dengan menyertakan permintaannya. |
Paginasi#
Endpoint daftar (/external/currencies, /external/languages, /external/online/social/media, /external/stock/packages) dipaginasi berdasarkan nomor halaman:
| Parameter | Deskripsi | Default |
|---|---|---|
limit | Jumlah record per halaman. | 20 |
page | Nomor halaman, dimulai dari 1. | 1 |
offset | Jumlah record yang dilewati. Jika diisi, page diabaikan. | — |
order | Field pengurutan; tambahkan awalan - untuk urutan menurun (-id). Field yang diizinkan dicantumkan per endpoint. | — |
count adalah jumlah total record; daftar sudah habis jika page × limit ≥ count.
Tanggal, waktu, dan jumlah uang#
| Tipe | Format | Contoh |
|---|---|---|
| Tanggal permintaan | YYYY-MM-DD | 2026-08-18 |
| Tanggal ketersediaan | YYYY-MM-DD atau YYYY-MM-DDTHH:MM:SS | 2026-08-18T12:00:00 |
| Tanggal tarif per malam (respons) | DD.MM.YYYY (field tarih) | 18.08.2026 |
| Rentang hari ketersediaan (respons) | YYYY-MM-DD HH:MM:SS, pukul 12:00 hingga 12:00 hari berikutnya | 2026-08-18 12:00:00 |
| Jumlah uang | String dengan dua angka desimal, pemisah titik | "965.00" |
| Mata uang | ISO 4217; dari pengaturan channel online hotel | TRY |
| Zona waktu | Zona waktu hotel | Europe/Istanbul |
Tanggal check-out tidak termasuk dalam masa menginap: 18–20 Agustus berarti dua malam. Jangan menjumlahkan nilai uang dengan float; gunakan library desimal atau satuan terkecil berupa bilangan bulat.
Bahasa#
Daftar kamar menerima field language (ISO 639-1: tr, en, de…) dan mengembalikan nama kamar, judul fitur, serta pesan error dalam bahasa tersebut. Daftar paket mengharapkan languageID; ID-nya diambil dari endpoint Bahasa.