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