Server End Point
https://api.ekamira.net/v1/
View Token
API untuk melihat token Production dan Sanbox
Gunakan Username dan Password yang sudah anda miliki
Request :
Method : GET
curlĀ --locationĀ 'https://api.ekamira.net/v1/viewtoken?user={username}&pass={password}
Response :
{
"status": "True",
"message": "Success",
"result": {
"name": "{Name}",
"key_production": "{Token Key Production}",
"key_sanbox": "{Token Key Sanbox}"
}
}
View Trip Available
API untuk melihat jadwal yang tersedia berdasarkan tanggal yang di masukan
Bisa menggunakan Token Production atau Token Sanbox, Response yang diberikan sama
Request :
Method : POST
curl --location 'https://api.ekamira.net/v1/trips' \
--header 'Authorization: Bearer {Token}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'date={yyyy-mm-dd}'
Response :
{
"status": "True",
"message": "Ok",
"type": "sanbox",
"result": [
{
"route": {
"idroute": "7d66bb40813ee6867465aa37cb7306c58c604097cba7344297106064fb7be778",
"direction": "1",
"direction_label": "depart",
"date": "2023-03-28",
"time": "05:30",
"iddeparture": "1",
"departurename": "SURABAYA",
"iddestination": "22",
"destinationname": "PURBALINGGA",
"nameroute": "PURBALINGGA I",
"crew": {
"iddriver1": null,
"namedriver1": null,
"iddriver2": null,
"namedriver2": null,
"idcrew": null,
"namecrew": null,
"idnopol": null,
"nopol": null
},
"boarding": [
{
"id": "0",
"name": "BUNGURASIH",
"idcity": "1",
"city": "SURABAYA",
"telphone": null,
"whatsapp": null,
"address": null
}
]
}
}
]
}
View Seats
API untuk melihat ketersediaan kursi bus
Token Production atau Token Sanbox akan menghasilkan Response yang berbeda
Request :
Method : POST
curl --location 'https://api.ekamira.net/v1/seats' \
--header 'Authorization: Bearer {Token}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'idroute={idroute}'
Response :
{
"status": "True",
"message": "Ok",
"type": "sanbox",
"trip": {
"totalseats": 40,
"used": 2,
"unused": 38,
"date": "2023-03-28",
"time": "17:40",
"departurename": "SURABAYA",
"destinationname": "YOGYAKARTA",
"nameroute": "YOGYAKARTA"
},
"crew": {
"namedriver1": null,
"namedriver2": null,
"namecrew": null,
"nopol": null
},
"result": [
{
"seat": "A1",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A2",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A3",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A4",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A5",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A6",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A7",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A8",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A9",
"status": "Used",
"customer": {
"name": "UPDATE",
"iddeparture": "1",
"departurename": "SURABAYA",
"iddestination": "16",
"destinationname": "YOGYAKARTA"
}
},
{
"seat": "A10",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A11",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A12",
"status": "Used",
"customer": {
"name": "UPDATE",
"iddeparture": "1",
"departurename": "SURABAYA",
"iddestination": "16",
"destinationname": "YOGYAKARTA"
}
},
{
"seat": "A13",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A14",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A15",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A16",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A17",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "A18",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B1",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B2",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B3",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B4",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B5",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B6",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B7",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B8",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B9",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B10",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B11",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B12",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B13",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B14",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B15",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B16",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B17",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B18",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B19",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B20",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B21",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
},
{
"seat": "B22",
"status": "Unused",
"customer": {
"name": null,
"iddeparture": null,
"departurename": null,
"iddestination": null,
"destinationname": null
}
}
]
}
Bookings
API untuk membuat Invoice Baru
Data Kursi di pisah dengan tanda koma (,) A1,A3,B3
Kursi : A1,A3,B3
Service Makan : 0 = Tidak, 1 = Ya
Request :
Method : POST
curl --location 'https://api.ekamira.net/v1/bookings' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'name_customer={name_customer}' \
--data-urlencode 'telp={telp}' \
--data-urlencode 'idroute={idroute}' \
--data-urlencode 'iddeparture={iddeparture}' \
--data-urlencode 'idboarding={idboarding}' \
--data-urlencode 'iddestination={iddestination}' \
--data-urlencode 'passengercount={passengercount}' \
--data-urlencode 'seats={seat1,seat2,seat3}' \
--data-urlencode 'diningservice={0 or 1}' \
--data-urlencode 'description={description}'
Response :
{
"status": "True",
"message": "Ok",
"type": "sanbox",
"result": {
"bookingcode": "NZ50463",
"idinvoice": "6276cf33b572a5c260dd012211ad2af",
"invoicedate": "2023-03-27",
"name_customer": "JONI",
"telp": "085646002192",
"date": "2023-03-28",
"time": "17:40",
"direction": 1,
"direction_label": "depart",
"iddeparture": "1",
"departurename": "SURABAYA",
"iddestination": "16",
"destinationname": "YOGYAKARTA",
"idboarding": "0",
"boardingname": "BUNGURASIH",
"passengercount": "2",
"seats": "A7,A1",
"price": "145000",
"diningservice": 0,
"tolservice": "10000",
"totalprice": 310000,
"description": "Mohon Datang 2 Jam Sebelum Keberangkatan"
}
}
View Bookings
API untuk Bookings yang sudah di buat
Gunakan Idinvoice, Tanggal Bookings atau Tanggal Keberangkatan untuk mencari Data Bookings, gunakan minimal 1 parameter untuk proses pencarian
Request :
Method : POST
curl --location 'https://api.ekamira.net/v1/views' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'idinvoice={idinvoice}' \
--data-urlencode 'invoicedate={yyyy-mm-dd}' \
--data-urlencode 'departuredate={yyyy-mm-dd}'
Response :
{
"status": "True",
"message": "Ok",
"type": "sanbox",
"count": 2,
"result": [
{
"bookingcode": "NZ50463",
"idinvoice": "b572a5c260dd0162556cf332211ad2af",
"invoicedate": "2023-03-27",
"name_customer": "UPDATE",
"telp": "08100009999",
"date": "2023-03-28",
"time": "17:40",
"direction": "1",
"direction_label": "depart",
"iddeparture": "1",
"departurename": "SURABAYA",
"iddestination": "16",
"destinationname": "YOGYAKARTA",
"idboarding": "0",
"boardingname": "BUNGURASIH",
"passengercount": "2",
"seats": null,
"price": "145000",
"diningservice": "0",
"tolservice": "10000",
"totalprice": 310000,
"description": null,
"datecreate": "2023-03-27 02:35:14",
"statusinvoice": "CANCEL",
"qrcode": "",
"datepayment": "",
"crew": {
"iddriver1": null,
"namedriver1": null,
"iddriver2": null,
"namedriver2": null,
"idcrew": null,
"namecrew": null,
"idnopol": null,
"nopol": null
}
},
{
"bookingcode": "ZR74861",
"idinvoice": "eba3b1ea180ac76dd8feb7adebba7ae9",
"invoicedate": "2023-03-27",
"name_customer": "UPDATE",
"telp": "08100009999",
"date": "2023-03-28",
"time": "17:40",
"direction": "1",
"direction_label": "depart",
"iddeparture": "1",
"departurename": "SURABAYA",
"iddestination": "16",
"destinationname": "YOGYAKARTA",
"idboarding": "0",
"boardingname": "BUNGURASIH",
"passengercount": "2",
"seats": "A9,A12",
"price": "145000",
"diningservice": "0",
"tolservice": "10000",
"totalprice": 310000,
"description": null,
"datecreate": "2023-03-27 02:33:38",
"statusinvoice": "PENDING",
"qrcode": "",
"datepayment": "",
"crew": {
"iddriver1": null,
"namedriver1": null,
"iddriver2": null,
"namedriver2": null,
"idcrew": null,
"namecrew": null,
"idnopol": null,
"nopol": null
}
}
]
}
Status
PENDING : Bookings Belum Konfirmasi Pembayaran
PAID : Bookings Sudah Terbayar
CANCEL : Bookings Batal
Update Bookings
API untuk Update Data Bookings yang sudah di buat
Yang bisa di rubah hanya untuk kolom
Nama, Telp, Kursi, Service Makan dan Deskripsi
Request :
Method : POST
curl --location 'https://api.ekamira.net/v1/updates' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'idinvoice={idinvoice}' \
--data-urlencode 'name_customer={name customer}' \
--data-urlencode 'telp={Telp}' \
--data-urlencode 'seats={seat1,seat2}' \
--data-urlencode 'diningservice={0 or 1}' \
--data-urlencode 'description={deskripsi}'
Response :
{
"status": "True",
"message": "Ok",
"type": "sanbox",
"result": {
"idinvoice": "b572a5c260dd0162556cf332211ad2af",
"name_customer": "DONI",
"telp": "081000099XX",
"seats": "A8,A10",
"description": "Datang 2 jam sebelum keberangkatan"
}
}
Confirm Bookings
API untuk konfirmasi booking sudah terbayar
Request :
Method : POST
curl --location 'https://api.ekamira.net/v1/confirm' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'idinvoice={idinvoice}' \
--data-urlencode 'paymentdate={yyyy-mm-dd- hh:ii:ss}' \
Response :
{
"status": "True",
"message": "Ok",
"type": "sanbox",
"result": {
"status": "PAID",
"bookingcode": "ZR74861",
"idinvoice": "eba3b1ea180ac76dd8feb7adebba7ae9",
"idpayment": "435d2782675e90b0a189",
"invoicedate": "2023-03-27",
"name_customer": "UPDATE",
"telp": "08100009999",
"date": "2023-03-28",
"time": "17:40",
"direction": "1",
"direction_label": "depart",
"iddeparture": "1",
"departurename": "SURABAYA",
"iddestination": "16",
"destinationname": "YOGYAKARTA",
"idboarding": "0",
"boardingname": "BUNGURASIH",
"passengercount": "2",
"seats": "A9,A12",
"price": "145000",
"diningservice": "0",
"tolservice": "10000",
"totalprice": 310000,
"description": null,
"qrcode": "67c6f056d479728c2cde0c88f5f70e0f"
}
}
Cancel Bookings
API untuk membatalkan invoice, batas default pembatalan invoice yang sudah terbayar 24 jam sebelum keberangkatan
Request :
Method : POST
curl --location 'https://api.ekamira.net/v1/cancel' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'idinvoice={idinvoice}'
Response :
{
"status": "True",
"message": "Ok",
"type": "sanbox",
"result": {
"status": "CANCEL",
"bookingcode": "ZR74861",
"idinvoice": "eba3b1ea180ac76dd8feb7adebba7ae9"
}
}
