Melakukan recheck dan booking.
{info} Endpoint ini membutuhkan
session. GunakanInisiasiuntuk mendapatkansession.
{success} Booking secara otomatis melakukan
recheckuntuk memastikan ketersediaan kamar dan tarif kamar.
{info} Jika status booking
pending, update status berikutnya akan dikirim keWebhook / Callback.
| Attribute | Value |
|---|---|
| Method | POST |
https://8stars.api.digiswitch.id/v1/user/api/hotel/booking
Sign additional value: hotel.booking + ref_id
{
"username": "YOUR_USERNAME",
"sign": "96e1028f6beaa817ee3670a39c01c69d",
"code": "skuhotel",
"session": "9c597acf-23b2-47c3-86b6-b078214257c4",
"group_id": "023d8a83-b9ae-4622-8930-6d03d65bbd66",
"ref_id": "refid123",
"pax": {
"salutation": "Ms",
"first_name": "Jane",
"last_name": "Doe"
},
"request_notes": "notes123",
"auto_allow_price_change": false
}
| Parameter | Deskripsi | Tipe Data | Wajib |
|---|---|---|---|
| username | Username yang didapatkan dari menu atur koneksi API |
String | Ya |
| sign | Signature dengan formula md5(username + apiKey + "hotel.booking" + ref_id) |
String | Ya |
| code | Kode produk hotel | String | Ya |
| lang | Bahasa response. Default: id |
String | Tidak |
| session | Sesi pencarian | String | Ya |
| group_id | ID tarif | String | Ya |
| ref_id | ID unik dari Anda. Digunakan untuk cek status | String | Ya |
| pax | Objek Tamu Utama | Object | Ya |
| pax.salutation | Sapaan: Mr, Mrs, Ms |
String | Ya |
| pax.first_name | Nama depan tamu utama | String | Ya |
| pax.last_name | Nama belakang tamu utama | String | Ya |
| request_notes | Catatan kepada pemilik properti | String | Tidak |
| auto_allow_price_change | Lanjutkan booking otomatis jika tarif berubah. Default: false |
Boolean | Tidak |
Parameter di bawah ini diperlukan jika terdapat perubahan tarif dan auto_allow_price_change bernilai false.
| Parameter | Deskripsi | Tipe Data | Wajib |
|---|---|---|---|
| total_new_price | Total tarif terbaru hasil recheck | Int | Tidak |
| Parameter | Deskripsi | Tipe Data | Catatan |
|---|---|---|---|
| reply_type | Tipe reply: booking atau recheck |
String | API mengembalikan recheck ketika tarif berubah, auto_allow_price_change bernilai false, dan total_new_price tidak dikirim |
| booking_data | Data booking | Object | Gunakan ketika reply_type adalah booking |
| recheck_data | Data recheck | Object | Gunakan ketika reply_type adalah recheck. Sama dengan response Recheck |
| Parameter | Deskripsi | Tipe Data | Catatan |
|---|---|---|---|
| booking_number | Nomor booking dari pemilik properti | String | |
| booking_ref | Booking reference ID milik Anda | String | Sama dengan ref_id pada request |
| status | Status booking | Int | Lihat Status Transaksi |
| check_in | Tanggal check in YYYY-MM-DD |
String | |
| check_out | Tanggal check out YYYY-MM-DD |
String | |
| total_price | Total harga | Int | |
| request_notes | Catatan kepada pemilik properti | String | Hanya muncul jika dikirim pada request |
| pax_count | Objek Jumlah Tamu | Object | |
| property | Data Properti yang dibooking | Object | |
| rooms | Data kamar yang dibooking | Array | |
| rooms.*.name | Nama kamar | String | |
| rooms.*.plan | Kode paket kamar | String | |
| rooms.*.plan_label | Definisi paket kamar | String | |
| rooms.*.total_price | Harga per kamar | Int | |
| rooms.*.messages | Pesan terkait kebijakan kamar | Array of String | Hanya muncul jika ada pesan |
| pax | Tamu Utama | Object | Sama dengan pax pada request |
{
"message": "Sukses",
"rc": "00",
"user": {
"code": "skuhotel",
"balance": 99412887972
},
"data": {
"reply_type": "booking",
"booking_data": {
"booking_number": "eWmvyIXzmUBChONn",
"booking_ref": "refid123",
"status": 1,
"check_in": "2026-02-12",
"check_out": "2026-02-14",
"total_price": 2978927,
"request_notes": "notes123",
"pax_count": {
"total_room": 1,
"total_adult": 2
},
"property": {
"id": "jkt1",
"name": "Hotel Indonesia Kempinski Jakarta",
"star": 5,
"latitude": "6.82235700",
"longitude": "-6.19561300",
"main_photo": "https://ik.imagekit.io/vcrk/dev/hotel",
"address": {
"line_1": "Jalan MH Thamrin 1, Central Jakarta",
"area": "City Center"
},
"check_in_time": "14:00:00",
"check_out_time": "12:00:00",
"website": "www.kempinski-jakarta.com",
"facilities": [
"Wi-Fi",
"Parking Area",
"Gym",
"Restaurant",
"Bar",
"Pool"
]
},
"rooms": [
{
"name": "Deluxe King Bundaran HI View",
"plan": "RO",
"plan_label": "Hanya Kamar",
"total_price": 2978927
}
],
"pax": {
"salutation": "Ms",
"first_name": "Jane",
"last_name": "Doe"
}
},
"recheck_data": null
},
"meta": {
"session": "9c597acf-23b2-47c3-86b6-b078214257c4"
}
}
{info} Response di bawah muncul jika
auto_allow_price_changebernilaifalsedantotal_new_pricetidak dikirimkan.
{danger} Response ini mengembalikan HTTP status code
422. Lihat Response Code.
{
"message": "Harga kamar/item telah berubah",
"rc": "14",
"data": {
"reply_type": "recheck",
"booking_data": null,
"recheck_data": {
"id": "jkt1",
"name": "Hotel Indonesia Kempinski Jakarta",
"star": 5,
"type": "hotel",
"rooms": [
{
"name": "DELUXE ROOM - INNER COURTYARD VIEW",
"min_total_price": 3126484,
"groups": [
{
"group_id": "jkt1g2-rate_changes",
"plan": "BF",
"plan_label": "With Breakfast",
"cancel_plan": "NRF",
"is_smoking": false,
"total_price": 3126484,
"details": [
{
"price": 3126484,
"room_no": 1
}
]
}
]
}
]
}
},
"meta": {
"session": "9c597acf-23b2-47c3-86b6-b078214257c4",
"changes": [
{
"new_price": 3126484,
"room_name": "DELUXE ROOM - INNER COURTYARD VIEW"
}
]
}
}
Untuk melanjutkan booking setelah tarif berubah, kirim ulang request booking dengan total_new_price sesuai meta.changes atau set auto_allow_price_change menjadi true.
{info} Pada test case,
group_idselalu sama. Pada production,group_idberbeda tiap sesi.
| group_id | Deskripsi |
|---|---|
jkt1g1-pending |
Status pending |
jkt1g1-success |
Status sukses |
jkt1g1-failed |
Status gagal |
jkt1g2-rate_changes |
Response dengan reply_type recheck (RC 14) |
{
"username": "YOUR_USERNAME",
"sign": "96e1028f6beaa817ee3670a39c01c69d",
"code": "skuhotel",
"session": "9c597acf-23b2-47c3-86b6-b078214257c4",
"group_id": "jkt1g1-success",
"ref_id": "refid123",
"pax": {
"salutation": "Ms",
"first_name": "Jane",
"last_name": "Doe"
},
"is_testing": true
}