NEW API Documentation IDE V.2.4.0
NEW API Documentation IDE V.2.4.0
API Documentation
V.2.4.0
ID Express provides a simple and powerful RESTful API (Application Programming
Interface) to integrate seamlessly with other applications. This documentation
explains how to successfully generate a new order, manage the orders and check
the shipping fee from ID Express.
To make confidential
securityKey ABCDEFGHI123456
requests to another server.
Function:
● To create one or more orders
Validation:
● If ServiceType = 00 (Pickup), then pickupStartTime and pickupEndTime
parameters are mandatory.
● pickupStartTime must be > 1.5 hours greater than orderTime & current time
● pickupEndTime must be at least 4 hours greater than pickupStartTime
Methods:
● POST
Request URL:
● {{base_url}}/open/v1/waybill/create
- Max value is
Yes, 100,000,000
itemValue Item value String
if insured= 1 - Max value is 5,000,000
if codAmount > 0
10 digit- Unix
Timestamp
Starting time Depends on
pickupStartTime Long (Must be 90 minutes
range of Pick-up Time serviceType
greater than orderTime
& current time)
10 digit - Unix
Timestamp
End time range Depends on
pickupEndTime Long (Must be 240 minutes
of Pick-up Time serviceType
greater than
pickupStartTime)
Data
data=[
{
"orderNo":"IDTEST234220",
"waybillNo":"",
"orderTime": 1609144242,
"expressType":"00",
"itemName":"Colorful Clothes",
"insured":"0",
"itemRemarks":"Size: L, Black Blue White",
"itemQuantity":1,
"itemCategory":"00",
"weight":"1",
"length":11,
"width":15,
" height":17,
"itemValue":"200000",
"senderName":"John Doe",
"senderEmail":"[email protected]",
"senderPhoneNumber":"081292823829",
"senderCellphone":"081292823829",
"senderProvinceId":1,
"senderCityId":37,
"senderDistrictId":14905,
"senderAddress":"512 Daugherty Circles New Dejuanburgh, DE 63176-1395",
"senderZipCode":"10060",
"recipientName":"Kevin",
"recipientEmail":"[email protected]",
"recipientPhoneNumber":"085921065965",
"recipientCellphone":"085921065965",
"recipientProvinceId":1,
"recipientCityId":39,
"recipientDistrictId":14918,
"recipientAddress":"JL Gatot Subroto X No 9",
"serviceType":"00",
"codAmount":"100000",
"paymentType":"01",
"pickupStartTime":1609194642,
"pickupEndTime":1609453842,
},
{
"orderNo": "IDTEST2343320",
"orderTime": 1609144242,
"expressType":"00",
"itemName": "Milego Jeans",
"insured":"0",
"itemRemarks": "Size: 32, Black Washed",
"itemQuantity":1,
"itemCategory":"00",
"weight": "0.5",
"length":0,
"width":0,
"height":0,
"insuranceAmount":"120",
"itemValue":"100000",
"senderName":"John Doe",
"senderEmail":"[email protected]",
"senderPhoneNumber":"081292823829",
"senderCellphone":"081292823829",
"senderProvinceId":1,
"senderCityId":37,
"senderDistrictId":14905,
"senderAddress":"512 Daugherty Circles,New Dejuanburgh, DE 63176-1395",
"senderZipCode":"10060",
"recipientName": "Kevin",
"recipientEmail":"[email protected]",
"recipientPhoneNumber":"085921065965",
"recipientCellphone":"085921065965",
"recipientProvinceId":1,
"recipientCityId":39,
"recipientDistrictId":14918,
"recipientAddress":"JL Gatot Subroto X No 9",
"serviceType":"01",
"codAmount":"100000",
"paymentType":"01"
}
]
&appId=xxxxxxx&sign=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Successful Response (Created Successfully)
Failed Response
Failed Response (Duplicated Order/Already existed)
1.2. Modify Waybill / Edit Waybill
Function:
● To edit waybill information
Note: Waybill that has been picked up cannot be modified.
Methods:
● POST
Request URL:
● {{base_url}}/open/v1/waybill/update
00 = STD (Standard)
expressType Express type String (2) Yes 03 = iDlite (iDlite)
06 = iDtruck (Cargo)
00 Items
itemCategory Item Category String (2) Yes
01 Document
{
"code": 0,
"desc": null,
"total": null,
"data": null
}
"code": 1100,
"desc": "The waybill has been picked up and cannot be updated",
"total": null,
"data": null
}
"code": -100000,
"total": null,
"data": null
}
1.3. Cancel Waybill
Function:
● To cancel waybill
Note: Waybills that have been picked up cannot be canceled.
Methods:
● POST
Request URL:
● {{base_url}}/open/v1/waybill/cancel
Response Parameter
Request Example
● Method: POST
● URL: https://api-stg.idexpress.tech/open/v1/waybill/cancel
● Request Body:
x-www-form-urlencoded:
data=
{
"waybillNo": "IDP003699812429"
}
&appId=100101&sign=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Successful Response
{
"code": 0,
"desc": null,
"total": null,
"data": null
}
"code": 1100,
"desc": "The waybill has been taken and cannot be canceled",
"total": null,
"data": null
}
{
"code": -100000,
"desc": "System exception",
"total": null,
"data": null
}
2.1. Tracking Waybill
Function:
● To track the waybill progress.
Supported for order number and waybill number.
Methods:
● GET
Request URL:
● {{base_url}}/open/v1/waybill/get-tracking
Request Parameter
Response Parameter
basicInfo
itemInfo
recipientInfo
01 - Security
relation Relation of signer String
02 - Receptionist
03 - Siblings
Request Example
● Method: GET
● URL: https://api-stg.idexpress.tech/open/v1/waybill/ get-
tracking?data=IDD654963289986&appId=100001&sign=xxxxxxxxxxxxxx
Successful Response
{
"code":0,
"desc":null,
"total":null,
"data":
{
"basicInfo":
{
"orderNo":"OR0111666000999",
"waybillNo":"IDD955255915888",
"shipingTime":1294890876859
},
"itemInfo":
{
"itemName":"ITEMNAME",
"insured":"0",
"itemRemarks": "itemRemarks",
"itemQuantity":122,
"itemCategory":"01",
"weight":"12.34",
"length":222,"width":222,"height":222,
"insuranceAmount":"123",
"itemValue":"124"
},
"senderInfo":
{
"senderName":"senderName",
"senderEmail":"[email protected]",
"SenderPhoneNumber":"1599090889",
"SenderCellphone":"5678999",
"SenderProvince":"DKI JAKARTA",
"SenderCity":"JAKARTA TIMUR",
"SenderDistrict":"KUNINGAN",
"SenderAddress":"SenderAddress House 521",
"SenderZipCode":"5035",
},
"recipientInfo":
{
"recipientName":"recipientName",
"recipientEmail":"[email protected]",
"recipientPhoneNumber":"15990908888",
"recipientCellphone":"5678888",
"recipientProvince":"JAWA TENGAH",
"recipientCity":"CILACAP",
"recipientDistrict":"CILACAP",
"recipientAddress":"recipientAddress House 677",
},
"historys":
[
{
"waybillNo":"IDD955255915888",
"operationType":"pick up scan",
"operationTime":1294890876859,
"courierName":"CourierAdmin",
"currentBranch": "HEADQUARTER",
"nextBranchName":"BranchName",
"proofOfStatus": "https://google.com/image.jpg",
"relation":"Parent",
"signer":"signer1"
},
{
"waybillNo":"IDD955255915888",
"operationType":"Loading scan",
"operationTime":1294890876859,
"courierName":"CourierAdmin",
"currentBranch": "HEADQUARTER",
"nextBranchName":"BranchName",
"proofOfStatus":" ",
"relation":"Parent",
"signer":"signer1"
}
]
}
}
{
"code": 100002,
"desc": "Unable to find waybill",
"total": null,
"data": null
}
{
"code": -100000,
"desc": "System exception, please contact us",
"total": null,
"data": null
}
2.2. Get Waybill’s Last Status
Function:
● To get last status of a waybill(s)
Methods:
● POST
Request URL:
● {{base_url}}/open/v1/waybill/get-last-operation-waybill-with-fee
Response Parameter
data=
[
{
"waybillNo”: “IDE12345689001”
},
{
"waybillNo":"IDE123456789122"
}
]
&appId=100001&sign=xxxxxxxxxxxxxxxxxx
{
"code": -100000,
"desc": "System exception",
"total": null,
"data": null
}
3.1. Check Standard Shipping Fee
Function:
To get the shipping fee from origin and destination inputted
Methods:
● POST
Request URL:
● {{base_url}}/open/v2/waybill/get-standard-fee
Data
Recipient Location
recipientDistrictId Long Yes
Code
Unit: Kg
weight Weight String Yes Support 2
decimals
00 = STD (Standard)
expressType Express Type String No 03 = iDlite (iDlite)
06 = iDtruck (Cargo)
Response
Request Example
● Method: POST
● URL: https://api-stg.idexpress.tech/open/v2/waybill/get-standard-fee
● Request Body:
x-www-form-urlencoded:
data=
{
"senderCityId":36,
"recipientDistrictId":14989,
"weight":"0.5",
"expressType":"00"
}
&appId=100001&sign=xxxxxxxxxxxxxxxxxx
Successful Response when expressType is defined:
{
"code": 0,
"desc": "",
"total": 1,
"data": {
"selected": {
"expressType": "00",
"publishRate": 5200,
"clientRate": 5200,
"canCOD": 1,
"minSla": 0,
"maxSla": 0
}
}
}
"code": 0,
"desc": "",
"total": 1,
"data": {
"all": [
"expressType": "00",
"publishRate": 10000,
"clientRate": 10000,
"canCOD": 1,
"minSla": 1,
"maxSla": 2
},
{
"expressType": "03",
"publishRate": 6000,
"clientRate": 6000,
"canCOD": 1,
"minSla": 1,
"maxSla": 2
},
"expressType": "06",
"publishRate": 30000,
"clientRate": 30000,
"canCOD": 1,
"minSla": 3,
"maxSla": 4
{
"code": 1101,
"desc": "No standard quote information found",
" total": null,
"data": null
}
{
"code": -100000,
"desc": "System exception",
"total": null,
"data": null
}
3.2. Check Nearest Branch from Longitude & Latitude
Function:
To get the nearest branch from inputted longitude and latitude
Methods:
● POST
Request URL:
● {{base_url}}/open/v1/waybill/get-nearest-branch
Data:
Response Data:
Request Example
● Method: POST
● URL: https://api-stg.idexpress.tech/open/v1/waybill/get-nearest-branch
● Request
Body:
data =
{
"longitude":"-6.20934100",
"latitude":"106.97338300"
}
&appId=1000001&sign=xxxxxxxxxxxxxxxxxxxxxxx
Successful Response:
{
"code":0,
"desc":null,
"total":null,
"data":
[
{
"branchNo": "IDE_10",
"branchName": "IDE_Name1",
"longitude": "-6.20760500",
"latitude": "106.58821900",
"pic": "021458521334",
"cellphone": "021458521334",
"detailAddress": "recipientAddress House 678"
},
{
"branchNo": "IDE_11",
"branchName": "IDE_Name2",
"longitude": "-8.20760500",
"latitude":"106.58821900",
"pic": "021458521335,
"cellphone": "021458521335,
"detailAddress": " recipientAddress House 679"
}
]
}
{
"code": 1102,
"desc": "The branch does not exist",
"total": null,
"data": null
}
4.1. Webhook Push Tracking Status
Function:
● To push tracking status of a waybill
Methods:
● POST
Request URL:
● To be provided by client
Request Parameters
Message
Sample Request
[
{
“clientCode”: “100101”,
“orderNo”: “ORD000000123”,
“waybillNo”: “IDE123456789012”,
“operationtype”: “Pickup Scan”,
“lastOperationTime”: “1641800878”,
“courierName”: “Abdulah”,
“courierPhoneNumber”: null,
“currentBranch”: “TH KEMBANGAN”,
“nextBranch”: null,
“signer”: null,
“relation": null,
“problemDescription”: null,
“proofOfStatus”: “test.jpg",
“message”: “Paket telah di pickup oleh Abdulah”
},
{
“clientCode”: “100101”,
“orderNo”: “ORD000000123”,
“waybillNo”: IDE123456789012,
“operationtype”: “Sending Scan”,
“lastOperationTime”: “1641800878”,
“courierName”: null,
“courierPhoneNumber”: null,
“currentBranch”: “TH KEMBANGAN”,
“nextBranch”: “TH BEKASI”,
“signer”: null,
“relation”: null,
“problemDescription”: null,
“proofOfStatus”: null,
“message”:” Paket dalam transit ke TH BEKASI”
},
{
“clientCode”: “100101”,
“orderNo”: “ORD000000123”,
“waybillNo”: “IDE123456789012”,
“operationtype”: “Problem on Shipment Scan”,
“lastOperationTime”: “1641800878”,
“courierName”: null,
“courierPhoneNumber”: null,
“currentBranch”: “TH BEKASI”,
“nextBranch”: null,
“signer”: null,
“relation”: null,
“problemDescription”: “Paket Hilang”,
“proofOfStatus”: “test.jpg",
“message”: “Pengiriman bermasalah dikarenakan Paket Hilang”
},
{
“clientCode”: “100101”,
“orderNo”: “ORD000000123”,
“waybillNo”: “IDE123456789012”,
“operationtype”: “Delivery Scan”,
“lastOperationTime”: “1641800878”,
“courierName”: “Abdulah”,
“courierPhoneNumber”: “08123456789”,
“currentBranch”: “TH BEKASI”,
“nextBranch”: null,
“signer”: null,
“relation”: null,
“problemDescription”: null,
“proofOfStatus”: null
“message”: “Paket sedang dalam pengiriman oleh abdulah”
},
{
“clientCode”: “100101”,
“orderNo”: “ORD000000123”,
“waybillNo”: “IDE123456789012”,
“operationtype”: “POD Scan”,
“lastOperationTime”: “1641800878”,
“courierName”: “abdulah”,
“courierPhoneNumber”: null,
“currentBranch”: TH BEKASI,
“nextBranch”: null,
“signer”: Hafif,
“relation”: Parent,
“problemDescription”: null,
“proofOfStatus”: “test.jpg",
“message”: “Paket telah di terima oleh parent, hafif”
}
]
Sample Response
SUCCESS
{
"status": 200,
"message": "Success"
}
FAILED
{
"status": 400,
"message": "Invalid data sent"
}
Sample Request
{
"clientCode": "100101",
"waybillNo": "IDE123456789012",
"expressType": "00",
"actualWeight": “2400”,
"volumetricWeight": "1900",
"calculatedWeight": “3000”,
"totalShippingFee": “30000”
}
Sample Response
SUCCESS
{
"status": 200,
"message": "Success"
}
FAILED
{
"status": 400,
"message": "Invalid data sent"
}
5.1 Generate Reserved Waybill Number
Function:
● To generate reserved waybill number
Methods:
● POST
Request URL:
● {{base_url}}/open/v1/book
data
Response Parameter
Successful Response
Function:
● To extend the expire time of generated reserved waybill number
Methods:
● PUT
Request URL:
● {{base_url}}/open/v1/rebook
Data
Response Parameter
Successful Response
Failed Response (the waybill is not exists or already been picked up)
Error Message
Error Code List:
Code Description
0 Success
100011 Pickup Start Time and Pickup End Time cannot be null
*Note: This is a non-final version of error message list. If you found any code that
doesn’t exist in the table above, please contact ID Express TECH Division.
Waybill Paper information
Above is the example of iDexpress waybill label, there is no restriction on the size
of the paper. However, please make sure the information that highlighted in the above
picture is included, and also make sure the visibility of the information.
Changelog:
Ver. 2.1 :
- Add proofOfStatus parameter on Get Tracking Status API
- Add waybillNo parameter on Create Order API to cater reserved waybill
Ver. 2.2 :
- Add Book & Rebook capability for reserve waybill
- Add waybillNo parameter on Create Batch Order
Ver 2.2.1:
- Add value “Dropped Off at Store” on operationType parameter for Get Tracking Waybill
- Add value "Dropped Off at Store" on lastStatus parameter for Get Waybill's Last Status
- Add value "Dropped Off at Store" on operationType parameter for Webhook Push Tracking
Status
Ver 2.2.2:
- Add new parameter “minSla” and “maxSla” to Batch Create Orders and Check Standard
Shipping Fee
Ver 2.3.0:
- Add iDlite express type and remove SameDay express type on Create Order & Check Shipping
Fee
- Add new status on Get Tracking (Cancel New Order) and Webhook Push Tracking Status (Cancel
Order) for orders that canceled due to still unprocessed after 14 days
Ver 2.4.0:
- Change endpoint Check Shipping Fee to v2