Ticket Booking - Train API
Endpoint Ticket Booking digunakan untuk memproses pembelian tiket kereta dari jadwal yang dipilih oleh pengguna. Endpoint ini membutuhkan informasi lengkap penumpang dan data perjalanan, serta akan mengembalikan informasi booking, kode tiket, tempat duduk, dan batas waktu pembayaran.
🌐 Endpoint POST
Section titled “🌐 Endpoint POST”https://api.bisabiller.com/api/transport/train/ticket-booking🔐 Header
Section titled “🔐 Header”Authorization: Bearer <access_token>Content-Type: application/json🧾 Body Parameters
Section titled “🧾 Body Parameters”{ "adultQuantity": 1, "infantQuantity": 1, "passengers": { "adult": [ { "birthDate": "2001-05-13", "firstName": "test", "identityNumber": "327420305020003", "lastName": "bisabiller", "phoneNumber": "081234567890", "title": "Tuan", "type": "ADT", "typeIdentity": "KTP" } ], "infant": [ { "adult": ["Test Bisabiller"], "birthDate": "2022-07-19", "firstName": "Baby", "identityNumber": "3471144307880001", "lastName": "Bisabiller", "title": "MSTR", "type": "INF", "typeIdentity": "KTP" } ] }, "trainId": { "departure": 301777, "return": null }, "buyer": { "fullname": "Huhu Aja", "mobileNumber": "081234567890" }}Penjelasan Parameter:
Section titled “Penjelasan Parameter:”| Field | Tipe | Deskripsi |
|---|---|---|
adultQuantity | integer | Jumlah penumpang dewasa yang dipesan |
infantQuantity | integer | Jumlah penumpang bayi |
passengers.adult | array | Data lengkap tiap penumpang dewasa (nama, KTP, email, dll) |
passengers.infant | array | Data bayi beserta relasi dengan dewasa |
trainId.departure | integer | ID jadwal kereta keberangkatan |
trainId.return | integer | ID jadwal kepulangan (jika ada / PP) |
buyer | object | Informasi pembeli tiket |
📤 Contoh Response
Section titled “📤 Contoh Response”{ "error": false, "data": { "trainTransactionId": 1524687, "bookingDetail": [ { "bookingCode": "GIT57LW", "transactionId": "2692013894", "passengers": [ { "id_passenger": 1289, "name": "test bisabiller", "id_number": "327420305020003", "type": "ADT" } ], "seats": [["EKO", "1", "3", "A"]], "normalSales": 95000, "bookBalance": 99500, "nominalAdmin": 7500, "discount": 3000, "timeLimit": "2023-06-10 01:43:46", "trainStatus": "departure" } ] }, "message": "Booking berhasil"}Penjelasan Field:
Section titled “Penjelasan Field:”| Field | Tipe | Deskripsi |
|---|---|---|
trainTransactionId | integer | ID transaksi kereta untuk referensi internal |
bookingDetail | array | Daftar data booking yang berhasil dilakukan |
bookingCode | string | Kode booking yang digunakan untuk cetak tiket atau tracking |
transactionId | string | ID transaksi spesifik untuk penumpang tertentu |
passengers | array | Daftar penumpang dalam booking tersebut |
seats | array | Informasi kursi dalam format [kelas, gerbong, baris, kolom] |
normalSales | integer | Harga normal tiket sebelum biaya tambahan |
bookBalance | integer | Total yang harus dibayar (setelah diskon dan termasuk admin fee) |
nominalAdmin | integer | Biaya administrasi |
discount | integer | Potongan harga jika tersedia |
timeLimit | string | Batas waktu pembayaran, setelah lewat maka booking akan dibatalkan |
trainStatus | string | Status perjalanan (departure atau return) |
Catatan:
- Gunakan
bookingCodedantransactionIduntuk menampilkan data tiket ke pengguna.- Periksa
timeLimitdan pastikan pembayaran dilakukan sebelum waktu tersebut.- Kursi akan teralokasi otomatis oleh sistem, dan dapat berbeda tergantung ketersediaan.
- Gunakan endpoint ini setelah pengguna memilih jadwal dan mengisi data lengkap penumpang.