Introduction
McEasy menyediakan solusi digital berbasis Internet dan GPS Tracker untuk menjawab kebutuhan operasional logistik dan pelacakan lokasi kendaraan.
Perusahaan kami berdiri sejak tahun 2017 dan terus bertransformasi menjadi terdepan dalam memberikan solusi terintegrasi di bidang transportasi logistik.
Untuk itu kami memberikan fasilitas Open API yang tentunya akan mempermudah dalam proses integrasi dengan McEasy.
Authentication
Setiap melakukan request API ke McEasy, pengguna diwajibkan untuk membuat token
terlebih dahulu.
Token ini nantinya akan di taruh di bagian Header
dengan format Authorization: Bearer <token>
.
Create TMS Token
Setiap request ke (Transportation Management System) TMS API wajib membuat token terlebih dahulu, berikut petunjuk untuk membuat API TMS Token.
HTTP Request
POST https://cloudservice.vsms.co.id/tms_public_api/auth/token/create
Request Form
Form Field | Data Type | Required | Description | Example |
---|---|---|---|---|
domain_name | string | true | Sub-domain dari company yang terdaftar <SUBDOMAIN>.vsms.co.id | test |
username | string | true | Identitas (email) untuk login | test@mceasy.co.id |
password | string | true | Password | test-password |
curl --request POST \
--url https://cloudservice.vsms.co.id/tms_public_api/auth/token/create \
--header 'Content-Type: multipart/form-data' \
--form domain_name=test \
--form username=test@mceasy.co.id \
--form password=test-password
const form = new FormData();
form.append("domain_name", "test");
form.append("username", "test@mceasy.co.id");
form.append("password", "test-password");
const options = {
method: 'POST',
headers: {'Content-Type': 'multipart/form-data; boundary=---011000010111000001101001'}
};
options.body = form;
fetch('https://cloudservice.vsms.co.id/tms_public_api/auth/token/create', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
Success Response
Field | Data Type | Description |
---|---|---|
data | ResponseCreateToken | Object dari ResponseCreateToken |
message | string | Pesan keterangan dari response |
Success Response example:
{
"data": {
"token": "<YOUR TOKEN HERE>"
},
"message": "Success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
data | string | Keterangan yang sesuai |
message | string | Pesan dari sistem |
Invalid response example:
{
"data": "",
"message": "Invalid username or password!"
}
Create VSMS Token
Setiap request ke (Vehicle Smart Management System) VSMS API wajib membuat token terlebih dahulu, berikut petunjuk untuk membuat API VSMS Token.
HTTP Request
POST https://serv.vsms.co.id/api/login
Request JSON
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
domain_name | string | true | Sub-domain dari company yang terdaftar <SUBDOMAIN>.vsms.co.id | test |
username | string | true | Identitas (email) untuk login | test@vsms.co.id |
password | string | true | Password | test-password |
Request Example
{
"domain_name": "test",
"username": "test@vsms.co.id",
"password": "test"
}
curl --request POST \
--url https://serv.vsms.co.id/api/login \
--header 'Content-Type: application/json' \
--data '{
"domain_name": "test",
"username": "test@vsms.co.id",
"password": "test"
}'
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: '{"domain_name":"test","username":"test@vsms.co.id","password":"test"}'
};
fetch('https://serv.vsms.co.id/api/login', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
Success Response
Field | Data Type | Description |
---|---|---|
data | ResponseCreateToken | Object dari ResponseCreateToken |
message | string | Pesan keterangan dari response |
Success response example:
{
"data": {
"token": "<YOUR TOKEN HERE>"
},
"message": "Success"
}
Invalid response example:
{
"data": "User and Password invalid",
"message": "Failed"
}
Transportation Management System
Sistem manajemen logistik untuk penanganan order, alokasi armada dan pengemudi, pemantauan proses pengiriman hingga pengelolaan data dan kontrak pelanggan.
Untuk memulai berikut gambaran awal untuk proses integrasi dengan McEasy:
-
Digunakan untuk singkroniasai data ERP dengan data McEasy.
-
Ketika data antara ERP dan McEasy sudah sama maka dapat dibuat order yang merepresentasikan Surat Perintah Jalan (SPJ).
-
Saat Surat Perintah Jalan (SPJ) sudah terbuat maka dapat dialokasikan armada / kendaraan yang akan memproses pengiriman.
Dari Integration Flow kemudian kita bisa memulai untuk Onboarding dengan diagram sebagai berikut:
Berikut API yang memungkinkan untuk digunakan untuk Onboarding:
Setelah selesai Onboarding / singkronisasi data kemudian dapat dilanjutkan proses berikut:
Apabila ada yang masih belum bisa mendukung sistem ERP Anda ataupun ada yang ditanyakan bisa menghubungi kami lebih lanjut.
Order
Order merupakan fitur TMS yang merepresentasikan Surat Jalan yang dapat digunakan untuk penggunaan internal maupun dikirimkan ke customer
Berikut proses yang diperlukan untuk membuat sebuah Order:
API yang memungkinkan untuk digunakan untuk Pembuatan Order adalah sebagai berikut:
Create Order
Membuat data Delivery Order yang untuk customer yang berisikan tempat muat, bongkar, tanggal keberangkatan, dan produk-produk (opsional) apa saja yang akan dibawa.
HTTP Request
POST https://cloudservice.vsms.co.id/tms_public_api/order
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
customer_name | string | true | Nama Pelanggan | PT. Terang |
shipment_number | string | false | Nomor Pengiriman | Test-PublicAPI-002 |
departure_time | date(YYYY-MM-DDTHH-mm-ss) | true | Waktu Keberangkatan | 2022-05-11T08:30:00 |
fleet_category | string | true | Kategori Kendaraan | Trailer |
fleet_type | string | true | Tipe Kendaraan | 40ft |
origin | []Origin | true | Object Origin | |
destination | []Destination | true | Object Destination | |
item | []Item | true | Object Item | |
note | string | false | Catatan Pengiriman | Test-FromPublicAPI-Note2 |
batch_number | string | false | Kelompok Pengiriman | GFZ-0012 |
cod | integer | false | Nominal COD | null |
status | string | true | Status Order | Draft , Confirmed |
Request Example
{
"customer_name": "PT. Terang",
"shipment_number": "Test-PublicAPI-002",
"departure_time": "2022-05-11T08:30:00",
"fleet_category": "Trailer",
"fleet_type": "40ft",
"origin": [
{
"name": "SBY WH"
},
{
"name": "Malang Pool"
},
{
"name": "SBY Warehouse 01"
}
],
"destination": [
{
"name": "SBY Warehouse 02"
},
{
"name": "Gubeng"
}
],
"item": [
{
"name": "Barang 1",
"qty": "1",
"volume": "2",
"weight": "3"
}
],
"note": "Test-FromPublicAPI-Note2",
"batch_number": "GFZ-0012",
"cod": null,
"status": "DRAFT"
}
curl --location --request POST 'https://cloudservice.vsms.co.id/tms_public_api/order' \
--header 'Authorization: Bearer <YOUR API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"customer_name": "PT. Terang",
"shipment_number": "Test-PublicAPI-002",
"departure_time": "2022-05-11T08:30:00",
"fleet_category": "Trailer",
"fleet_type": "40ft",
"origin": [
{
"name": "SBY WH"
},
{
"name": "Malang Pool"
},
{
"name": "SBY Warehouse 01"
}
],
"destination": [
{
"name": "SBY Warehouse 02"
},
{
"name": "Gubeng"
}
],
"item": [
{
"name": "Barang 1",
"qty": "1",
"volume": "2",
"weight": "3"
}
],
"note": "Test-FromPublicAPI-Note2",
"batch_number": "GFZ-0012",
"cod": null,
"status": "DRAFT"
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"customer_name": "PT. Terang",
"shipment_number": "Test-PublicAPI-002",
"departure_time": "2022-05-11T08:30:00",
"fleet_category": "Trailer",
"fleet_type": "40ft",
"origin": [
{
"name": "SBY WH"
},
{
"name": "Malang Pool"
},
{
"name": "SBY Warehouse 01"
}
],
"destination": [
{
"name": "SBY Warehouse 02"
},
{
"name": "Gubeng"
}
],
"item": [
{
"name": "Barang 1",
"qty": "1",
"volume": "2",
"weight": "3"
}
],
"note": "Test-FromPublicAPI-Note2",
"batch_number": "GFZ-0012",
"cod": null,
"status": "DRAFT"
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/order", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
data | ResponseCreateOrder | ResponseCreateOrder |
message | string | Keterangan response |
Success Response Example
{
"data": {
"order_delivery_number": "DO_Number",
"status": "Draft"
},
"message": "Success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
List Order
Menampilkan daftar Delivery Order yang telah dibuat dengan filter tanggal maupun status
HTTP Request
GET https://cloudservice.vsms.co.id/tms_public_api/order
Request Query
Parameter | Data Type | Required | Description | Example |
---|---|---|---|---|
start_date | date(YYYY-MM-DD) | true | Filter Tanggal Awal Create Order | 2022-04-01 |
end_date | date(YYYY-MM-DD) | true | Filter Tanggal Akhir Create Order | 2022-04-07 |
filter_statuses[] | []StatusOrder | true | Filter Status Order | Draft , Confirmed , Scheduled , Started , Delivered , Canceled |
Request Example
curl --location -g --request GET 'https://cloudservice.vsms.co.id/tms_public_api/order?start_date=2022-04-01&end_date=2022-04-07&=&filter_statuses[]=Started&filter_statuses[]=Confirmed'
var requestOptions = {
method: 'GET',
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/order?start_date=2022-04-01&end_date=2022-04-07&=&filter_statuses[]=Started&filter_statuses[]=Confirmed", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
data | ResponseListOrder | ResponseListOrder |
message | string | Keterangan response |
Success Response Example
{
"data": [
{
"order_number": "DO-00071",
"customer_name": "PT Nescoffee",
"departure_date": "2022-01-03",
"fleet_category": "Super WIng",
"fleet_type": "Hino Wing Box Lohan FL235JW",
"license_plate": "L 7777 AD",
"driver_name": "mcdriver",
"origins": [
"Sby Kodam 5"
],
"destinations": [
"sby pagesangan"
],
"note": "",
"shipment_number": "",
"marketing_name": "Administrator",
"status": "Started"
}
],
"message": "Success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Detail Order
Menampilkan detail Delivery Order yang telah dibuat serta melihat riwayat perubahan status Order
HTTP Request
GET https://cloudservice.vsms.co.id/tms_public_api/order/<YOUR DO-ID>
Request Key
Key | Data Type | Required | Description | Example |
---|---|---|---|---|
<YOUR DO-ID> |
string | true | Nomor Delivery Order | DO-00958 |
Request Example
curl --location --request GET 'https://cloudservice.vsms.co.id/tms_public_api/order/DO-00958'
var requestOptions = {
method: 'GET',
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/order/DO-00958", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
data | ResponseDetailOrder | ResponseDetailOrder |
message | string | Keterangan response |
Success Response Example
{
"data": {
"customer_name": "PT Nescoffee",
"departure_date": "2022-01-03",
"destinations": [
"sby pagesangan"
],
"driver_name": "mcdriver",
"fleet_category": "Super WIng",
"fleet_type": "Hino Wing Box Lohan FL235JW",
"goods_type": "",
"items": [],
"license_plate": "L 7777 AD",
"marketing_name": "Administrator",
"note": "",
"order_number": "DO-00071",
"origins": [
"Sby Kodam 5"
],
"service_time": "",
"shipment_number": "",
"status": "Started",
"status_history": [
{
"datetime": "2022-01-03 10:43:05",
"status": "Scheduled"
},
{
"datetime": "2022-01-03 10:43:24",
"status": "Started"
}
],
"temperature_max": "",
"temperature_min": "",
"window_end_time": "",
"window_start_time": ""
},
"message": "Success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Fleet Order
Fleet Order merupakan fitur TMS yang merepresentasikan Surat Perintah Kerja kepada driver
Perikut untuk gambaran proses yang dapat diimplementasikan:
API yang memungkinkan untuk digunakan untuk pembuatan Fleet Order adalah sebagai berikut:
Create Fleet Order
Membuat Fleet Order untuk mengalokasikan armada yang ada dalam pengiriman Delivery Order yang statusnya sudah confirmed
HTTP Request
POST https://cloudservice.vsms.co.id/tms_public_api/order-fleet
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
order_freight | []OrderFreight | true | Array dari OrderFreight | OrderFreight |
Request Example
{
"orders_freight": [
{
"start_order": "2022-08-12 15:30:00",
"fleet": "L 7060 KKV",
"driver": "Didi",
"ship_from": "Lacuna Cafe",
"round_trip": true,
"fleet_reference": "Public API",
"weight": 100,
"total_distance": 18.54,
"eta": "2022-09-08 17:00:00",
"destination_units": [
{
"order_delivery": "DO-02404",
"unit_type": "Pickup",
"address": "Exit Sinarmas",
"distance": 6.49,
"eta": "2022-09-08 16:09:00"
},
{
"order_delivery": "DO-02404",
"unit_type": "Destination",
"address": "D Karang Pilang",
"distance": 12.15,
"eta": "2022-09-08 16:57:00"
}
]
}
]
}
curl --location --request POST 'https://cloudservice.vsms.co.id/tms_public_api/order-fleet' \
--header 'Authorization: Bearer <YOUR API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"orders_freight": [
{
"start_order": "2022-08-12 15:30:00",
"fleet": "L 7060 KKV",
"driver": "Didi",
"ship_from": "Lacuna Cafe",
"round_trip": true,
"fleet_reference": "Public API",
"weight": 100,
"total_distance": 18.54,
"eta": "2022-09-08 17:00:00",
"destination_units": [
{
"order_delivery": "DO-02404",
"unit_type": "Pickup",
"address": "Exit Sinarmas",
"distance": 6.49,
"eta": "2022-09-08 16:09:00"
},
{
"order_delivery": "DO-02404",
"unit_type": "Destination",
"address": "D Karang Pilang",
"distance": 12.15,
"eta": "2022-09-08 16:57:00"
}
]
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"orders_freight": [
{
"start_order": "2022-08-12 15:30:00",
"fleet": "L 7060 KKV",
"driver": "Didi",
"ship_from": "Lacuna Cafe",
"round_trip": true,
"fleet_reference": "Public API",
"weight": 100,
"total_distance": 18.54,
"eta": "2022-09-08 17:00:00",
"destination_units": [
{
"order_delivery": "DO-02404",
"unit_type": "Pickup",
"address": "Exit Sinarmas",
"distance": 6.49,
"eta": "2022-09-08 16:09:00"
},
{
"order_delivery": "DO-02404",
"unit_type": "Destination",
"address": "D Karang Pilang",
"distance": 12.15,
"eta": "2022-09-08 16:57:00"
}
]
}
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/order-fleet", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
created | []ResponseCreateFleetOrder | ResponseCreateFleetOrder |
failed | []string | Keterangan error dari hasil Create Order |
message | string | Keterangan response |
Success Response Example
{
"created": [
{
"fo_number": "FO-00000",
"id_fo": 1
}
],
"failed": [],
"message": "success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Detail Fleet Order
Menampilkan detail Fleet Order yang telah berhasil terbuat maupun yang telah terselesaikan
HTTP Request
GET https://cloudservice.vsms.co.id/tms_public_api/order-fleet/<FO-NUMBER>
Request Key
Parameter | Data Type | Required | Description | Example |
---|---|---|---|---|
<YOUR FO-NUMBER> |
string | true | Nomor Fleet Order | FO-00053 |
Request Example
curl --location --request GET 'https://cloudservice.vsms.co.id/tms_public_api/order-fleet/FO-00001' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR API TOKEN>'
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
var requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/order-fleet/FO-00001", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
data | ResponseDetailFleetOrder | ResponseDetailFleetOrder |
message | string | Keterangan response |
Success Response Example
{
"data": {
"driver_name": "Driver 001",
"end_time": "2022-02-03 17:17:02",
"fleet_category": "TRUK",
"fleet_order_number": "FO-00053",
"fleet_type": "CDD - 4000",
"license_plate": "L 9956 DF",
"order_deliveries": [
{
"customer": "PT. ABC",
"items": [
{
"item_name": "beras",
"quantity": 1.0,
"volume": 2.0,
"weight": 1000.0
},
{
"item_name": "beras",
"quantity": 1.0,
"volume": 2.0,
"weight": 1000.0
},
{
"item_name": "beras",
"quantity": 1.0,
"volume": 2.0,
"weight": 1000.0
}
],
"order_number": "DO-00117"
}
],
"seq_order_list": [
{
"address": "Location One",
"app_status": "Ended",
"arrived_time": "",
"departed_time": "",
"eta": "2022-02-02 13:34:00",
"mileage": 78.17,
"order_number": "DO-00117",
"receiver_name": "oke",
"rejection_reason": "",
"seq": 1,
"status": "Picked",
"time_app_update": "2022-02-03 17:14:50",
"type": "P"
},
{
"address": "Location Two",
"app_status": "Ended",
"arrived_time": "",
"departed_time": "",
"eta": "2022-02-02 14:35:00",
"mileage": 0.85,
"order_number": "DO-00117",
"receiver_name": "oke2",
"rejection_reason": "",
"seq": 2,
"status": "Delivered",
"time_app_update": "2022-02-03 17:15:55",
"type": "D"
}
],
"ship_from": "Matos",
"start_time": "2022-02-03 17:08:41",
"status": "Ended",
"total_volume": 6.0,
"total_weight": 3000.0
},
"message": "Success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
List Fleet Order
Melihat data-data Fleet Order dengan filter tanggal
HTTP Request
GET https://cloudservice.vsms.co.id/tms_public_api/order-fleet
Request Query
Parameter | Data Type | Required | Description | Example |
---|---|---|---|---|
start_date | date(YYYY-MM-DD) | true | Filter Tanggal Awal Create Order | 2022-02-02 |
end_date | date(YYYY-MM-DD) | true | Filter Tanggal Akhir Create Order | 2022-03-03 |
Request Example
curl --location --request GET 'https://cloudservice.vsms.co.id/tms_public_api/order-fleet?start_date=2020-02-02&end_date=2022-03-03' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR API TOKEN>'
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
var requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/order-fleet?start_date=2022-02-02&end_date=2023-03-03", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
data | []ResponseListFleetOrder | ResponseListFleetOrder |
message | string | Keterangan response |
Success Response Example
{
"data": [
{
"driver_name": "Budi",
"end_time": "",
"fleet_order_number": "FO-00001",
"license_plate": "L 1234 LL",
"start_time": "2022-02-03 13:13:00",
"status": "Canceled"
},
],
"message": "success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Fleet
Managemen Master Data Armada / Kendaraan yang akan digunakan untuk proses pengiriman
Create Fleet
Menambahkan armada / kendaraan yang aktif dipakai untuk proses pengiriman / pengangkutan
HTTP Request
POST https://cloudservice.vsms.co.id/tms_public_api/fleet
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
fleet | []RequestFleet | true | Data-data Armada yang dapat diinputkan secara banyak | RequestFleet |
Request Example
{
"fleet": [
{
"plate_number": "L 1111 YY",
"fleet_brand": "Daihatsu",
"chassis_number": "XXXX324e",
"engine_number": "XXX34236",
"fleet_category": "L300",
"fleet_type": "L300",
"box_type": "",
"thermo_type": "",
"pool": "",
"unit_year": "2016",
"fleet_age_years": "7",
"last_odometer": "15000",
"karoseri": "",
"volume_cbm": "1000",
"start_time": "",
"end_time": "",
"driver_1st": "",
"driver_2nd": "",
"gps_vendor": "",
"gps_tracker": "",
"temperature_min": -10,
"temperature_max": 3
}
]
}
curl --location --request POST 'https://cloudservice.vsms.co.id/tms_public_api/fleet' \
--header 'Authorization: Bearer <YOUT API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"fleet": [
{
"plate_number": "L 1111 YY",
"fleet_brand": "Daihatsu",
"chassis_number": "XXXX324e",
"engine_number": "XXX34236",
"fleet_category": "L300",
"fleet_type": "L300",
"box_type": "",
"thermo_type": "",
"pool": "",
"unit_year": "2016",
"fleet_age_years": "7",
"last_odometer": "15000",
"karoseri": "",
"volume_cbm": "1000",
"start_time": "",
"end_time": "",
"driver_1st": "",
"driver_2nd": "",
"gps_vendor": "",
"gps_tracker": "",
"temperature_min": -10,
"temperature_max": 3
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"fleet": [
{
"plate_number": "L 1111 YY",
"fleet_brand": "Daihatsu",
"chassis_number": "XXXX324e",
"engine_number": "XXX34236",
"fleet_category": "L300",
"fleet_type": "L300",
"box_type": "",
"thermo_type": "",
"pool": "",
"unit_year": "2016",
"fleet_age_years": "7",
"last_odometer": "15000",
"karoseri": "",
"volume_cbm": "1000",
"start_time": "",
"end_time": "",
"driver_1st": "",
"driver_2nd": "",
"gps_vendor": "",
"gps_tracker": "",
"temperature_min": -10,
"temperature_max": 3
}
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/fleet", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
Data | string | Keterangan response |
Success Response Example
{
"Data": "Success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
List Fleet
Melihat kendaraan - kendaraan yang sudah terdaftar
HTTP Request
GET https://cloudservice.vsms.co.id/tms_public_api/fleet
Request Example
curl --location --request GET 'https://cloudservice.vsms.co.id/tms_public_api/fleet' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR API TOKEN>'
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
var raw = "";
var requestOptions = {
method: 'GET',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/fleet", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
data | []FleetList | Data-data Kendaraan / Armada |
message | string | Keterangan response |
Success Response Example
{
"data": [
{
"fleet_active": null,
"fleet_category": "CDD Bak Terbuka",
"fleet_id": 1,
"fleet_name": "L 1345 BV"
}
]
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Update Fleet
Mengubah data kendaraan sesuai nomor polisi yang didaftarkan
HTTP Request
PATCH https://cloudservice.vsms.co.id/tms_public_api/fleet/<PLATE_NUMBER>
Request Key
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
<PLATE_NUMBER> |
string (urlencoded) | true | Plate number / Fleet Name | L%201324%20P, Mitsubishi%2FL%201111%2043 |
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
fleet | []RequestFleet | true | Data-data Armada yang dapat diinputkan secara banyak | RequestFleet |
Request Example
{
"fleet": [
{
"plate_number": "L 1111 YY",
"fleet_brand": "Daihatsu",
"chassis_number": "XXXX324e",
"engine_number": "XXX34236",
"fleet_category": "L300",
"fleet_type": "L300",
"box_type": "Wet",
"thermo_type": "",
"pool": "",
"unit_year": "2022",
"fleet_age_years": "0",
"last_odometer": "50",
"karoseri": "Tentrem",
"volume_cbm": "3000",
"start_time": "05:00:00",
"end_time": "17:00:00",
"driver_1st": "",
"driver_2nd": null,
"gps_vendor": "McEasy",
"gps_tracker": "",
"temperature_min": null,
"temperature_max": null
}
]
}
curl --location --request PATCH 'https://cloudservice.vsms.co.id/tms_public_api/fleet/Daihatsu%2FL%201112%20YY' \
--header 'Authorization: Bearer <YOUR API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"fleet": [
{
"plate_number": "L 1111 YY",
"fleet_brand": "Daihatsu",
"chassis_number": "XXXX324e",
"engine_number": "XXX34236",
"fleet_category": "L300",
"fleet_type": "L300",
"box_type": "Wet",
"thermo_type": "",
"pool": "",
"unit_year": "2022",
"fleet_age_years": "0",
"last_odometer": "50",
"karoseri": "Tentrem",
"volume_cbm": "3000",
"start_time": "05:00:00",
"end_time": "17:00:00",
"driver_1st": "",
"driver_2nd": null,
"gps_vendor": "McEasy",
"gps_tracker": "",
"temperature_min": null,
"temperature_max": null
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"fleet": [
{
"plate_number": "L 1111 YY",
"fleet_brand": "Daihatsu",
"chassis_number": "XXXX324e",
"engine_number": "XXX34236",
"fleet_category": "L300",
"fleet_type": "L300",
"box_type": "Wet",
"thermo_type": "",
"pool": "",
"unit_year": "2022",
"fleet_age_years": "0",
"last_odometer": "50",
"karoseri": "Tentrem",
"volume_cbm": "3000",
"start_time": "05:00:00",
"end_time": "17:00:00",
"driver_1st": "",
"driver_2nd": null,
"gps_vendor": "McEasy",
"gps_tracker": "",
"temperature_min": null,
"temperature_max": null
}
]
});
var requestOptions = {
method: 'PATCH',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/fleet/Daihatsu%2FL%201112%20YY", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
data | ResponseUpdateFleet | Keterangan response fleet yang berhasil terupdate |
message | string | Keterangan response |
Success Response Example
{
"data": {
"fleet": "L 1113 YY updated successfully"
},
"message": "Success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Driver
Managemen Master Data Pengemudi yang akan bertugas dalam proses pengiriman
Create Driver
Menambahkan pengemudi yang akan menjalankan proses pengiriman / pengangkutan
HTTP Request
POST https://cloudservice.vsms.co.id/tms_public_api/master/driver
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
driver | []RequestDriver | true | Kumpulan driver yang ingin ditambahkan | RequestDriver |
Request Example
{
"driver": [
{
"name": "Driver Test 4",
"address": "Jl. Sawojajar II",
"place_of_birth": "Malang",
"date_of_birth": "1997-02-02",
"phone_number": "0853813513",
"joined_date": "2022-08-31",
"place_of_recruitment": "Surabaya",
"ktp_number": "61341351313",
"marital_status": "Lajang",
"bank_acc_number": "15378513",
"bpjs_kes_number": "917359816395",
"bpjs_jht_number": "35196871513",
"jaminan": "Harta",
"family_phone_1": "",
"family_phone_2": null,
"reference": null,
"driver_status": [
{
"fleet_category": "Truck",
"status": "Active"
}
],
"license_type": [
{
"license_type": "sim c",
"license_number": "",
"expired": null
}
],
"job_experience": [
{
"experience": "Driver Patas"
}
]
}
]
}
curl --location --request POST 'https://cloudservice.vsms.co.id/tms_public_api/master/driver' \
--header 'Authorization: Bearer <YOUR API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"driver": [
{
"name": "Driver Test 4",
"address": "Jl. Sawojajar II",
"place_of_birth": "Malang",
"date_of_birth": "1997-02-02",
"phone_number": "0853813513",
"joined_date": "2022-08-31",
"place_of_recruitment": "Surabaya",
"ktp_number": "61341351313",
"marital_status": "Lajang",
"bank_acc_number": "15378513",
"bpjs_kes_number": "917359816395",
"bpjs_jht_number": "35196871513",
"jaminan": "Harta",
"family_phone_1": "",
"family_phone_2": null,
"reference": null,
"driver_status": [
{
"fleet_category": "Truck",
"status": "Active"
}
],
"license_type": [
{
"license_type": "sim c",
"license_number": "",
"expired": null
}
],
"job_experience": [
{
"experience": "Driver Patas"
}
]
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"driver": [
{
"name": "Driver Test 4",
"address": "Jl. Sawojajar II",
"place_of_birth": "Malang",
"date_of_birth": "1997-02-02",
"phone_number": "0853813513",
"joined_date": "2022-08-31",
"place_of_recruitment": "Surabaya",
"ktp_number": "61341351313",
"marital_status": "Lajang",
"bank_acc_number": "15378513",
"bpjs_kes_number": "917359816395",
"bpjs_jht_number": "35196871513",
"jaminan": "Harta",
"family_phone_1": "",
"family_phone_2": null,
"reference": null,
"driver_status": [
{
"fleet_category": "Truck",
"status": "Active"
}
],
"license_type": [
{
"license_type": "sim c",
"license_number": "",
"expired": null
}
],
"job_experience": [
{
"experience": "Driver Patas"
}
]
}
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/master/driver", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
created | []ResponseCreateDriver | Data Driver yang berhasil terbuat |
failed | [] | Deprecated |
message | string | Keterangan response |
Success Response Example
{
"created": [
{
"id": 1279,
"name": "Driver Test 5"
}
],
"failed": [],
"message": "success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Update Driver
Mengubah data-data pribadi pengemudi berdasarkan namanya
HTTP Request
PATCH https://cloudservice.vsms.co.id/tms_public_api/master/driver/<DRIVER_NAME>
Request Key
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
<DRIVER_NAME> |
RequestDriver.name |
true | Nama driver yang ingin diubah | Anton |
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
driver | []RequestDriver | true | Kumpulan driver yang ingin ditambahkan | RequestDriver |
Request Example
{
"driver" : [
{
"name" : "Driver Test 5",
"address" : "Jl. Sawojajar II",
"place_of_birth" : "Malang",
"date_of_birth" : "1997-02-02",
"phone_number" : "0853813513",
"joined_date" : "2022-08-31",
"place_of_recruitment" : "Surabaya",
"ktp_number" : "61341351313",
"marital_status" : "Lajang",
"bank_acc_number" : "15378513",
"bpjs_kes_number" : "917359816395",
"bpjs_jht_number" : "35196871513",
"jaminan" : "Harta",
"family_phone_1" : "",
"family_phone_2" : "",
"reference" : "",
"driver_status" : [
{
"old_fleet_category" : "Truck",
"new_fleet_category" : "Truck",
"status" : "Active"
}
],
"license_type" : [
{
"old_license_type" : "sim c",
"new_license_type" : "sim c",
"license_number" : "",
"expired" : null
}
],
"job_experience" : [
{
"old_experience": "Driver Patas",
"new_experience": "Driver Patas"
}
]
}
]
}
Success Response
Field | Data Type | Description |
---|---|---|
message | string | Keterangan response |
Success Response Example
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Customer
Managemen Master Data Pelanggan yang digunakan sebagai pemesan Order sesuai alamat-alamat yang akan dituju untuk proses bongkar(Drop) muat (Pick)
Create Customer
Menambahkan data customer / business partner yang memesan produk / armada dan juga dapat berperan sebagai tempat muat (Pick) maupun tempat bongkar (Drop)
HTTP Request
POST https://cloudservice.vsms.co.id/tms_public_api/master/customer
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
customer | []RequestCustomer | true | Kumpulan customer yang ingin ditambahkan | RequestCustomer |
Request Example
{
"customer": [
{
"name": "Cust_Test 001",
"alias": "CP1",
"tax_number": "513831",
"industry_category": "",
"marketing_name": "",
"contact_person": [
{
"contact_name": "public",
"phone_number": "08368154613",
"position": "Admin",
"email": ""
}
],
"special_note": [
{
"note": "Pahit"
},
{
"note": "Manis"
}
],
"address": [
{
"location_name": "Brew.la",
"sector": null,
"address": "BREW.LA, Sawojajar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65139",
"category": "",
"contact_person": "",
"phone_number": "",
"type_poi": "Circle",
"radius": 100.0,
"latitude": "-7.96907150",
"longitude": "112.66126220",
"start_window_time": "08:00",
"end_window_time": "12:00",
"service_time": 60
}
]
}
]
}
curl --location --request POST 'https://cloudservice.vsms.co.id/tms_public_api/master/customer' \
--header 'Authorization: Bearer <YOUR API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"customer": [
{
"name": "Cust_Test 001",
"alias": "CP1",
"tax_number": "513831",
"industry_category": "",
"marketing_name": "",
"contact_person": [
{
"contact_name": "public",
"phone_number": "08368154613",
"position": "Admin",
"email": ""
}
],
"special_note": [
{
"note": "Pahit"
},
{
"note": "Manis"
}
],
"address": [
{
"location_name": "Brew.la",
"sector": null,
"address": "BREW.LA, Sawojajar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65139",
"category": "",
"contact_person": "",
"phone_number": "",
"type_poi": "Circle",
"radius": 100.0,
"latitude": "-7.96907150",
"longitude": "112.66126220",
"start_window_time": "08:00",
"end_window_time": "12:00",
"service_time": 60
}
]
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"customer": [
{
"name": "Cust_Test 001",
"alias": "CP1",
"tax_number": "513831",
"industry_category": "",
"marketing_name": "",
"contact_person": [
{
"contact_name": "public",
"phone_number": "08368154613",
"position": "Admin",
"email": ""
}
],
"special_note": [
{
"note": "Pahit"
},
{
"note": "Manis"
}
],
"address": [
{
"location_name": "Brew.la",
"sector": null,
"address": "BREW.LA, Sawojajar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65139",
"category": "",
"contact_person": "",
"phone_number": "",
"type_poi": "Circle",
"radius": 100,
"latitude": "-7.96907150",
"longitude": "112.66126220",
"start_window_time": "08:00",
"end_window_time": "12:00",
"service_time": 60
}
]
}
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/master/customer", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
created | []ResponseCreateCustomer | Data Pelanggan yang berhasil terbuat |
failed | [] | Deprecated |
message | string | Keterangan response |
Success Response Example
{
"created": [
{
"id": 848,
"name": "Cust_Test 001"
}
],
"failed": [],
"message": "success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Update Customer
Mengubah data customer maupun alamat customer yang sudah tersimpan dalam sistem
HTTP Request
PATCH https://cloudservice.vsms.co.id/tms_public_api/master/customer/<CUSTOMER_ID>
Request Key
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
<CUSTOMER_ID> |
integer | true | ID Unik pelanggan | 100 |
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
customer | []RequestCustomerUpdate | true | Kumpulan customer yang ingin diupdate | RequestCustomerUpdate |
Request Example
{
"customer": [
{
"name": "Cust_Test 004",
"alias": "CP1",
"tax_number": "513831",
"industry_category": "Kimia",
"marketing_name": "wahyu ade",
"contact_person": [
{
"old_contact_name": "public",
"new_contact_name": "public",
"phone_number": "08368154613",
"position": "Admin",
"email": "admin@cobaperikanan.com",
"delete_contact": false
}
],
"special_note": [
{
"old_note": "Pahit",
"delete_note": true
},
{
"old_note": "Manis",
"new_note": "Manis Asam",
"delete_note": false
}
],
"address": [
{
"old_location_name": "Brew.la",
"new_location_name": "Brew.la test",
"sector": null,
"address": "BREW.LA, Sawojajar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65139",
"category": "",
"contact_person": "",
"phone_number": "",
"type_poi": "Circle",
"radius": 100.0,
"latitude": "-7.96907150",
"longitude": "112.66126220",
"start_window_time": "08:00",
"end_window_time": "12:00",
"service_time": 60,
"delete_location_name": false
}
]
}
]
}
curl --location --request PATCH 'https://cloudservice.vsms.co.id/tms_public_api/master/customer/850' \
--header 'Authorization: Bearer <YOUR API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"customer": [
{
"name": "Cust_Test 004",
"alias": "CP1",
"tax_number": "513831",
"industry_category": "Kimia",
"marketing_name": "wahyu ade",
"contact_person": [
{
"old_contact_name": "public",
"new_contact_name": "public",
"phone_number": "08368154613",
"position": "Admin",
"email": "admin@cobaperikanan.com",
"delete_contact": false
}
],
"special_note": [
{
"old_note": "Pahit",
"delete_note": true
},
{
"old_note": "Manis",
"new_note": "Manis Asam",
"delete_note": false
}
],
"address": [
{
"old_location_name": "Brew.la",
"new_location_name": "Brew.la test",
"sector": null,
"address": "BREW.LA, Sawojajar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65139",
"category": "",
"contact_person": "",
"phone_number": "",
"type_poi": "Circle",
"radius": 100.0,
"latitude": "-7.96907150",
"longitude": "112.66126220",
"start_window_time": "08:00",
"end_window_time": "12:00",
"service_time": 60,
"delete_location_name": false
}
]
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"customer": [
{
"name": "Cust_Test 004",
"alias": "CP1",
"tax_number": "513831",
"industry_category": "Kimia",
"marketing_name": "wahyu ade",
"contact_person": [
{
"old_contact_name": "public",
"new_contact_name": "public",
"phone_number": "08368154613",
"position": "Admin",
"email": "admin@cobaperikanan.com",
"delete_contact": false
}
],
"special_note": [
{
"old_note": "Pahit",
"delete_note": true
},
{
"old_note": "Manis",
"new_note": "Manis Asam",
"delete_note": false
}
],
"address": [
{
"old_location_name": "Brew.la",
"new_location_name": "Brew.la test",
"sector": null,
"address": "BREW.LA, Sawojajar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65139",
"category": "",
"contact_person": "",
"phone_number": "",
"type_poi": "Circle",
"radius": 100,
"latitude": "-7.96907150",
"longitude": "112.66126220",
"start_window_time": "08:00",
"end_window_time": "12:00",
"service_time": 60,
"delete_location_name": false
}
]
}
]
});
var requestOptions = {
method: 'PATCH',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/master/customer/850", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
message | string | Keterangan response |
Success Response Example
{
"message": "success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Address
Managemen Master Data Alamat owner / perusahaan yang bisa berupa pool, warehouse, kantor cabang, checkpoint dan lain-lain
Create Address
Menambahkan data alamat customer yang dapat digunakan untuk tempat bongkar (Drop) dan muat (Pick)
Batasan:
Untuk menambahkan pool / kantor cabang / warehouse dari owner harus melalui website TMS
HTTP Request
POST https://cloudservice.vsms.co.id/tms_public_api/master/address
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
address | []RequestAddress | true | Kumpulan alamat yang akan digunakan untuk Muat(Pick) dan Bongkar (Drop) | RequestAddress |
Request Example
{
"address": [
{
"customer_name": "Coffe District Malang",
"location_name": "Coffe Logic8 Malang",
"sector": "Sector 3",
"address": "CoffeeLogic, Jalan Sudimoro, Tunjungsekar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65142",
"category": "pool",
"contact_person": "Soleha",
"phone_number": "0583174685",
"type_poi": "Polygon",
"radius": null,
"latitude": "-7.93394569,-7.93355252,-7.93239198,-7.93289407,-7.93282234",
"longitude": "112.62931852,112.62854160,112.62935163,112.62955233,112.63010709",
"start_window_time": null,
"end_window_time": null,
"service_time": null
}
]
}
curl --location --request POST 'https://cloudservice.vsms.co.id/tms_public_api/master/address' \
--header 'Authorization: Bearer <YOUR API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"address": [
{
"customer_name": "Cust_Test 002",
"location_name": "Coffe Logic8 Malang",
"sector": "",
"address": "CoffeeLogic, Jalan Sudimoro, Tunjungsekar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65142",
"category": "pool",
"contact_person": "Soleha",
"phone_number": "0583174685",
"type_poi": "Polygon",
"radius": null,
"latitude": "-7.93394569,-7.93355252,-7.93239198,-7.93289407,-7.93282234",
"longitude": "112.62931852,112.62854160,112.62935163,112.62955233,112.63010709",
"start_window_time": null,
"end_window_time": null,
"service_time": null
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"address": [
{
"customer_name": "Cust_Test 002",
"location_name": "Coffe Logic8 Malang",
"sector": "",
"address": "CoffeeLogic, Jalan Sudimoro, Tunjungsekar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65142",
"category": "pool",
"contact_person": "Soleha",
"phone_number": "0583174685",
"type_poi": "Polygon",
"radius": null,
"latitude": "-7.93394569,-7.93355252,-7.93239198,-7.93289407,-7.93282234",
"longitude": "112.62931852,112.62854160,112.62935163,112.62955233,112.63010709",
"start_window_time": null,
"end_window_time": null,
"service_time": null
}
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/master/address", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
created | []ResponseCreateAddress | Data Alamat yang berhasil terbuat |
failed | [] | Deprecated |
message | string | Keterangan response |
Success Response Example
{
"created": [
{
"id": 3030,
"name": "Coffe Logic8 Malang"
}
],
"failed": [],
"message": "success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Update Address
Mengubah data alamat yang sudah tersimpan dalam sistem sebelumnya
HTTP Request
PATCH https://cloudservice.vsms.co.id/tms_public_api/master/address/<ADDRESS_NAME>
Request Key
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
<ADDRESS_NAME> |
RequestAddress.location_name |
true | Alamat yang ingin diupdate | PT Otto Menara Globalindo |
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
address | []RequestAddressUpdate | true | Kumpulan alamat yang akan digunakan untuk Muat(Pick) dan Bongkar (Drop) | RequestAddressUpdate |
Request Example
{
"address": [
{
"customer_name": "Cust_Test 002",
"location_name": "Coffe Logic8 Malang",
"sector": "",
"address": "CoffeeLogic, Jalan Sudimoro, Tunjungsekar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65142",
"category": "pool",
"contact_person": "Soleha",
"phone_number": "0583174685",
"type_poi": "Polygon",
"radius": 10,
"latitude": "-7.93394569,-7.93355252,-7.93239198,-7.93289407,-7.93282234",
"longitude": "112.62931852,112.62854160,112.62935163,112.62955233,112.63010709",
"start_window_time": "08:00",
"end_window_time": "17:00",
"service_time": 10
}
]
}
curl --location --request PATCH 'https://cloudservice.vsms.co.id/tms_public_api/master/address/Coffe%20Logic8%20Malang' \
--header 'Authorization: Bearer <YOUR API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"address": [
{
"customer_name": "Cust_Test 002",
"location_name": "Coffe Logic8 Malang",
"sector": "",
"address": "CoffeeLogic, Jalan Sudimoro, Tunjungsekar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65142",
"category": "",
"contact_person": "",
"phone_number": "",
"type_poi": "Polygon",
"radius": 2,
"latitude": "-7.93394569,-7.93355252,-7.93239198,-7.93289407,-7.93282234",
"longitude": "112.62931852,112.62854160,112.62935163,112.62955233,112.63010709",
"start_window_time": "08:00",
"end_window_time": "17:00",
"service_time": 10
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"address": [
{
"customer_name": "Cust_Test 002",
"location_name": "Coffe Logic8 Malang",
"sector": "",
"address": "CoffeeLogic, Jalan Sudimoro, Tunjungsekar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65142",
"category": "",
"contact_person": "",
"phone_number": "",
"type_poi": "Polygon",
"radius": 2,
"latitude": "-7.93394569,-7.93355252,-7.93239198,-7.93289407,-7.93282234",
"longitude": "112.62931852,112.62854160,112.62935163,112.62955233,112.63010709",
"start_window_time": "08:00",
"end_window_time": "17:00",
"service_time": 10
}
]
});
var requestOptions = {
method: 'PATCH',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/master/address/Coffe%20Logic8%20Malang", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
message | string | Keterangan response |
Success Response Example
{
"message": "success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Product
Managemen Master Data Produk yang dimiliki oleh owner sehingga ketika ada customer / pelanggan yang memesan Order dapat diisikan produk-produk aja dalam pesanan tersebut.
Create Product
Menambahkan data produk-produk yang berkaitan dalam pengiriman
HTTP Request
POST https://cloudservice.vsms.co.id/tms_public_api/master/product
Request Body
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
product | []RequestProduct | true | Kumpulan product yang ingin ditambahkan | RequestProduct |
Request Example
{
"product": [
{
"name": "Lays Tunaa",
"description": "Lays barbeque isi 12pcs",
"price": 10,
"weight": 10,
"volume": 8,
"high": 0,
"width": 0,
"length": 0
}
]
}
curl --location --request POST 'https://cloudservice.vsms.co.id/tms_public_api/master/product' \
--header 'Authorization: Bearer <YOUR API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"product": [
{
"name": "Lays Tunaa",
"description": "Lays barbeque isi 12pcs",
"price": 10,
"weight": 10,
"volume": 8,
"high": 0,
"width": 0,
"length": 0
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"product": [
{
"name": "Lay Tunaa",
"description": "Lays barbeque isi 12pcs",
"price": 10,
"weight": 10,
"volume": 8,
"high": 0,
"width": 0,
"length": 0
}
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/master/product", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
message | string | Keterangan response |
created | []ResponseCreateProduct | Data Produk yang berhasil terbuat |
failed | [] | Deprecated |
message | string | Keterangan response |
Success Response Example
{
"created": [
{
"id_product": 71,
"product_name": "Lays Tunaa"
}
],
"failed": [],
"message": "success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
List Product
Menampilkan produk-produk yang telah terdaftar dalam sistem
HTTP Request
GET https://cloudservice.vsms.co.id/tms_public_api/master/product
Request Example
curl --location --request GET 'https://cloudservice.vsms.co.id/tms_public_api/master/product' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR API TOKEN>'
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
var raw = "";
var requestOptions = {
method: 'GET',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/master/product", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
- | []ResponseProductList | Data-data produk |
Success Response Example
[
{
"id": 5,
"name": "Es Tube",
"description": "Benda Cair",
"price": 10000000.0,
"weight": 1000.0,
"volume": 1000.0,
"high": 10.0,
"width": 10.0,
"length": 10.0
}
]
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Update Product
Mengubah data produk sesuai yang dibutuhkan
HTTP Request
PATCH https://cloudservice.vsms.co.id/tms_public_api/master/product/<PRODUCT_NAME>
Request Key
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
<PRODUCT_NAME> |
RequestProduct.name |
true | Nama Product | Lays Tunaa |
Request Example
{
"product": [
{
"name": "Lays Tunaa",
"description": "Lays barbeque isi 12pcs",
"price": 10000,
"weight": 100,
"volume": 1000,
"high": 10,
"width": 10,
"length": 10
}
]
curl --location --request PATCH 'https://cloudservice.vsms.co.id/tms_public_api/master/product/Lays%20Tunaa' \
--header 'Authorization: Bearer <YOUR API TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"product": [
{
"name": "Lays Tunaa",
"description": "Lays barbeque isi 12pcs",
"price": 10000,
"weight": 100,
"volume": 1000,
"high": 10,
"width": 10,
"length": 10
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <YOUR API TOKEN>");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"product": [
{
"name": "Lays Tunaa",
"description": "Lays barbeque isi 12pcs",
"price": 10000,
"weight": 100,
"volume": 1000,
"high": 10,
"width": 10,
"length": 10
}
]
});
var requestOptions = {
method: 'PATCH',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://cloudservice.vsms.co.id/tms_public_api/master/product/Lays%20Tunaa", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Success Response
Field | Data Type | Description |
---|---|---|
message | string | Keterangan response |
Success Response Example
{
"message": "success"
}
Invalid Response
Field | Data Type | Description |
---|---|---|
errors | Error | Object dari Error |
message | string | Keterangan response |
Object
Origin
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
name | string | true | Alamat Asal Pengiriman | SBY WH |
{
"name": "SBY WH"
}
Destination
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
name | string | true | Alamat Tujuan Pengiriman | SBY Warehouse 02 |
{
"name": "Gubeng"
}
Item
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
name | string | true | Nama Barang | Barang 1 |
qty | integer | true | Jumlah Barang | 1 |
volume | float | true | Volume Barang | 2 |
Weight | float | true | Berat Barang | 3 |
{
"name": "Barang 1",
"qty": "1",
"volume": "2",
"weight": "3"
}
RequestAddress
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
customer_name | string | true | Nama Pelanggan | PT Otto Menara Globalindo |
location_name | string | true | Nama lokasi | PT Coba Perikanan Sejahtera |
sector | string | false | Sektor pelanggan dalam alamat | Perikanan |
address | string | true | alamat lengkap | Kutisari - Surabaya |
province | string | true | provinsi | Jawa TImur |
city | string | true | kota / kabupaten | Surabaya |
postal_code | string | true | kode pos | 54366 |
category | string | false | kategori alamat | Vendor |
contact_person | string | false | narahubung | Budi |
phone_number | string | false | nomor telpon narahubung | 0824242342 |
type_poi | string | true | tipe / bentuk titik | Circle , Poligon |
radius | float | false | jari-jari dari titik (m) | 100 |
latitude | float | true | longitude | -7.96907150 |
longitude | float | true | latitude | 112.66126220 |
start_window_time | time (HH:mm) | false | jam kerja buka | 08:00 |
end_window_time | time (HH:mm) | false | jam kerja tutup | 17:00 |
service_time | integer | false | lama waktu bongkar buat (menit) | 60 |
{
"customer_name": "Coffe District Malang",
"location_name": "Coffe Logic8 Malang",
"sector": "Sector 3",
"address": "CoffeeLogic, Jalan Sudimoro, Tunjungsekar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65142",
"category": "pool",
"contact_person": "Soleha",
"phone_number": "0583174685",
"type_poi": "Polygon",
"radius": null,
"latitude": "-7.93394569,-7.93355252,-7.93239198,-7.93289407,-7.93282234",
"longitude": "112.62931852,112.62854160,112.62935163,112.62955233,112.63010709",
"start_window_time": null,
"end_window_time": null,
"service_time": null
}
RequestProduct
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
name | string | true | Nama Produk | Lays Tunaa |
description | string | false | Deskripsi produk | Lays barbeque isi 12pcs |
price | float | false | Harga | 10000 |
weight | float | false | Berat (g) | 100 |
volume | float | false | Volume | 1000 |
high | float | false | Tinggi | 10 |
width | float | false | Lebar | 10 |
length | float | false | Panjang | 10 |
{
"name": "Lays Tunaa",
"description": "Lays barbeque isi 12pcs",
"price": 10,
"weight": 10,
"volume": 8,
"high": 0,
"width": 0,
"length": 0
}
RequestAddressUpdate
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
customer_name | string | true | Nama Pelanggan | PT Otto Menara Globalindo |
location_name | string | true | Nama lokasi | PT Coba Perikanan Sejahtera |
sector | string | false | Sektor pelanggan dalam alamat | Perikanan |
address | string | true | alamat lengkap | Kutisari - Surabaya |
province | string | true | provinsi | Jawa TImur |
city | string | true | kota / kabupaten | Surabaya |
postal_code | string | true | kode pos | 54366 |
category | string | false | kategori alamat | Vendor |
contact_person | string | false | narahubung | Budi |
phone_number | string | false | nomor telpon narahubung | 0824242342 |
type_poi | string | true | tipe / bentuk titik | Circle , Poligon |
radius | float | true | jari-jari dari titik (m) | 100 |
latitude | float | true | longitude | -7.96907150 |
longitude | float | true | latitude | 112.66126220 |
start_window_time | time (HH:mm) | true | jam kerja buka | 08:00 |
end_window_time | time (HH:mm) | true | jam kerja tutup | 17:00 |
service_time | integer | true | lama waktu bongkar buat (menit) | 60 |
{
"customer_name": "Cust_Test 002",
"location_name": "Coffe Logic8 Malang",
"sector": "",
"address": "CoffeeLogic, Jalan Sudimoro, Tunjungsekar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65142",
"category": "pool",
"contact_person": "Soleha",
"phone_number": "0583174685",
"type_poi": "Polygon",
"radius": 10,
"latitude": "-7.93394569,-7.93355252,-7.93239198,-7.93289407,-7.93282234",
"longitude": "112.62931852,112.62854160,112.62935163,112.62955233,112.63010709",
"start_window_time": "08:00",
"end_window_time": "17:00",
"service_time": 10
}
RequestFleet
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
plate_number | string | true | Nomor polisi | L 1111 YY |
fleet_brand | string | false | Merk Kendaraan | Daihatsu |
chassis_number | string | false | Nomor rangka | XXXX324e |
engine_number | string | false | Nomor mesin | XXX34236 |
fleet_category | string | true | Categori Kendaraan | L300 |
fleet_type | string | true | Tipe Kendaraan | L300 |
box_type | string | false | Tipe Box | Wet |
thermo_type | string | false | Tipe sensor suhu | Bosch |
pool | string | false | Tempat singgah | Sidoarjo |
unit_year | integer | false | Tahun pembuatan | 2020 |
fleet_age_years | integer | false | Umur kendaraan | 2 |
last_odometer | integer | true | Odometer | 10000 |
karoseri | string | false | Pembuatan Karoseri | Madiun |
volume_cbm | integer | true | Volume angkutan | 1000 |
start_time | time (HH:mm:ss) | false | Waktu operasi mulai | 05:00:00 |
end_time | time (HH:mm:ss) | false | Waktu operasi selesai | 17:00:00 |
driver_1st | string | false | Pengemudi utama | Anton |
driver_2nd | string | false | Pengemudi cadangan | Budi |
gps_vendor | string | false | Vendor GPS | McEasy |
gps_tracker | string | false | IMEI GPS | 11111111111111111 |
temperature_min | float | false | Suhu minimal (C) | -10 |
temperature_max | float | false | Suhu maksimal (C) | 3 |
{
"plate_number": "L 1111 YY",
"fleet_brand": "Daihatsu",
"chassis_number": "XXXX324e",
"engine_number": "XXX34236",
"fleet_category": "L300",
"fleet_type": "L300",
"box_type": "",
"thermo_type": "",
"pool": "",
"unit_year": "2016",
"fleet_age_years": "7",
"last_odometer": "15000",
"karoseri": "",
"volume_cbm": "1000",
"start_time": "",
"end_time": "",
"driver_1st": "",
"driver_2nd": "",
"gps_vendor": "",
"gps_tracker": "",
"temperature_min": -10,
"temperature_max": 3
}
FleetList
Field | Data Type | Description |
---|---|---|
fleet_active | boolean | Aktif tidaknya armada (bisa bernilai null) |
fleet_category | string | Ketegori armada |
fleet_id | integer | ID Armada |
fleet_name | string | Nama Armada (Biasanya berisi nomor polisi) |
{
"fleet_active": null,
"fleet_category": "CDD Bak Terbuka",
"fleet_id": 1,
"fleet_name": "L 1345 BV"
}
RequestDriver
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
name | string | true | Nama Pengemudi | Anton |
address | string | false | Alamat Pengemudi | Kutisari - Surabaya |
place_of_birth | string | true | Tempat Lahir | Malang |
date_of_birth | date (YYYY-MM-DD) | true | Tanggal Lahir | 1967-02-02 |
phone_number | string | false | Nomor telepon yang bisa dihubungi | 082131231321 |
joined_date | date (YYYY-MM-DD) | true | Tanggal bergabung | 2020-01-01 |
place_of_recruitment | string | true | Tempat perekrutan | Surabaya |
ktp_number | string | true | Nomor E-KTP | 34325235325255235 |
marital_status | string | false | Status Perkawinan | Kawin |
bank_acc_number | string | false | Nomor Rekening | 32432555 |
bpjs_kes_number | string | false | Nomor BPJS Kesehatan | 328429387 |
bpjs_jht_number | string | false | Nomor BPJS Jaminan Hari Tua | 24234234234 |
jaminan | string | false | Jaminan yang ditahankan | Deposit |
family_phone_1 | string | false | Nomor telepon keluarga terdekat | 081333333 |
family_phone_2 | string | false | Nomor telepon keluarga cadangan | 081111111 |
reference | string | false | Direkomendasikan oleh | William |
driver_status | []DriverStatus | true | Status Driver | DriverStatus |
license_type | []LicenseType | false | SIM yang dimiliki | LicenseType |
job_experience | []JobExperience | false | Pengalaman Kerja | JobExperience |
{
"name": "Driver Test 4",
"address": "Jl. Sawojajar II",
"place_of_birth": "Malang",
"date_of_birth": "1997-02-02",
"phone_number": "0853813513",
"joined_date": "2022-08-31",
"place_of_recruitment": "Surabaya",
"ktp_number": "61341351313",
"marital_status": "Lajang",
"bank_acc_number": "15378513",
"bpjs_kes_number": "917359816395",
"bpjs_jht_number": "35196871513",
"jaminan": "Harta",
"family_phone_1": "",
"family_phone_2": null,
"reference": null,
"driver_status": [
{
"fleet_category": "Truck",
"status": "Active"
}
],
"license_type": [
{
"license_type": "sim c",
"license_number": "",
"expired": null
}
],
"job_experience": [
{
"experience": "Driver Patas"
}
]
}
RequestCustomer
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
name | string | true | Nama pelanggan | PT Coba Perikanan Sejahtera |
alias | string | false | Nama lain pelanggan | CPS |
tax_number | string | false | Nomor pajak pelanggan (NPWP) | 32423423424 |
industry_category | string | false | Kategori industri pelanggan | Perikanan |
marketing_name | string | false | Pembuat / Sales | Anton |
contact_person | []ContactPerson | false | Narahubung | ContactPerson |
special_note | []SpecialNote | false | Catatan khusus | SpecialNote |
address | []CustomerAddress | true | Alamat-alamat pelanggan | CustomerAddress |
{
"name": "Cust_Test 001",
"alias": "CP1",
"tax_number": "513831",
"industry_category": "",
"marketing_name": "",
"contact_person": [
{
"contact_name": "public",
"phone_number": "08368154613",
"position": "Admin",
"email": ""
}
],
"special_note": [
{
"note": "Pahit"
},
{
"note": "Manis"
}
],
"address": [
{
"location_name": "Brew.la",
"sector": null,
"address": "BREW.LA, Sawojajar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65139",
"category": "",
"contact_person": "",
"phone_number": "",
"type_poi": "Circle",
"radius": 100.0,
"latitude": "-7.96907150",
"longitude": "112.66126220",
"start_window_time": "08:00",
"end_window_time": "12:00",
"service_time": 60
}
]
}
RequestCustomerUpdate
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
name | string | true | Nama pelanggan | PT Coba Perikanan Sejahtera |
alias | string | false | Nama lain pelanggan | CPS |
tax_number | string | false | Nomor pajak pelanggan (NPWP) | 32423423424 |
industry_category | string | false | Kategori industri pelanggan | Perikanan |
marketing_name | string | false | Pembuat / Sales | Anton |
contact_person | []ContactPersonUpdate / []ContactPersonDelete | false | Narahubung | ContactPersonUpdate / ContactPersonDelete |
special_note | []SpecialNoteUpdate / []SpecialNoteDelete | false | Catatan khusus | SpecialNoteUpdate / SpecialNoteDelete |
address | []CustomerAddressUpdate / []CustomerAddressDelete | true | Alamat-alamat pelanggan | CustomerAddressUpdate / CustomerAddressDelete |
CustomerAddress
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
location_name | string | true | Nama lokasi | PT Coba Perikanan Sejahtera |
sector | string | false | Sektor pelanggan dalam alamat | Perikanan |
address | string | true | alamat lengkap | Kutisari - Surabaya |
province | string | true | provinsi | Jawa TImur |
city | string | true | kota / kabupaten | Surabaya |
postal_code | string | true | kode pos | 54366 |
category | string | false | kategori alamat | Vendor |
contact_person | string | false | narahubung | Budi |
phone_number | string | false | nomor telpon narahubung | 0824242342 |
type_poi | string | true | tipe / bentuk titik | Circle , Poligon |
radius | float | false | jari-jari dari titik (m) | 100 |
latitude | float | true | longitude | -7.96907150 |
longitude | float | true | latitude | 112.66126220 |
start_window_time | time (HH:mm) | false | jam kerja buka | 08:00 |
end_window_time | time (HH:mm) | false | jam kerja tutup | 17:00 |
service_time | integer | false | lama waktu bongkar buat (menit) | 60 |
{
"location_name": "Brew.la",
"sector": null,
"address": "BREW.LA, Sawojajar, Malang City, East Java, Indonesia",
"province": "Jawa Timur",
"city": "Surabaya",
"postal_code": "65139",
"category": "",
"contact_person": "",
"phone_number": "",
"type_poi": "Circle",
"radius": 100.0,
"latitude": "-7.96907150",
"longitude": "112.66126220",
"start_window_time": "08:00",
"end_window_time": "12:00",
"service_time": 60
}
CustomerAddressUpdate
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
old_location_name | string | true | Nama lokasi lama | PT Coba Perikanan Sejahtera |
new_location_name | string | true | Nama lokasi baru | PT Coba Perikanan Sukses |
sector | string | false | Sektor pelanggan dalam alamat | Perikanan |
address | string | true | alamat lengkap | Kutisari - Surabaya |
province | string | true | provinsi | Jawa TImur |
city | string | true | kota / kabupaten | Surabaya |
postal_code | string | true | kode pos | 54366 |
category | string | false | kategori alamat | Vendor |
contact_person | string | false | narahubung | Budi |
phone_number | string | false | nomor telpon narahubung | 0824242342 |
type_poi | string | true | tipe / bentuk titik | Circle , Poligon |
radius | float | false | jari-jari dari titik (m) | 100 |
latitude | float | true | longitude | -7.96907150 |
longitude | float | true | latitude | 112.66126220 |
start_window_time | time (HH:mm) | false | jam kerja buka | 08:00 |
end_window_time | time (HH:mm) | false | jam kerja tutup | 17:00 |
service_time | integer | false | lama waktu bongkar buat (menit) | 60 |
delete_location_name | boolean | true | flag penghapusan | false |
CustomerAddressDelete
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
old_location_name | string | true | Nama lokasi yang akan dihapus | PT Coba Perikanan Sejahtera |
delete_location_name | boolean | true | flag penghapusan | true |
SpecialNote
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
note | string | true | Catatan khusus | Tidak boleh terlambat lebih dari 15 menit |
{
"note": "Pahit"
}
SpecialNoteUpdate
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
old_note | string | true | Catatan khusus lama | Tidak boleh terlambat lebih dari 15 menit |
new_note | string | true | Catatan khusus baru | Tidak boleh terlambat lebih dari 20 menit |
delete_note | boolean | true | flag penghapusan | false |
SpecialNoteDelete
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
old_note | string | true | Catatan khusus yang akan dihapus | Tidak boleh terlambat lebih dari 15 menit |
delete_note | boolean | true | flag penghapusan | true |
ContactPerson
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
contact_name | string | true | Nama narahubung | Budi |
phone_number | string | true | nomor telepon narahubung | 08324324234 |
position | string | false | Jabatan | Satpam |
string | false | email narahubung | satpam@cobaperikanan.com |
{
"contact_name": "public",
"phone_number": "08368154613",
"position": "Admin",
"email": ""
}
ContactPersonUpdate
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
old_contact_name | string | true | Nama narahubung lama | Budi |
new_contact_name | string | true | Nama narahubung baru | Intan |
phone_number | string | true | nomor telepon narahubung | 08324324234 |
position | string | false | Jabatan | Satpam |
string | false | email narahubung | satpam@cobaperikanan.com | |
delete_contact | boolean | true | flag penghapusan | false |
ContactPersonDelete
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
old_contact_name | string | true | Nama narahubung yang akan dihapus | Budi |
delete_contact | boolean | true | flag penghapusan | true |
DriverStatus
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
fleet_category | string | true | Kategori armada yang bisa dioperasikan | Truck / CDD |
status | enum | true | status pengoperasian armada | Active |
{
"fleet_category": "Truck",
"status": "Active"
}
LicenseType
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
license_type | string | true | tipe sim yang sesuai peraturan perundang-undangan | SIM A, SIM C |
license_number | string | true | nomor seri sim | 1231241444 |
expired | date (YYYY-MM-DD) | false | masa berlaku sim | 2024-01-01 |
{
"license_type": "sim c",
"license_number": "",
"expired": null
}
JobExperience
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
experience | string | true | Pengalaman sebelumnya apabila ada | Sopir Patas |
{
"experience": "Driver Patas"
}
OrderFreight
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
start_order | date(YYYY-MM-DDTHH-mm-ss) | true | Tanggal pesanan diproses | 2022-12-12 15:30:00 |
fleet | string | true | Nama Kendaraan | B 0000 LL |
driver | string | true | Pengemudi Kendaraaan | Andi |
ship_from | string | true | Asal keberangkatan | Jakarta |
round_trip | boolean | false | Kembali atau tidak ke tempat keberangkatan ketika selesai | true |
fleet_reference | string | false | Referensi Fleet Order | API |
weight | integer | true | Berat (kg) | 100 |
total_distance | float | true | Total Jarak | 18.54 |
eta | date(YYYY-MM-DDTHH-mm-ss) | true | Perkiraan Tiba | 2022-12-20 17:00:00 |
destination_units | []DestinationUnit | true | Titik Drop atau Pickup | DestinationUnit |
{
"start_order": "2022-08-12 15:30:00",
"fleet": "L 7060 KKV",
"driver": "Didi",
"ship_from": "Lacuna Cafe",
"round_trip": true,
"fleet_reference": "Public API",
"weight": 100,
"total_distance": 18.54,
"eta": "2022-09-08 17:00:00",
"destination_units": [
{
"order_delivery": "DO-02404",
"unit_type": "Pickup",
"address": "Exit Sinarmas",
"distance": 6.49,
"eta": "2022-09-08 16:09:00"
},
{
"order_delivery": "DO-02404",
"unit_type": "Destination",
"address": "D Karang Pilang",
"distance": 12.15,
"eta": "2022-09-08 16:57:00"
}
]
}
DestinationUnit
Field | Data Type | Required | Description | Example |
---|---|---|---|---|
order_delivery | string | true | ResponseDetailOrder order_number |
DO-00001 |
unit_type | enum | true | Pickup , Destination |
Pickup |
address | string | true | Alamat | Surabaya |
distance | float | true | Jarak | 18.54 |
eta | date(YYYY-MM-DDTHH-mm-ss) | true | Perkiraan Tiba | 2022-12-20 17:00:00 |
{
"order_delivery": "DO-02404",
"unit_type": "Pickup",
"address": "Exit Sinarmas",
"distance": 6.49,
"eta": "2022-09-08 16:09:00"
}
StatusOrder
Field | Data Type | Description |
---|---|---|
Draft | string | Order berhasil disimpan dengan status Draft |
Confirmed | string | Order berhasil disimpan dan dikonfirmasi, status Order Confirmed |
Scheduled | string | Order telah dijadwalkan untuk dilakukan pengiriman |
Started | string | Order sedang dalam pengiriman |
Delivered | string | Order telah dikirimkan ke alamat tujuan |
Cancelled | string | Order dibatalkan |
StatusHistory
Field | Data Type | Description |
---|---|---|
datetime | datetime(YYYY-MM-DD HH:mm:ss) | Tanggal history |
status | StatusOrder | Status |
{
"datetime": "2022-01-03 10:43:05",
"status": "Scheduled"
}
ResponseProductList
Field | Data Type | Description |
---|---|---|
id | integer | Keterangan response update fleet |
name | string | Keterangan response update fleet |
description | string | Keterangan response update fleet |
price | float | Keterangan response update fleet |
weight | float | Keterangan response update fleet |
volume | float | Keterangan response update fleet |
high | float | Keterangan response update fleet |
width | float | Keterangan response update fleet |
length | float | Keterangan response update fleet |
{
"id": 5,
"name": "Es Tube",
"description": "Benda Cair",
"price": 10000000.0,
"weight": 1000.0,
"volume": 1000.0,
"high": 10.0,
"width": 10.0,
"length": 10.0
}
ResponseUpdateFleet
Field | Data Type | Description |
---|---|---|
fleet | string | Keterangan response update fleet |
{
"fleet": "L 1113 YY updated successfully"
}
ResponseCreateOrder
Field | Data Type | Description |
---|---|---|
order_delivery_number | string | Delivery Order Number |
status | StatusOrder | Status Delivery Order |
{
"order_delivery_number": "DO_Number",
"status": "Draft"
}
ResponseCreateFleetOrder
Field | Data Type | Description |
---|---|---|
fo_number | string | Generated Fleet Order Number |
id_fo | integer | Referensi id |
{
"fo_number": "FO-00000",
"id_fo": 1
}
ResponseListOrder
Field | Data Type | Description |
---|---|---|
order_number | string | Nomor Delivery Order (DO) yang terbentuk saat Create Order |
customer_name | string | Nama Pelanggan |
depature_date | date(YYYY-MM-DDTHH-mm-ss) | Tanggal Keberangkatan Pengiriman |
fleet_category | string | Kategori Kendaraan |
fleet_type | string | Tipe Kendaraan |
license_plate | string | Plat Nomor Kendaraan |
driver_name | string | Nama Pengemudi |
origins | []Origin | Alamat Asal Pengiriman |
destinations | []Destination | Alamat Tujuan Pengiriman |
note | string | Catatan Pengiriman Barang |
shipment_number | string | Nomor pengiriman |
marketing_name | string | Nama Marketing |
status | StatusOrder | Status Order |
{
"order_number": "DO-00071",
"customer_name": "PT Nescoffee",
"departure_date": "2022-01-03",
"fleet_category": "Super WIng",
"fleet_type": "Hino Wing Box Lohan FL235JW",
"license_plate": "L 7777 AD",
"driver_name": "mcdriver",
"origins": [
"Sby Kodam 5"
],
"destinations": [
"sby pagesangan"
],
"note": "",
"shipment_number": "",
"marketing_name": "Administrator",
"status": "Started"
}
ResponseCreateCustomer
Field | Data Type | Description |
---|---|---|
id | integer | ID unik pelanggan |
name | string | Nama Pelanggan |
{
"id": 848,
"name": "Cust_Test 001"
}
ResponseCreateDriver
Field | Data Type | Description |
---|---|---|
id | integer | ID unik pengemudi |
name | string | Nama Pengemudi |
{
"id": 1279,
"name": "Driver Test 5"
}
ResponseCreateAddress
Field | Data Type | Description |
---|---|---|
id | integer | ID unik alamat |
name | string | Nama Alamat yang berhasil dibuat |
{
"id": 3030,
"name": "Coffe Logic8 Malang"
}
ResponseCreateProduct
Field | Data Type | Description |
---|---|---|
id_product | integer | ID unik produk |
product_name | string | Nama Produk yang berhasil dibuat |
{
"id_product": 71,
"product_name": "Lays Tunaa"
}
ResponseDetailOrder
Field | Data Type | Description |
---|---|---|
customer_name | string | Nama Pelanggan |
depature_date | date(YYYY-MM-DDTHH-mm-ss) | Tanggal Keberangkatan Pengiriman |
destinations | []Destination | Alamat Tujuan Pengiriman |
driver_name | string | Nama Pengemudi |
fleet_category | string | Kategori Kendaraan |
fleet_type | string | Tipe Kendaraan |
goods_type | string | Tipe Barang |
items | []Item | Nama Barang |
license_plate | string | Plat Nomor Kendaraan |
marketing_name | string | Nama Marketing |
note | string | Catatan Pengiriman Barang |
order_number | string | Nomor Delivery Order (DO) yang terbentuk saat Create Order |
origins | []Origin | Alamat Asal Pengiriman |
service_time | integer | Waktu yang Diperlukan untuk Bongkar Muat Barang |
shipment_number | string | Nomor Pengiriman |
status | StatusOrder | Status Order |
status_history | []StatusHistory | Riwayat Perubahan Status |
temperature_min | integer | Batas Suhu Minimum pada Box |
temperature_max | integer | Batas Suhu Maksimum pada Box |
window_start_time | time(HH-mm) | Waktu Mulai Operasional |
window_end_time | time(HH-mm) | Waktu Selesai Operasional |
{
"customer_name": "PT Nescoffee",
"departure_date": "2022-01-03",
"destinations": [
"sby pagesangan"
],
"driver_name": "mcdriver",
"fleet_category": "Super WIng",
"fleet_type": "Hino Wing Box Lohan FL235JW",
"goods_type": "",
"items": [],
"license_plate": "L 7777 AD",
"marketing_name": "Administrator",
"note": "",
"order_number": "DO-00071",
"origins": [
"Sby Kodam 5"
],
"service_time": "",
"shipment_number": "",
"status": "Started",
"status_history": [
{
"datetime": "2022-01-03 10:43:05",
"status": "Scheduled"
},
{
"datetime": "2022-01-03 10:43:24",
"status": "Started"
}
],
"temperature_max": "",
"temperature_min": "",
"window_end_time": "",
"window_start_time": ""
}
ResponseDetailFleetOrder
Field | Data Type | Description |
---|---|---|
driver_name | string | Driver yang berangkat |
end_time | datetime (YYYY-MM-DD HH:mm:ss) | Tanggal dan waktu selesai pengiriman |
fleet_category | string | Kategori armada |
fleet_order_number | string | FO ID / ID Pengiriman |
fleet_type | string | Tipe armada |
license_plate | string | Nomor Polisi kendaraan |
order_deliveries | []OrderDelivery | Pesanan yang dibawa dalam pengiriman |
seq_order_list | []SequenceOrder | Urutan rute yang dilewati |
ship_from | string | Titik awal keberangkatan |
start_time | datetime (YYYY-MM-DD HH:mm:ss) | Tanggal dan waktu pengiriman dimulai |
status | string | Status Pengiriman: Delivered , Started , Cancelled |
total_volume | float | Total volume pengiriman |
total_weight | float | Total berat pengiriman |
{
"driver_name": "Driver 001",
"end_time": "2022-02-03 17:17:02",
"fleet_category": "TRUK",
"fleet_order_number": "FO-00053",
"fleet_type": "CDD - 4000",
"license_plate": "L 9956 DF",
"order_deliveries": [
{
"customer": "PT. ABC",
"items": [
{
"item_name": "beras",
"quantity": 1.0,
"volume": 2.0,
"weight": 1000.0
},
{
"item_name": "beras",
"quantity": 1.0,
"volume": 2.0,
"weight": 1000.0
},
{
"item_name": "beras",
"quantity": 1.0,
"volume": 2.0,
"weight": 1000.0
}
],
"order_number": "DO-00117"
}
],
"seq_order_list": [
{
"address": "Location One",
"app_status": "Ended",
"arrived_time": "",
"departed_time": "",
"eta": "2022-02-02 13:34:00",
"mileage": 78.17,
"order_number": "DO-00117",
"receiver_name": "oke",
"rejection_reason": "",
"seq": 1,
"status": "Picked",
"time_app_update": "2022-02-03 17:14:50",
"type": "P"
},
{
"address": "Location Two",
"app_status": "Ended",
"arrived_time": "",
"departed_time": "",
"eta": "2022-02-02 14:35:00",
"mileage": 0.85,
"order_number": "DO-00117",
"receiver_name": "oke2",
"rejection_reason": "",
"seq": 2,
"status": "Delivered",
"time_app_update": "2022-02-03 17:15:55",
"type": "D"
}
],
"ship_from": "Matos",
"start_time": "2022-02-03 17:08:41",
"status": "Ended",
"total_volume": 6.0,
"total_weight": 3000.0
}
OrderDelivery
Field | Data Type | Description |
---|---|---|
customer | string | nama pelanggan |
items | []OrderDeliveryItem | produk yang dipesan |
order_number | string | Order Number |
{
"customer": "PT. ABC",
"items": [
{
"item_name": "beras",
"quantity": 1.0,
"volume": 2.0,
"weight": 1000.0
},
{
"item_name": "beras",
"quantity": 1.0,
"volume": 2.0,
"weight": 1000.0
},
{
"item_name": "beras",
"quantity": 1.0,
"volume": 2.0,
"weight": 1000.0
}
],
"order_number": "DO-00117"
}
OrderDeliveryItem
Field | Data Type | Description |
---|---|---|
item_name | string | Nama produk |
quantity | float | jumlah pesanan |
volume | float | volume |
weight | float | berat |
{
"item_name": "beras",
"quantity": 1.0,
"volume": 2.0,
"weight": 1000.0
}
SequenceOrder
Field | Data Type | Description |
---|---|---|
address | string | Alamat titik yang menjadi tujuan |
app_status | string | Status dari driver app |
arrived_time | datetime (YYYY-MM-DD HH:mm:ss) | Tanggal dan waktu tiba |
departed_time | datetime (YYYY-MM-DD HH:mm:ss) | Tanggal dan waktu berangkat |
eta | datetime (YYYY-MM-DD HH:mm:ss) | Estimasi waktu tiba |
mileage | float | jarak |
order_number | string | Order Number |
receiver_name | string | Penerima |
rejection_reason | string | Alasan ditolak ketika pesanan ditolak |
seq | integer | Urutan rute |
status | string | Status proses pengiriman |
time_app_update | datetime (YYYY-MM-DD HH:mm:ss) | Update terakhir dari driver app |
type | string | P : Pickup / Muat, D : Drop / Bongkar |
{
"address": "Location One",
"app_status": "Ended",
"arrived_time": "",
"departed_time": "",
"eta": "2022-02-02 13:34:00",
"mileage": 78.17,
"order_number": "DO-00117",
"receiver_name": "oke",
"rejection_reason": "",
"seq": 1,
"status": "Picked",
"time_app_update": "2022-02-03 17:14:50",
"type": "P"
}
ResponseListFleetOrder
Field | Data Type | Description |
---|---|---|
driver_name | string | Driver yang berangkat |
end_time | datetime (YYYY-MM-DD HH:mm:ss) | Tanggal dan waktu selesai pengiriman |
fleet_order_number | string | FO ID / ID Pengiriman |
license_plate | string | Nomor Polisi kendaraan |
start_time | datetime (YYYY-MM-DD HH:mm:ss) | Tanggal dan waktu pengiriman dimulai |
status | string | Status Pengiriman: Delivered , Started , Cancelled |
{
"driver_name": "Budi",
"end_time": "",
"fleet_order_number": "FO-00001",
"license_plate": "L 1234 LL",
"start_time": "2022-02-03 13:13:00",
"status": "Canceled"
}
ResponseCreateToken
Field | Data Type | Description |
---|---|---|
token | string | Token yang dapat Anda gunakan untuk setiap request ke TMS API maupun VSMS API |
{
"token": "<YOUR TOKEN HERE>"
}
Error
Field | Data Type | Description |
---|---|---|
<DYNAMIC FIELD> |
[]String | Spesifik sesuai field yang perlu diperbaiki |