Skip to content

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).


https://api.bisabiller.com/api/transport/train/seat-list

Authorization: Bearer <access_token>
Content-Type: application/json

{
"adultQuantity": 1,
"infantQuantity": 1,
"passengers": {
"adult": [
{
"birthDate": "2001-05-24",
"country": "ID",
"email": "[email protected]",
"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": {
"email": "[email protected]",
"fullname": "Test Bisabiller",
"mobileNumber": "081234567890"
}
}
FieldTipeDeskripsi
adultQuantityintegerJumlah penumpang dewasa
infantQuantityintegerJumlah penumpang bayi
passengers.adultarrayData lengkap tiap penumpang dewasa, termasuk preferensi kursi (opsional)
passengers.infantarrayData bayi beserta penanggung jawabnya
trainIdarrayDaftar ID jadwal kereta (biasanya hanya satu ID untuk sekali jalan)
buyerobjectInformasi pembeli tiket

{
"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
]
}
}
}

FieldTipeDeskripsi
errorbooleanStatus error (false jika berhasil)
messagestringPesan status
transactionIdintegerID transaksi seat list
FieldTipeDeskripsi
departurearrayDaftar penumpang dan kursi keberangkatan
returnarrayDaftar penumpang dan kursi kepulangan (jika ada)
FieldTipeDeskripsi
rowintegerNomor baris kursi
columnstringKolom kursi (A, B, C, D)
classstringKelas kursi (biasanya Q)
isFilledintegerStatus kursi (1 = terisi, 0 = tersedia)
groupColumnintegerNomor grup kolom (berguna untuk layout UI seperti tempat duduk berpasangan)

  • Field layout memberikan gambaran visual tempat duduk yang tersedia dalam format baris dan kolom.
  • Penumpang dapat memberikan preferensi kursi melalui field row dan column, namun alokasi tetap tergantung ketersediaan.
  • Data result.return hanya tersedia jika kereta memiliki perjalanan pulang (PP).
  • Gunakan wagonCode, wagonNumber, dan layout untuk membangun UI pemilihan kursi (seat map) secara interaktif.
  • Pastikan seat yang dipilih tersedia (isFilled = 0) sebelum dikirim ke endpoint booking.