Seat List - Train API
Endpoint Seat List digunakan untuk melihat informasi tempat duduk (kursi) yang tersedia pada jadwal kereta yang dipilih. Kursi yang dikembalikan akan dibagi berdasarkan keberangkatan dan kepulangan (jika ada), lengkap dengan informasi layout gerbong. Endpoint ini juga dapat memetakan kursi otomatis berdasarkan preferensi penumpang (jika disediakan).
🌐 Endpoint POST
Section titled “🌐 Endpoint POST”https://api.bisabiller.com/api/transport/train/seat-list🔐 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-24", "country": "ID", "firstName": "Test", "identityNumber": "1234567890128454", "lastName": "Bisabiller", "phoneNumber": "081234567890", "title": "MR", "type": "ADT", "typeIdentity": "KTP", "column": "A", "row": "2" } ], "infant": [ { "adult": ["Test Bisabiller"], "birthDate": "2022-07-19", "firstName": "Baby", "identityNumber": "3471144307880001", "lastName": "Bisabiller", "title": "MSTR", "type": "INF", "typeIdentity": "KTP" } ] }, "trainId": ["1162994"], "buyer": { "fullname": "Test Bisabiller", "mobileNumber": "081234567890" }}Penjelasan Parameter:
Section titled “Penjelasan Parameter:”| Field | Tipe | Deskripsi |
|---|---|---|
adultQuantity | integer | Jumlah penumpang dewasa |
infantQuantity | integer | Jumlah penumpang bayi |
passengers.adult | array | Data lengkap tiap penumpang dewasa, termasuk preferensi kursi (opsional) |
passengers.infant | array | Data bayi beserta penanggung jawabnya |
trainId | array | Daftar ID jadwal kereta (biasanya hanya satu ID untuk sekali jalan) |
buyer | object | Informasi pembeli tiket |
📤 Contoh Response
Section titled “📤 Contoh Response”{ "error": false, "message": "Data ditemukan", "transactionId": 1524688, "passengers": { "departure": [ { "id": 1292, "book_id": 861, "book_code": "GIT57LW", "name": "Test Bisabiller", "seat": "3A", "wagon": "EKO-1" } ] }, "data": { "transaction_id": 1524688, "passengers": { "departure": [/* sama seperti bagian atas */], "return": [/* jika ada kepulangan */] }, "result": { "departure": [ { "wagonCode": "EKO", "wagonNumber": 1, "layout": [ { "row": 1, "column": "A", "class": "Q", "isFilled": 1, "groupColumn": 1 } // ... ] } ], "return": [ // Jika tiket pulang-pergi, data layout kepulangan akan muncul di sini ] } }}Penjelasan Field (Response)
Section titled “Penjelasan Field (Response)”Root Fields
Section titled “Root Fields”| Field | Tipe | Deskripsi |
|---|---|---|
error | boolean | Status error (false jika berhasil) |
message | string | Pesan status |
transactionId | integer | ID transaksi seat list |
data.passengers
Section titled “data.passengers”| Field | Tipe | Deskripsi |
|---|---|---|
departure | array | Daftar penumpang dan kursi keberangkatan |
return | array | Daftar penumpang dan kursi kepulangan (jika ada) |
data.result[].layout
Section titled “data.result[].layout”| Field | Tipe | Deskripsi |
|---|---|---|
row | integer | Nomor baris kursi |
column | string | Kolom kursi (A, B, C, D) |
class | string | Kelas kursi (biasanya Q) |
isFilled | integer | Status kursi (1 = terisi, 0 = tersedia) |
groupColumn | integer | Nomor grup kolom (berguna untuk layout UI seperti tempat duduk berpasangan) |
💡 Catatan
Section titled “💡 Catatan”- Field
layoutmemberikan gambaran visual tempat duduk yang tersedia dalam format baris dan kolom. - Penumpang dapat memberikan preferensi kursi melalui field
rowdancolumn, namun alokasi tetap tergantung ketersediaan. - Data
result.returnhanya tersedia jika kereta memiliki perjalanan pulang (PP). - Gunakan
wagonCode,wagonNumber, danlayoutuntuk membangun UI pemilihan kursi (seat map) secara interaktif. - Pastikan seat yang dipilih tersedia (
isFilled = 0) sebelum dikirim ke endpoint booking.