INTRODUCTION
M2M provides shipment monitoring and API integration. The API that can be used to integrate your system with our platform.
The API is built based on REST concept and will return JSON formatted data upon your requests. In order to use our API, you must have an existing active company in our application.
Flowchart
Request & Response
Allowed HTTP Methods
Method | Operation | Description |
---|---|---|
GET | index, show | A GET request is used to retrieve information from server |
POST | create | A POST request is used to send data to the server |
PATCH | update | A PATCH request is used to send update data to the server |
DELETE | delete | A DELETE request is used to delete data |
Standard Response Codes
Code | Name | Description |
---|---|---|
200 | OK | Request completed successfully |
201 | Created | Created, Request completed successfully |
202 | Accepted | Accepted, Request completed successfully |
401 | Unauthorized | Authorization has failed |
405 | Method Not Allowed | HTTP request is not Allowed, please see http method for each API endpoint |
406 | Not Acceptable | Unregistered Company as API client |
422 | Unprocessable Entity | If params is not valid or Unprocessable due to semantic error |
429 | Too Many Requests | The user has sent too many requests in a given amount of time. |
500 | Internal Server Error | Potentially Server Error |
503 | Service Unavailable | Service temporarily unavailable due maintenance service |
Standard JSON Response
Each request will generate a json response with standart pattern ;
{
"code": HTTP Status Code,
"status": HTTP Status Code Description,
"message": Any Message,
"data": Any Data
}
Any message
in error explanation ;
Code | Message | Description |
---|---|---|
401 | Token Status is InActive | Registered Company as API Client, but token is not active yet or not yet allowed to use API integration |
401 | The Token is Not Match | The Token is Not Match or unregistered as API Client |
422 | validator message |
If the parameter value does not pass the validation, the validator will display an information message which causes it to be invalid |
406 | Company Unregistered | Unregistered Company as M2M Customer. see requirement |
503 | We're sorry. We are under maintenance | When our system do the maintenance |
Any message
those should returning data
;
Code | Message | Description |
---|---|---|
200 | Total Row {total_row_of_data} |
Success response returning data |
200 | Maximum Row Reachable, Total Row {total_row_of_data} |
Success response returning data , but limited row. see row limitation |
Integration
Requirement & To Do List
Almost all data those provided by API are dependent on CAR (Contract Agreement) when (as) Client sign in and join to use our services.
API will providing data already filter by (known as) Company Id/Account Number.
To getting started API integration, please make sure all requirement is completed;
No. | Action Taken | Action By | Description | as Data | is Completed |
---|---|---|---|---|---|
1 | Providing Customer Company information | Client & M2M | This data will be database of customer information | This data is needed for API Endpoint (Shipment Detail,Shipment Tracking, Price List, Coverage Area, Services) | |
2 | Providing price list that has been agreed | M2M | This data will be database of price list | This data is needed for API Endpoint (Price List, Coverage Area, Services) | |
3 | Providing Client's API Developer information (or an IT person) | Client | email address and phone number | This information is needed for API Authorization, API token who's sent to | |
4 | Providing token key | M2M | Token for API Authorization | This information is needed for API Authorization |
Register
After all these requirements are met, our team will send you the token
information used for API Authorization.
This token is generated once, if the API Client needs to change this token, the API Client can request it via email to our team or use POST Renew Token
Endpoint.
If the API Client changes the token using the endpoint, it needs to be verified using the verification link / renewal token sent to the registered email ( see Client Developer requirement points )
If the email verification is sent and the renewal link is not executed, a new token will not be generated, API client is still using the old token.
Authorization
Authorization API we only use token
for Authentication for each endpoint request.
token
authentication is a carrier Authorization type that should be included in header requests.
Sample of Authorization ;
Key | Value | Description |
---|---|---|
Authorization | Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NABC.eyJleHAiOjE1ODM0MDIwNzU1MDEsImlkIjoiY291cmllcl9jYXJha2E123.Y-Fq1vN_31Y1MP8OE9PfJD5cAEAbI0uQgz2qxABC123 | Authorization type = Bearer, token is token given by M2M Logistics for registered company |
Sources
API Client can import our Postman
Collection File using download button below.
Limitation
Data Limit
Every data result will be limited at 1000 rows, if data over 1000 occurs, response will send information Maximum Row Reachable, Total Row {total_row_of_data}.
see Standard JSON Response
This limitation maybe occurs in GET Shipment List
Endpoint.
Rate Limit
The request is limited to 60 request per minute
If this occurs, response will return http status 429 Too Many Requests
see Standard Response Codes
ENDPOINT
Create Shipment
HTTP Method | POST |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/shipment |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
{
"customer_account": "M1122017000111",
"cost_center": "GA",
"shipper_name": "Imam",
"shipper_address": "AA. WAREHOUSE PT. ABC. Jl. ABC Serua Blk. B No.01 Rt 001/01, Kupang",
"shipper_post_code": "1234",
"shipper_phone": "021",
"origin": "Kupang",
"origin_province": "Nusa Tenggara Timur (NTT)",
"receiver_name": "Arifin",
"receiver_company": "PT. DEF",
"receiver_address": "BB. GUDANG. JL. DEFG RT. 01 NO. 1 Bekasi",
"receiver_post_code": "",
"receiver_phone": "05113311111",
"destination": "Bekasi",
"destination_province": "Jawa Barat",
"description": "SPARE PARTS",
"service": 16,
"special_instruction": "",
"packages": [
{
"description": "SPARE PARTS 1",
"pieces": "2",
"weight": "112.00",
"unit": "KG",
"length": "102.00",
"width": "39.00",
"height": "17.00",
"volume": "135.00",
"volume_weight": "135.00",
"packing_cost": "0.00",
"surcharge_percent": "0",
"surcharge_cost": "0.00"
},
{
"description": "SPARE PARTS 2",
"pieces": "3",
"weight": "96.00",
"unit": "KG",
"length": "57.00",
"width": "33.00",
"height": "14.00",
"volume": "105.00",
"volume_weight": "105.00",
"packing_cost": "0.00",
"surcharge_percent": "0",
"surcharge_cost": "0.00"
}
],
"do_number": [
{
"do_number": "DO-06304",
"do_description": "DN"
},
{
"do_number": "DO-06325",
"do_description": "DN"
}
]
}
Key | Value | Validation | Description |
---|---|---|---|
customer_account | Customer Account | required|max:250|in:registered customer accounts list | list of accounts can be retrieved from the GET Accounts Endpoint |
cost_center | Cost Center | optional|string|max:250 | Additional information for customer use |
shipper_name | Shipper Name | required|string|max:250 | |
shipper_address | Shipper Address | required|string | |
shipper_post_code | Shipper Postal Code | optional|numeric|max:10 | |
shipper_phone | Shipper Phone | optional|numeric|max:50 | |
origin | City ID or City Name | required | |
origin_province |
If origin = if origin = |
optional or required |
If origin = if origin = |
receiver_name | Receiver Name |
required|string|max:250 |
|
receiver_company | Receiver Company | optional|string|max:250 | |
receiver_address | Receiver Address | required|string | |
receiver_post_code | Receiver Postal code | optional|numeric | |
receiver_phone | Receiver Phone | optional|numeric | |
destination | City ID or City Name | required|string | |
destination_province |
If destination = if destination = |
optional or required |
If destination = if destination = |
description | Shipment Description | optional|string|max:250 | |
service | Service ID | required|numeric | list of accounts can be retrieved from the GET Services Endpoint |
special_instruction | Special Instruction | optional|string|max:250 | Additional information for customer use |
packages | Detail Packages | required|array | See Packages Validations |
do_number | DO / DN / Any Number as Reference per Package | optional|array | See Do Number Validations |
Packages (array)
Key | Value | Validation | Description |
---|---|---|---|
description | Description of Goods | required|max:250|in:registered customer accounts list | Description of Goods |
pieces | Total Pieces of Coli | optional|string|max:250 | Total Pieces of Coli |
weight | Actual Weight of Piece | required|string|max:250 | Actual Weight of Piece, will be multiplied by the total pieces |
length | Length of Piece | required | Length of Piece, will be multiplied by the total pieces |
width | Width of Piece | optional|numeric|max:10 | Width of Piece, will be multiplied by the total pieces |
height | Height of Piece | optional|numeric|max:50 | Height of Piece, will be multiplied by the total pieces |
System Calculation Conditions ;
-> 1 AWB has Many Package
-> 1 Package has Many Piece
-> weight, length, width, height will be multiplied by (n)pieces of single package as sub_total
-> 1 Package = pieces * weight.
-> 1 Package = pieces * dimension.
-> total_pieces = sum of pieces.
-> total_weight = sum of sub_total weight.
-> total_volume = sum of sub_total volume(dimension)
-> volume_weight = sum of sub_total chargeable weight
** See sample of response
Do Number (array)
Key | Value | Validation | Description |
---|---|---|---|
do_number | DO Number | required|max:100 | |
do_description | DO Description | required|max:250 |
{
"code": "201",
"status": "Created",
"message": "2000330050002",
"data": {
"awb": "2000330050002",
"pickup_date": "2020-10-02 08:58:33",
"booking_number": "",
"customer_account": "M1122017000111",
"cost_center": "GA",
"shipper_name": "Imam",
"shipper_company": "ABC, PT",
"shipper_address": "AA. WAREHOUSE PT. ABC. Jl. ABC Serua Blk. B No.01 Rt 001/01, Kupang",
"shipper_post_code": "1234",
"shipper_phone": "021",
"origin": "Kupang",
"origin_province": "Nusa Tenggara Timur (NTT)",
"receiver_name": "Arifin",
"receiver_company": "PT. DEF",
"receiver_address": "BB. GUDANG. JL. DEFG RT. 01 NO. 1 Bekasi",
"receiver_post_code": "",
"receiver_phone": "05113311111",
"destination": "Bekasi",
"destination_province": "Jawa Barat",
"description": "SPARE PARTS",
"service": "M2-Green",
"special_instruction": "",
"total_pieces": "5",
"total_weight": "208.00",
"total_volume": "54.00",
"volume_weight": "208.00",
"shipping_cost": "3328000.00",
"packing_cost": "0.00",
"surcharge": "0.00",
"shipment_value": "0.00",
"insurance_percent": "0",
"insurance_value": "0.00",
"discount_percent": "0",
"discount": "0.00",
"other_charge": "0.00",
"other_charge_note": "",
"total_charge": "3328000.00",
"received_by": "",
"received_date": "",
"packages": [
{
"description": "SPARE PARTS 1",
"pieces": "2",
"weight": "112.00",
"unit": "KG",
"length": "102.00",
"width": "39.00",
"height": "17.00",
"volume": "34.00",
"volume_weight": "112.00",
"packing_cost": "0.00",
"surcharge_percent": "0",
"surcharge_cost": "0.00"
},
{
"description": "SPARE PARTS 2",
"pieces": "3",
"weight": "96.00",
"unit": "KG",
"length": "57.00",
"width": "33.00",
"height": "14.00",
"volume": "20.00",
"volume_weight": "96.00",
"packing_cost": "0.00",
"surcharge_percent": "0",
"surcharge_cost": "0.00"
}
],
"do_number": [
{
"do_number": "DO-06304",
"do_description": "DN"
},
{
"do_number": "DO-06325",
"do_description": "DN"
}
]
}
}
Update Shipment
HTTP Method | PATCH |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/shipment/{AWB Number} |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
The {AWB Number}
is defined as parameter and required in validation.
{
"customer_account": "M1122017000111",
"cost_center": "GA",
"shipper_name": "Imam",
"shipper_address": "AA. WAREHOUSE PT. ABC. Jl. ABC Serua Blk. B No.01 Rt 001/01, Kupang",
"shipper_post_code": "1234",
"shipper_phone": "021",
"origin": "Kupang",
"origin_province": "Nusa Tenggara Timur (NTT)",
"receiver_name": "Arifin",
"receiver_company": "PT. DEF",
"receiver_address": "BB. GUDANG. JL. DEFG RT. 01 NO. 1 Bekasi",
"receiver_post_code": "",
"receiver_phone": "05113311111",
"destination": "Bekasi",
"destination_province": "Jawa Barat",
"description": "SPARE PARTS",
"service": 16,
"special_instruction": "",
"packages": [
{
"description": "SPARE PARTS 1",
"pieces": "2",
"weight": "112.00",
"unit": "KG",
"length": "102.00",
"width": "39.00",
"height": "17.00",
"volume": "135.00",
"volume_weight": "135.00",
"packing_cost": "0.00",
"surcharge_percent": "0",
"surcharge_cost": "0.00"
},
{
"description": "SPARE PARTS 2",
"pieces": "3",
"weight": "96.00",
"unit": "KG",
"length": "57.00",
"width": "33.00",
"height": "14.00",
"volume": "105.00",
"volume_weight": "105.00",
"packing_cost": "0.00",
"surcharge_percent": "0",
"surcharge_cost": "0.00"
}
],
"do_number": [
{
"do_number": "DO-06304",
"do_description": "DN"
},
{
"do_number": "DO-06325",
"do_description": "DN"
}
]
}
Key | Value | Validation | Description |
---|---|---|---|
customer_account | Customer Account | required|max:250|in:registered customer accounts list | list of accounts can be retrieved from the GET Accounts Endpoint |
cost_center | Cost Center | optional|string|max:250 | Additional information for customer use |
shipper_name | Shipper Name | required|string|max:250 | |
shipper_address | Shipper Address | required|string | |
shipper_post_code | Shipper Postal Code | optional|numeric|max:10 | |
shipper_phone | Shipper Phone | optional|numeric|max:50 | |
origin | City ID or City Name | required | |
origin_province |
If origin = if origin = |
optional or required |
If origin = if origin = |
receiver_name | Receiver Name |
required|string|max:250 |
|
receiver_company | Receiver Company | optional|string|max:250 | |
receiver_address | Receiver Address | required|string | |
receiver_post_code | Receiver Postal code | optional|numeric | |
receiver_phone | Receiver Phone | optional|numeric | |
destination | City ID or City Name | required|string | |
destination_province |
If destination = if destination = |
optional or required |
If destination = if destination = |
description | Shipment Description | optional|string|max:250 | |
service | Service ID | required|numeric | list of accounts can be retrieved from the GET Services Endpoint |
special_instruction | Special Instruction | optional|string|max:250 | Additional information for customer use |
packages | Detail Packages | required|array | See Packages Validations |
do_number | DO / DN / Any Number as Reference per Package | optional|array | See Do Number Validations |
Packages (array)
Key | Value | Validation | Description |
---|---|---|---|
description | Description of Goods | required|max:250|in:registered customer accounts list | Description of Goods |
pieces | Total Pieces of Coli | optional|string|max:250 | Total Pieces of Coli |
weight | Actual Weight of Piece | required|string|max:250 | Actual Weight of Piece, will be multiplied by the total pieces |
length | Length of Piece | required | Length of Piece, will be multiplied by the total pieces |
width | Width of Piece | optional|numeric|max:10 | Width of Piece, will be multiplied by the total pieces |
height | Height of Piece | optional|numeric|max:50 | Height of Piece, will be multiplied by the total pieces |
System Calculation Conditions ;
-> 1 AWB has Many Package
-> 1 Package has Many Piece
-> weight, length, width, height will be multiplied by (n)pieces of single package as sub_total
-> 1 Package = pieces * weight.
-> 1 Package = pieces * dimension.
-> total_pieces = sum of pieces.
-> total_weight = sum of sub_total weight.
-> total_volume = sum of sub_total volume(dimension)
-> volume_weight = sum of sub_total chargeable weight
** See sample of response
Do Number (array)
Key | Value | Validation | Description |
---|---|---|---|
do_number | DO Number | required|max:100 | |
do_description | DO Description | required|max:250 |
{
"code": "200",
"status": "Updated",
"message": "2000330050002",
"data": {
"awb": "2000330050002",
"pickup_date": "2020-10-02 08:58:33",
"booking_number": "",
"customer_account": "M1122017000111",
"cost_center": "GA",
"shipper_name": "Imam",
"shipper_company": "ABC, PT",
"shipper_address": "AA. WAREHOUSE PT. ABC. Jl. ABC Serua Blk. B No.01 Rt 001/01, Kupang",
"shipper_post_code": "1234",
"shipper_phone": "021",
"origin": "Kupang",
"origin_province": "Nusa Tenggara Timur (NTT)",
"receiver_name": "Arifin",
"receiver_company": "PT. DEF",
"receiver_address": "BB. GUDANG. JL. DEFG RT. 01 NO. 1 Bekasi",
"receiver_post_code": "",
"receiver_phone": "05113311111",
"destination": "Bekasi",
"destination_province": "Jawa Barat",
"description": "SPARE PARTS",
"service": "M2-Green",
"special_instruction": "",
"total_pieces": "5",
"total_weight": "208.00",
"total_volume": "54.00",
"volume_weight": "208.00",
"shipping_cost": "3328000.00",
"packing_cost": "0.00",
"surcharge": "0.00",
"shipment_value": "0.00",
"insurance_percent": "0",
"insurance_value": "0.00",
"discount_percent": "0",
"discount": "0.00",
"other_charge": "0.00",
"other_charge_note": "",
"total_charge": "3328000.00",
"received_by": "",
"received_date": "",
"packages": [
{
"description": "SPARE PARTS 1",
"pieces": "2",
"weight": "112.00",
"unit": "KG",
"length": "102.00",
"width": "39.00",
"height": "17.00",
"volume": "34.00",
"volume_weight": "112.00",
"packing_cost": "0.00",
"surcharge_percent": "0",
"surcharge_cost": "0.00"
},
{
"description": "SPARE PARTS 2",
"pieces": "3",
"weight": "96.00",
"unit": "KG",
"length": "57.00",
"width": "33.00",
"height": "14.00",
"volume": "20.00",
"volume_weight": "96.00",
"packing_cost": "0.00",
"surcharge_percent": "0",
"surcharge_cost": "0.00"
}
],
"do_number": [
{
"do_number": "DO-06304",
"do_description": "DN"
},
{
"do_number": "DO-06325",
"do_description": "DN"
}
]
}
}
Delete Shipment
HTTP Method | DELETE |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/shipment/{AWB Number} |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
The {AWB Number}
is defined as parameter and required in validation.
{
"remarks": "Cancel Shipment Test delete"
}
Key | Value | Validation | Description |
---|---|---|---|
remarks | delete reason | required | delete reason |
{
"code": "202",
"status": "Accepted",
"message": "2000330050002",
"data": {
"remarks": "Cancel Shipment Test delete"
}
}
Shipment Detail
HTTP Method | GET |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/shipment/{AWB Number/DO Number/DN Number} |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
The {AWB Number/DO Number/DN Number}
is defined as parameter and required in validation.
{
"code": "200",
"status": "OK",
"message": "2000330050002",
"data": {
"awb": "2000330050002",
"pickup_date": "2020-10-02 08:58:33",
"booking_number": "",
"customer_account": "M1122017000111",
"cost_center": "GA",
"shipper_name": "Imam",
"shipper_company": "ABC, PT",
"shipper_address": "AA. WAREHOUSE PT. ABC. Jl. ABC Serua Blk. B No.01 Rt 001/01, Kupang",
"shipper_post_code": "1234",
"shipper_phone": "021",
"origin": "Kupang",
"origin_province": "Nusa Tenggara Timur (NTT)",
"receiver_name": "Arifin",
"receiver_company": "PT. DEF",
"receiver_address": "BB. GUDANG. JL. DEFG RT. 01 NO. 1 Bekasi",
"receiver_post_code": "",
"receiver_phone": "05113311111",
"destination": "Bekasi",
"destination_province": "Jawa Barat",
"description": "SPARE PARTS",
"service": "M2-Green",
"special_instruction": "",
"total_pieces": "5",
"total_weight": "208.00",
"total_volume": "54.00",
"volume_weight": "208.00",
"shipping_cost": "3328000.00",
"packing_cost": "0.00",
"surcharge": "0.00",
"shipment_value": "0.00",
"insurance_percent": "0",
"insurance_value": "0.00",
"discount_percent": "0",
"discount": "0.00",
"other_charge": "0.00",
"other_charge_note": "",
"total_charge": "3328000.00",
"received_by": "",
"received_date": "",
"packages": [
{
"description": "SPARE PARTS 1",
"pieces": "2",
"weight": "112.00",
"unit": "KG",
"length": "102.00",
"width": "39.00",
"height": "17.00",
"volume": "34.00",
"volume_weight": "112.00",
"packing_cost": "0.00",
"surcharge_percent": "0",
"surcharge_cost": "0.00"
},
{
"description": "SPARE PARTS 2",
"pieces": "3",
"weight": "96.00",
"unit": "KG",
"length": "57.00",
"width": "33.00",
"height": "14.00",
"volume": "20.00",
"volume_weight": "96.00",
"packing_cost": "0.00",
"surcharge_percent": "0",
"surcharge_cost": "0.00"
}
],
"do_number": [
{
"do_number": "DO-06304",
"do_description": "DN"
},
{
"do_number": "DO-06325",
"do_description": "DN"
}
]
}
}
Print AWB
HTTP Method | GET |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/shipment/print/{AWB Number/DO Number/DN Number} |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
The {AWB Number/DO Number/DN Number}
is defined as parameter and required in validation.
return pdf file with http code 200 (OK)
Shipment List
This endpoint is usually used for re-synchronization, if the Client missed some AWB which did not use the API
HTTP Method | GET |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/shipments |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
Key | Value | Validation | Description |
---|---|---|---|
from_date | 2019-12-20 | required | dateformat | Date format "yyyy-mm-dd", Base on Pickup date |
to_date | 2019-12-25 | required | dateformat | Date format "yyyy-mm-dd", Base on Pickup date |
{
"code": "200",
"status": "OK",
"message": "Total Row 2",
"data": [
{
"awb": "2000330050002",
"pickup_date": "2020-10-02 08:58:33",
"customer_account": "M1122017000022",
"shipper_name": "Imam",
"shipper_company": "ABC, PT",
"shipper_address": "AA. WAREHOUSE PT. ABC. Jl. ABC Serua Blk. B No.01 Rt 001/01, Kupang",
"shipper_post_code": "1234",
"shipper_phone": "021",
"origin": "Kupang",
"origin_province": "Nusa Tenggara Timur (NTT)",
"receiver_name": "Arifin",
"receiver_company": "PT. DEF",
"receiver_address": "BB. GUDANG. JL. DEFG RT. 01 NO. 1 Bekasi",
"receiver_post_code": "",
"receiver_phone": "05113311111",
"destination": "Bekasi",
"destination_province": "Jawa Barat",
"description": "SPARE PARTS",
"service": "M2-Green",
"special_instruction": "",
"total_pieces": "5",
"total_weight": "208.00",
"total_volume": "54.00",
"volume_weight": "208.00",
"total_charge": "3328000.00",
"received_by": "",
"received_date": "",
"do_number": " DO-06304, DO-06325"
},
{
"awb": "2000330060001",
"pickup_date": "2020-10-02 17:20:09",
"customer_account": "M1122017000022",
"shipper_name": "Imam",
"shipper_company": "ABC, PT",
"shipper_address": "AA. WAREHOUSE PT. ABC. Jl. ABC Serua Blk. B No.01 Rt 001/01, Kupang",
"shipper_post_code": "1234",
"shipper_phone": "021",
"origin": "Kupang",
"origin_province": "Nusa Tenggara Timur (NTT)",
"receiver_name": "Zainal",
"receiver_company": "PT. GHI",
"receiver_address": "BB. GUDANG. JL. GHI RT. 02 NO. 10 Bekasi",
"receiver_post_code": "",
"receiver_phone": "05113322222",
"destination": "Bekasi",
"destination_province": "Jawa Barat",
"description": "SPARE PARTS",
"service": "M2-Green",
"special_instruction": "",
"total_pieces": "5",
"total_weight": "208.00",
"total_volume": "54.00",
"volume_weight": "208.00",
"total_charge": "3328000.00",
"received_by": "",
"received_date": "",
"do_number": " DO-06334, DO-06335"
}
]
}
Shipment Tracking
This endpoint will return the Tracking information by sequence;
No | Status | Description |
---|---|---|
1 | REQUEST PICKUP | Made due to a customer pick-up request |
2 | CHECKER | Made when the shipment arrives at our warehouse as the first mile |
3 | DATA ENTRY | Created when shipping information is stored in our database |
4 | BAGGING | Preparing shipment for last mile |
5 | UPLIFT | Processing shipment for last mile |
6 | ARRIVAL | Shipment arrived in destination as last mile |
7 | DELIVERY | Delivery to end user |
8 | SUCCESS DELIVERY | Success and delivered |
HTTP Method | GET |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/track/{AWB Number/DO Number/DN Number} |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
The {AWB Number/DO Number/DN Number}
is defined as parameter and required in validation.
{
"code": "200",
"status": "OK",
"message": "",
"data": [
{
"date": "2020-06-25 09:26:23",
"status": "REQUEST PICKUP"
},
{
"date": "2020-06-25 15:58:46",
"status": "CHECKER"
},
{
"date": "2020-06-25 23:42:19",
"status": "DATA ENTRY"
},
{
"date": "2020-06-26 13:43:21",
"status": "BAGGING"
},
{
"date": "2020-07-02 08:21:09",
"status": "UPLIFT"
},
{
"date": "2020-07-06 10:04:32",
"status": "ARRIVAL"
},
{
"date": "2020-07-06 10:04:52",
"status": "DELIVERY"
},
{
"date": "2020-07-04 10:05:00",
"status": "SUCCESS DELIVERY"
}
]
}
Price List
The Price List endpoint is usually used to obtain shipping costs.
The API client can collect data using the API URL without any parameters, and use it for subsequent requests with parameters.
Key values in parameters are referenced in CAR (contract agreement) see API Requirements & To Do List
.
Type the parameter value as shown in the response
example
HTTP Method | GET |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/pricelist |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
Key | Value | Validation | Description |
---|---|---|---|
origin | origin or origin_id | optional | can use origin city or origin id |
destination | destination or destination_id | optional | can use destination city or destination id |
service | service or service_id | optional | can use service name city or service id |
weight | weight | optional | double | chargeable weight, if unit = "unit", weight will be ignored |
unit | ENUM kg,unit | optional | ENUM:kg,unit | kg base (normal shipment) or unit base for charter/trucking if available |
{
"code": "200",
"status": "OK",
"message": "Total Row 10",
"data": [
{
"no": "1",
"id": "14219",
"company": null,
"account_number": "M1122017000111",
"origin": "Jakarta Selatan",
"origin_id": "7185",
"destination": "Bandung",
"destination_id": "3265",
"service": "Charter CDD",
"service_id": "9",
"minimum": "10.00",
"unit": "KG",
"cost": "16500",
"next_cost": "16500",
"effective_date": "2019-01-02"
},
{
"no": "2",
"id": "3932",
"company": null,
"account_number": "M1122017000111",
"origin": "Tanah Pasir",
"origin_id": "157",
"destination": "Bandung",
"destination_id": "3975",
"service": "Charter CDD",
"service_id": "9",
"minimum": "10.00",
"unit": "KG",
"cost": "16500",
"next_cost": "16500",
"effective_date": "2019-01-02"
},
{
"no": "3",
"id": "39899",
"company": null,
"account_number": "M1122017000111",
"origin": "Bekasi",
"origin_id": "7202",
"destination": "Rembang",
"destination_id": "7224",
"service": "Charter CDE",
"service_id": "10",
"minimum": "1.00",
"unit": "UNIT",
"cost": "4500000",
"next_cost": "4500000",
"effective_date": "2019-12-01"
},
{
"no": "4",
"id": "14211",
"company": null,
"account_number": "M1122017000111",
"origin": "Jakarta Selatan",
"origin_id": "7185",
"destination": "Bandung",
"destination_id": "3265",
"service": "M2-Blue",
"service_id": "2",
"minimum": "10.00",
"unit": "KG",
"cost": "47500",
"next_cost": "47500",
"effective_date": "2019-01-02"
},
{
"no": "5",
"id": "14214",
"company": null,
"account_number": "M1122017000111",
"origin": "Jakarta Selatan",
"origin_id": "7185",
"destination": "Wonosari",
"destination_id": "2778",
"service": "M2-Blue",
"service_id": "2",
"minimum": "10.00",
"unit": "KG",
"cost": "33500",
"next_cost": "33500",
"effective_date": "2019-01-02"
},
{
"no": "6",
"id": "1241",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": null,
"destination_id": "4015",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG",
"cost": "11300",
"next_cost": "11300",
"effective_date": "2018-01-01"
},
{
"no": "7",
"id": "820",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Alang-Alang Lebar",
"destination_id": "1399",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG",
"cost": "24300",
"next_cost": "1",
"effective_date": "2018-01-01"
},
{
"no": "8",
"id": "1077",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Ambarawa",
"destination_id": "2962",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG",
"cost": "19800",
"next_cost": "1",
"effective_date": "2018-01-01"
},
{
"no": "9",
"id": "1026",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Andir",
"destination_id": "2492",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG",
"cost": "14900",
"next_cost": "1",
"effective_date": "2018-01-01"
},
{
"no": "10",
"id": "1288",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Anjongan",
"destination_id": "4676",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG",
"cost": "29700",
"next_cost": "1",
"effective_date": "2018-01-01"
}
]
}
Coverage Area
HTTP Method | GET |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/area |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
Key | Value | Validation | Description |
---|---|---|---|
origin | origin or origin_id | optional | can use origin city or origin id |
destination | destination or destination_id | optional | can use destination city or destination id |
service | service or service_id | optional | can use service name city or service id |
weight | weight | optional | double | chargeable weight, if unit = "unit", weight will be ignored |
unit | ENUM kg,unit | optional | ENUM:kg,unit | kg base (normal shipment) or unit base for charter/trucking if available |
{
"code": "200",
"status": "OK",
"message": "Total Row 10",
"data": [
{
"no": "1",
"id": "14219",
"company": null,
"account_number": "M1122017000111",
"origin": "Jakarta Selatan",
"origin_id": "7185",
"destination": "Bandung",
"destination_id": "3265",
"service": "Charter CDD",
"service_id": "9",
"minimum": "10.00",
"unit": "KG"
},
{
"no": "2",
"id": "3932",
"company": null,
"account_number": "M1122017000111",
"origin": "Tanah Pasir",
"origin_id": "157",
"destination": "Bandung",
"destination_id": "3975",
"service": "Charter CDD",
"service_id": "9",
"minimum": "10.00",
"unit": "KG"
},
{
"no": "3",
"id": "39899",
"company": null,
"account_number": "M1122017000111",
"origin": "Bekasi",
"origin_id": "7202",
"destination": "Rembang",
"destination_id": "7224",
"service": "Charter CDE",
"service_id": "10",
"minimum": "1.00",
"unit": "UNIT"
},
{
"no": "4",
"id": "14211",
"company": null,
"account_number": "M1122017000111",
"origin": "Jakarta Selatan",
"origin_id": "7185",
"destination": "Bandung",
"destination_id": "3265",
"service": "M2-Blue",
"service_id": "2",
"minimum": "10.00",
"unit": "KG"
},
{
"no": "5",
"id": "14214",
"company": null,
"account_number": "M1122017000111",
"origin": "Jakarta Selatan",
"origin_id": "7185",
"destination": "Wonosari",
"destination_id": "2778",
"service": "M2-Blue",
"service_id": "2",
"minimum": "10.00",
"unit": "KG"
},
{
"no": "6",
"id": "1241",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": null,
"destination_id": "4015",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG"
},
{
"no": "7",
"id": "820",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Alang-Alang Lebar",
"destination_id": "1399",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG"
},
{
"no": "8",
"id": "1077",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Ambarawa",
"destination_id": "2962",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG"
},
{
"no": "9",
"id": "1026",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Andir",
"destination_id": "2492",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG"
},
{
"no": "10",
"id": "1288",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Anjongan",
"destination_id": "4676",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG"
}
]
}
Services
HTTP Method | GET |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/service |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
Key | Value | Validation | Description |
---|---|---|---|
origin | origin or origin_id | optional | can use origin city or origin id |
destination | destination or destination_id | optional | can use destination city or destination id |
service | service or service_id | optional | can use service name city or service id |
weight | weight | optional | double | chargeable weight, if unit = "unit", weight will be ignored |
unit | ENUM kg,unit | optional | ENUM:kg,unit | kg base (normal shipment) or unit base for charter/trucking if available |
{
"code": "200",
"status": "OK",
"message": "Total Row 10",
"data": [
{
"no": "1",
"id": "14219",
"company": null,
"account_number": "M1122017000111",
"origin": "Jakarta Selatan",
"origin_id": "7185",
"destination": "Bandung",
"destination_id": "3265",
"service": "Charter CDD",
"service_id": "9",
"minimum": "10.00",
"unit": "KG"
},
{
"no": "2",
"id": "3932",
"company": null,
"account_number": "M1122017000111",
"origin": "Tanah Pasir",
"origin_id": "157",
"destination": "Bandung",
"destination_id": "3975",
"service": "Charter CDD",
"service_id": "9",
"minimum": "10.00",
"unit": "KG"
},
{
"no": "3",
"id": "39899",
"company": null,
"account_number": "M1122017000111",
"origin": "Bekasi",
"origin_id": "7202",
"destination": "Rembang",
"destination_id": "7224",
"service": "Charter CDE",
"service_id": "10",
"minimum": "1.00",
"unit": "UNIT"
},
{
"no": "4",
"id": "14211",
"company": null,
"account_number": "M1122017000111",
"origin": "Jakarta Selatan",
"origin_id": "7185",
"destination": "Bandung",
"destination_id": "3265",
"service": "M2-Blue",
"service_id": "2",
"minimum": "10.00",
"unit": "KG"
},
{
"no": "5",
"id": "14214",
"company": null,
"account_number": "M1122017000111",
"origin": "Jakarta Selatan",
"origin_id": "7185",
"destination": "Wonosari",
"destination_id": "2778",
"service": "M2-Blue",
"service_id": "2",
"minimum": "10.00",
"unit": "KG"
},
{
"no": "6",
"id": "1241",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": null,
"destination_id": "4015",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG"
},
{
"no": "7",
"id": "820",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Alang-Alang Lebar",
"destination_id": "1399",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG"
},
{
"no": "8",
"id": "1077",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Ambarawa",
"destination_id": "2962",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG"
},
{
"no": "9",
"id": "1026",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Andir",
"destination_id": "2492",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG"
},
{
"no": "10",
"id": "1288",
"company": null,
"account_number": "M1122017000111",
"origin": "Syamtalira Bayu",
"origin_id": "154",
"destination": "Anjongan",
"destination_id": "4676",
"service": "M2-Blue",
"service_id": "2",
"minimum": "1.00",
"unit": "KG"
}
]
}
DATA RESOURCES
Accounts List
HTTP Method | GET |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/accounts |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
{
"code": "200",
"status": "OK",
"message": "Total Row 3",
"data": [
{
"customer_account": M1122017000111",
"account_name": "ABC, PT",
"attention_name": "IMAM",
"address": "GUDANG A JL. ABC No. 01 Jakarta Selatan"
},
{
"customer_account": "M1122017000112",
"account_name": "ABC, PT",
"attention_name": "IMAM",
"address": "GUDANG B JL. CDE No. 02 Jakarta Timur"
},
{
"customer_account": "M1122017000113",
"account_name": "ABC, PT",
"attention_name": "ARIFIN",
"address": "GUDANG B JL. EFG No. 03 Jakarta Utara"
}
]
}
Area Data
This endpoint is usually used to refresh the option destination data after origin select option is selected
HTTP Method | GET |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/areas |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
Key | Value | Validation | Description |
---|---|---|---|
area_type | origin or destination |
required | ENUM:origin,destination | Area Collection |
filter_city | city name or city_id |
optional | if area_type = origin then destination filtered by filter_city else if area_type = destination then origin filtered by filter_city |
{
"code": "200",
"status": "OK",
"message": "Total Row 10",
"data": [
{
"no": "1",
"city_id": "7453",
"city": "Ambon",
"regency": "Ambon",
"province": "Maluku"
},
{
"no": "2",
"city_id": "7364",
"city": "Balikpapan",
"regency": "Balikpapan",
"province": "Kalimantan Timur"
},
{
"no": "3",
"city_id": "7048",
"city": "Banda Aceh",
"regency": "Banda Aceh",
"province": "Nanggroe Aceh Darussalam (NAD)"
},
{
"no": "4",
"city_id": "7165",
"city": "Bandar Lampung",
"regency": "Bandar Lampung",
"province": "Lampung"
},
{
"no": "5",
"city_id": "7190",
"city": "Bandung",
"regency": "Bandung",
"province": "Jawa Barat"
},
{
"no": "6",
"city_id": "3505",
"city": "Bangil",
"regency": "Pasuruan",
"province": "Jawa Timur"
},
{
"no": "7",
"city_id": "7356",
"city": "Banjarmasin",
"regency": "Banjarmasin",
"province": "Kalimantan Selatan"
},
{
"no": "8",
"city_id": "3418",
"city": "Banyuwangi",
"regency": "Banyuwangi",
"province": "Jawa Timur"
},
{
"no": "9",
"city_id": "1207",
"city": "Baturaja Timur",
"regency": "Ogan Komering Ulu",
"province": "Sumatera Selatan"
},
{
"no": "10",
"city_id": "2539",
"city": "Beji",
"regency": "Depok",
"province": "Jawa Barat"
}
]
}
Settings
Renew Token
HTTP Method | POST |
---|---|
API URL | http://m2msys.mtwomlogistics.com:81/api/settings/token/renew |
Key | Value | Description |
---|---|---|
Authorization | Bearer xxxxxx | Authorization type = Bearer, xxxxxx is token given by M2M Logistics for registered company |
{
"code": "200",
"status": "OK",
"message": "Success",
"data": "You(email@email.com) will receive an email renewal notice. The email will ask you to follow a link to finish renewing your token."
}