Modul E-Tiket & Reservasi API v1.0
Koneksi & Integrasi API Eksternal (Luar Website)
Dokumentasi teknis untuk menghubungkan sistem reservasi tiket, validasi barcode tiket masuk, turnstile scanner gate fisik, OTA (Online Travel Agent), dan website mitra secara real-time via RESTful JSON API.
Otentikasi & Keamanan (Master API Key)
Setiap toko memiliki Master API Key unik tersendiri untuk menjamin keamanan koneksi dan isolasi data antar-toko. Kunci rahasia ini dapat diatur dan diacak oleh admin pada menu Pengaturan Toko > Master API Key. Seluruh request API wajib menyertakan HTTP Request Header X-API-KEY milik toko terkait.
HTTP Headers
X-API-KEY: [MASTER_API_KEY_TOKO_ANDA] Content-Type: application/json Accept: application/json
1. Verifikasi Validitas E-Tiket / Kode Booking
GET / POST
https://toko.rumren.id/api?action=external_booking_verify&code={KODE_TIKET}
Parameter Permintaan:
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| code | string | Wajib | Kode E-Tiket, nomor barcode, atau nomor booking (contoh: BK-2609001). |
Contoh Kode Integrasi:
curl -X GET "https://toko.rumren.id/api?action=external_booking_verify&code=BK-2609001" \ -H "X-API-KEY: YOUR_MASTER_API_KEY" \ -H "Accept: application/json"
Contoh Response Sukses (200 OK):
Status: 200 OK
{
"status": "success",
"is_valid": true,
"is_checked_in": false,
"checkin_status": "unconfirmed",
"checked_in_at": null,
"booking": {
"id": 142,
"order_no": "2609LKAB",
"booking_code": "BK-2609001",
"customer_name": "Budi Santoso",
"customer_email": "budi@example.com",
"id_number": "3201123456780001",
"pickup_location": "Gate Utama / Lobby",
"branch_name": "Outlet Utama",
"start_date": "2026-09-23",
"end_date": "2026-09-23",
"time_slot": "14:00 - 16:00",
"unit_or_table": "VIP Room 01",
"notes": "Pesanan via API",
"payment_status": "paid",
"order_status": "confirmed",
"total_amount": 250000,
"custom_fields": {
"NOMOR KTP": "3201123456780001",
"JAM CHECKIN": "14:00",
"INSTANSI": "PT Maju Bersama"
},
"items": [
{
"product_name": "Tiket Masuk Reguler",
"quantity": 2,
"unit_price": 125000,
"subtotal": 250000,
"notes": ""
}
]
}
}
2. Validasi & Check-In Masuk (Gate In)
POST
https://toko.rumren.id/api?action=external_booking_checkin
Parameter Permintaan:
| Parameter | Tipe | Status | Keterangan |
|---|---|---|---|
| code | string | Wajib | Kode E-Tiket atau Barcode yang di-scan di gate masuk. |
Contoh Response Sukses Check-In (200 OK):
Status: 200 OK
{
"status": "success",
"is_valid": false,
"is_checked_in": true,
"checkin_status": "checked_in",
"checked_in_at": "2026-09-23 14:15:30",
"booking": {
"id": 142,
"booking_code": "BK-2609001",
"customer_name": "Budi Santoso",
"checkin_status": "checked_in"
}
}
3. Pembuatan Booking Baru dari Eksternal (OTA / Partner)
POST
https://toko.rumren.id/api?action=external_booking_create
Struktur JSON Request Body:
| Field | Tipe | Status | Keterangan |
|---|---|---|---|
| customer_name | string | Wajib | Nama lengkap pelanggan / tamu. |
| customer_email | string | Opsional | Email pelanggan. |
| id_number | string | Opsional | No. KTP / Paspor / Identitas. |
| pickup_location | string | Opsional | Lokasi jemput / Drop point. |
| start_date | date | Wajib | Tanggal kunjungan (Format: YYYY-MM-DD). |
| end_date | date | Opsional | Tanggal selesai (Format: YYYY-MM-DD). |
| time_slot | string | Opsional | Sesi waktu booking (contoh: 10:00 - 12:00). |
| unit_number | string | Opsional | Nomor kamar / meja / wahana. |
| custom_fields | object | Opsional | Field kustom dinamis yang diset toko (key-value pair). |
| payment_status | string | Opsional | Status pembayaran: paid atau unpaid. |
| items | array | Wajib | Array rincian item tiket (product_id / name, quantity, price). |
Contoh Request JSON Payload:
Content-Type: application/json
{
"customer_name": "Dewi Lestari",
"customer_email": "dewi@example.com",
"id_number": "3201998877660002",
"pickup_location": "Drop Point Stasiun Kota",
"start_date": "2026-09-25",
"end_date": "2026-09-25",
"time_slot": "10:00 - 12:00",
"unit_number": "Booth VIP-02",
"notes": "Pesanan Reservasi via Traveloka",
"payment_method": "transfer",
"payment_status": "paid",
"custom_fields": {
"NOMOR KTP": "3201998877660002",
"JAM CHECKIN": "10:00",
"CATATAN KHUSUS": "Butuh kursi roda"
},
"items": [
{
"product_name": "Tiket Masuk Wahana All-Day",
"quantity": 2,
"price": 75000
}
]
}
4. Daftar & Sinkronisasi Data Booking
GET
https://toko.rumren.id/api?action=external_booking_list&date=2026-10-06&status=all
Query Filter Parameters:
| Parameter | Tipe | Keterangan |
|---|---|---|
| date | string | Filter tanggal booking (Format: YYYY-MM-DD). |
| status | string | Filter status: unconfirmed, checked_in, confirmed, completed. |
| limit | integer | Batas jumlah baris data (default: 20, max: 100). |