</>

Developer Hub & REST API

E-Tiket, Reservasi & Custom Fields

Ringkasan & Base URL Otentikasi (X-API-KEY) 1. Verifikasi E-Tiket 2. Check-In Validasi 3. Buat Booking (OTA) 4. Sinkronisasi Data Live Tester
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:

ParameterTipeStatusKeterangan
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:

ParameterTipeStatusKeterangan
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:

FieldTipeStatusKeterangan
customer_namestringWajibNama lengkap pelanggan / tamu.
customer_emailstringOpsionalEmail pelanggan.
id_numberstringOpsionalNo. KTP / Paspor / Identitas.
pickup_locationstringOpsionalLokasi jemput / Drop point.
start_datedateWajibTanggal kunjungan (Format: YYYY-MM-DD).
end_datedateOpsionalTanggal selesai (Format: YYYY-MM-DD).
time_slotstringOpsionalSesi waktu booking (contoh: 10:00 - 12:00).
unit_numberstringOpsionalNomor kamar / meja / wahana.
custom_fieldsobjectOpsionalField kustom dinamis yang diset toko (key-value pair).
payment_statusstringOpsionalStatus pembayaran: paid atau unpaid.
itemsarrayWajibArray 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:

ParameterTipeKeterangan
datestringFilter tanggal booking (Format: YYYY-MM-DD).
statusstringFilter status: unconfirmed, checked_in, confirmed, completed.
limitintegerBatas jumlah baris data (default: 20, max: 100).

Interactive Live API Playground