Introduction
Welcome to the NeoTMS API!
This documentation provides details of each endpoints for the NeoTMS APIs. The major of examples are provided in javascript, however the APIs can be used with any language supporting Http and Json.
Authentication
HTTP headers
Typical headers should be sent in the request:
Content-Type: application/json
Authorization: Token XXXX
The authentication and authorization is implemented in the Authorization http header. The format of the header is:
Authorization: Token Base64(accessToken|customerId)
Example:
Authorization: Token NWFkZmRmOGItOTQ4YS00ZjQ5LWFlY2ItNjcxM2YwNWE5NGVmfDk4NTMxMjk5LWJhNjEtNGY5OC1iY2RlLTVkYjlhZjMxMzgxOA==
Internal organisation users can use organisationId in place of customerId when the users do not wish to work with a specific customer, so the header can be:
Authorization: Token Base64(accessToken|organisationId)
To obtain the accessToken, the client shall use token API.
There is no clash between organisationId and customerId in the Authorization header, as they are GUID and globally unique across all objects.
Request for initial token (login)
This endpoint is to get the initial accessToken used in subsequent requests.
It is similar to the login process of traditional web systems.
The request json:
UserForm = {
"loginId":"harry@company.com",
"password":"12345"
}
Javascript request:
var _httpClient=new HttpClient();
var model = JSON.stringify(UserForm);
var headers = {
'Content-Type' : 'application/json'
};
var req = new Request(URL, 'POST', headers, model);
var apicall = _httpClient.send(req);
Example response
{
"accessToken":"XXXXXXXX",
"accessTokenExpiry":"yyyy-MM-dd HH:mm:ss",
"organisationIds":[],
"customerIds": [],
"userGuid":xxxx,
"refreshToken": "XXXXXX",
"refreshTokenExpiry":"yyyy-MM-dd HH:mm:ss",
"isDriver": false,
"isSuperUser": false,
"isOrganisationCustomerUser": false,
"isOrganisationStaff": true
}
HTTP Request URL
Request Properties
| Attribute | Description | Type | Optional / Mandatory |
|---|---|---|---|
loginId |
login ID, typically it is the email or unique id assigned by the organisation | string | Mandatory |
password |
Password for the user | string | Mandatory |
Support for encrypted password will be added in the near future.
Response Properties
| Attribute | Description | Type |
|---|---|---|
userGuid |
the UUID of the user | string |
accessToken |
Access token | string |
accessTokenExpiry |
Access token expiry time | datetime |
refreshToken |
Refresh token | string |
refreshTokenExpiry |
Refresh token expiry time | datetime |
customerIds |
List of customerId associated with the user |
uuid[] |
organisationIds |
List of organisationId associated with the user |
uuid[] |
isDriver |
indicate if this is a driver. Driver has authorization to view (not edit) to the data of all customers within an organisation | true/false |
isSuperUser |
indicate if this is a super user (root) who is authorized to all organisations, all customers | true/false |
isOrganisationCustomerUser |
indicate if this is a customer user. Customer user can only access data of customer in the list of customerIds returned |
true/false |
isOrganisationStaff |
indicate if this is an organisation staff. staff can access data from the list or organisationIds and customerIds returned. If no customerIds returned, the staff implicitly has access to all customers' data within the organisations |
true/false |
In the response, the refreshToken has a longer lifetime than the accessToken and is used for renewing the accessToken without over-frequently transmitting loginId and password over the network.
After the accessTokenExpiry time, client will need to refresh the accessToken (if the refreshToken hasn't expired), or request for a totally new accessToken and new refreshToken by providing loginId + password.
Refresh token (keep alive)
When the accessToken expires, but the freshToken hasn't expired, the client should use this endpoint to obtain a new accessToken. This will reduce the chance of sending loginId+password frequently over the network. If the accessToken expires AND the refreshToken also expires, the client will need to use the 'Request for access token' end point (providing loginId and password) to get the accessToken and refreshToken again.
The request json is empty, only the
Authorizationheader is examined:
{}
Javascript request:
var _httpClient=new HttpClient();
var model = {};
var headers = {
'Content-Type' : 'application/json',
'Authorization': 'Token ' + Base64(refreshToken|userGuid)
};
var req = new Request(URL, 'POST', headers, model);
var apicall = _httpClient.send(req);
Example response (new
accessTokenandrefreshTokenreturned)
{
"accessToken":"XXXXXXXX",
"accessTokenExpiry":"yyyy-MM-dd HH:mm:ss",
"refreshToken": "XXXXXX",
"refreshTokenExpiry":"yyyy-MM-dd HH:mm:ss"
}
HTTP Request URL
The request is empty, only the Authorization header (=base64(refreshtoken|userGuid)) is important in this request.
Response Properties
| Attribute | Description | Type |
|---|---|---|
accessToken |
the new access token | string |
accessTokenExpiry |
the new access token expiry time | datetime |
refreshToken |
the new refresh token | string |
refreshTokenExpiry |
the new refresh token expiry time | datetime |
This end point also returns a new freshToken to be used in subsequent refresh requests.
The userGuid in the header (Base64 format) is the userGuid returned by the initial token request. This ID is GUID, not the loginId.
Invalidate token early (logout)
accessToken automatically expires at the specified period. However, if the client wishes to invalidate (release) it early (so that the token cannot be compromised), the client can use this end point.
It is similar to the logout process of traditional web systems.
Javascript request:
var _httpClient = new HttpClient();
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token xxxxx'
};
var req = new Request(URL, 'POST', headers);
var apicall = _httpClient.send(req);
Response is empty with status 200.
HTTP Request
This will invalidate both accessToken and refreshToken.
Display API generated images
File attachment (DB)
During consignment operation, there are images or signatures captured and stored into DB, and may be required to display at some screens. Because the displaying of the image is using the img src="" tag, the authHeader cannot be supplied. Therefore, this endpoint accepts auth string in the query.
example HTML code
<img src="webapi/file-attachment/view/c4cb220c-9251-481b-9b74-3daf46a1febd?auth=xxxxxx" />
HTTP Request
Request parameter
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
| id | the image id (in the table of file attachment) | uuid | mandatory | |
| auth | the authorization token as it was sent by header (without the word Token and must be url-encoded after base64-encoded) |
string | mandatory |
Generated contents(folder)
Binary generated contents can be: the PDF print-out (invoice, statement). These contents are generated temporarily and removed after a specified period of time. This can be viewed outside of javascript (in another window etc...) and auth query parameter can be supplied.
window.open("webapi/generated-content/view/pdf/c4cb220c-9251-481b-9b74-3daf46a1febd?auth=xxxxxx");
HTTP Request
Request parameter
| Parameter | Description | Type | Optional / Mandatory |
|---|---|---|---|
| id | the content id (generated from the code) | uuid | mandatory |
| type | the type of content (informed from previous api call) (pdf,jpg,jpeg,png) | text | mandatory |
| auth | the authorization token as it was sent by header (without the word Token and must be url-encoded after base64-encoded) |
string | mandatory |
User profile (current user)
The endpoints in this set of API is used to select default organisations, default customer, update password, get profile information ..etc.. of the current user
Select default organisation
This end points is to set the default organisation the user wants to work with. The default organisation will be returned at the first place in the authentication (login) process.
Javascript request:
var _httpClient = new HttpClient();
var headers = {
'Authorization':'Token xxxx'
}
var id = 'yyyy';//default organisationId user wants to work with
var req = new Request(URL + '/master/my-profile/organisations/' + id + '/select','PUT',headers);
Response is the list of organisations with the selected organisation at the top;
[
{
"name": "Test",
"addressLine1": "27-31 Wilson Street",
"suburb": "ROYAL PARK",
"postcode": "5014",
"state": "SA",
"country": "AU",
"phoneNumber": "08 8249 2249",
"billingType": "organisation",
"billingDate": "2020-11-20T00:00:00",
"timeZone": "AEST",
"insertTime": "2021-07-19T11:42:58.635635",
"id": "1bc86266-abdf-4454-9ba5-72bfa865af6d",
"isActive": true,
"insertUserId": "bf06f550-9c71-4a4c-9774-83996d3d629f",
"taxName": "GST",
"taxRate": 0.10,
"addressBooks": [],
"articleMasters": [],
"customers": []
},
{
"name": "TEST 1",
"addressLine1": "PO Box 215",
"addressLine2": "Port Adelaide Business Centre",
"suburb": "Port Adelaide",
"postcode": "5005",
"state": "SA",
"country": "AU",
"phoneNumber": "08 8249 2249",
"contactName": "",
"email": "",
"billingType": "organisation",
"billingDate": "2020-11-02T00:00:00",
"timeZone": "ACDT",
"insertTime": "2020-11-02T13:50:00",
"id": "35c12f9b-ec89-4296-baad-89d16f93ad6f",
"isActive": true,
"insertUserId": "bf06f550-9c71-4a4c-9774-83996d3d629f",
"taxName": "GST",
"taxRate": 0.10,
"addressBooks": [],
"articleMasters": [],
"customers": []
}
]
If the user has no access to the organisation, 401 (unauthorized) response code will be returned
HTTP Request
Request parameter on URL
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
| id | the organisation id to set as default | uuid | mandatory |
Change password
Javascript request:
var _httpClient = new HttpClient();
var headers = {
'Authorization':'Token xxxx'
}
var changePassForm = {
currentPassword:'xxxx',
newPassword: 'yyyy'
}
var id = 'yyyy';//default organisationId user wants to work with
var req = new Request(URL + '/master/my-profile/passwd','PUT',changePassForm, headers);
Response is empty with status 2xx (success)
HTTP Request
Request parameter
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
| currentPassword | the current password | text | mandatory | |
| newPassword | the new password | text | mandatory |
Get user profile
This endpoint returns the current user profile information (name, email ..etc..)
Javascript request
var _httpClient = new HttpClient();
var headers = {
'Authorization':'Token xxxx'
}
var req = new Request(URL + '/master/my-profile','GET', headers);
Response sample:
{
"id": "f7c8da9d-dae8-4631-9961-c6385961a155",
"type": "organisationStaff",
"loginId": "xxxx@yyyy.zzz",
"firstName":"John",
"lastName":"Citizen",
"phoneNumber":"0000000",
"timeZone":"AEDT",
"lastPasswordChangeDate": "2021-11-16T16:42:57.413064",
"isActive": true,
"lastAuthTokenRefreshTime": "",
"insertUserId": "bf06f550-9c71-4a4c-9774-83996d3d629f",
"updateUserId": "f7c8da9d-dae8-4631-9961-c6385961a155",
"insertTime": "2020-11-09T16:06:00.239809",
"updateTime": "2021-11-19T10:20:11.741364",
"lastRefreshTokenRefreshTime": "2021-11-19T10:20:11.741184",
"organisations": [
{
"name": "Test",
"addressLine1": "27-31 Wilson Street",
"suburb": "ROYAL PARK",
"postcode": "5014",
"state": "SA",
"country": "AU",
"phoneNumber": "08 8249 2249",
"billingType": "organisation",
"billingDate": "2020-11-20T00:00:00",
"timeZone": "AEST",
"insertTime": "2021-07-19T11:42:58.635635",
"id": "1bc86266-abdf-4454-9ba5-72bfa865af6d",
"isActive": true,
"insertUserId": "bf06f550-9c71-4a4c-9774-83996d3d629f",
"taxName": "GST",
"taxRate": 0.10,
"addressBooks": [],
"articleMasters": [],
"customers": []
},
{
"name": "TEST",
"addressLine1": "PO Box 215",
"addressLine2": "Port Adelaide Business Centre",
"suburb": "Port Adelaide",
"postcode": "5005",
"state": "SA",
"country": "AU",
"phoneNumber": "08 8249 2249",
"contactName": "",
"email": "",
"billingType": "organisation",
"billingDate": "2020-11-02T00:00:00",
"timeZone": "ACDT",
"insertTime": "2020-11-02T13:50:00",
"id": "35c12f9b-ec89-4296-baad-89d16f93ad6f",
"isActive": true,
"insertUserId": "bf06f550-9c71-4a4c-9774-83996d3d629f",
"taxName": "GST",
"taxRate": 0.10,
"addressBooks": [],
"articleMasters": [],
"customers": []
}
],
"customers": []
}
HTTP Request
Update user profile
This end point can update user's firstName, lastName, phoneNumber, timeZone, and loginId. (loginId must be unique globally)
Javascript request:
var _httpClient = new HttpClient();
var headers = {
'Authorization':'Token xxxx'
}
var updateProfileForm = {
lastName:'xxxx',
firstName: 'yyyy',
phoneNumber:'00000000',
timeZone:'AEST',
}
var req = new Request(URL + '/master/my-profile','PUT',updateProfileForm, headers);
Response is the same as the get profile request with updated information
HTTP Request
Request parameter
| Parameter | Type | Description |
|---|---|---|
| lastName | text | |
| firstName | text | |
| phoneNumber | text | |
| timeZone | text | do not provide this field if user doesn't want to change |
| loginId | text | new loginId must be unique, do not provide this field if user doesn't want to change |
Usage Information
Field Formats
Learn about field formats used by the API services.
Decimal Number formats
Throughout the documentation, we use the following notation to indicate the format of fields containing fixed point or decimal numbers: N.M N is the maximum number of digits to the left of the decimal point, and M is the maximum number of digits to the right of the decimal point. For example, "6.2" means up to 6 digits left of the decimal point and up to 2 digits to the right. When there is no imposed limit on the number of digits to the left of the decimal point, we use this notation: N.2, N.3, ... This means the maximum number of digits on the right of the decimal point is provided, but there is no limit on the number of digits on the left. In these cases, extremely large numbers are possible. When providing a decimal value to an API service, in all cases the API service treats the decimal point and fractional part as Optional. For example, sending "9" is the same as sending "9.0".
Date and Time formats
Except where otherwise indicated, the API services use below Date/Time format for request/ response fields:
yyyy - mm - dd T hh : mm : ss . ms
where:
-yyyy is the year.
-mm is the month.
-dd is the day.
-The letter T signifies that the time will follow.
-hh is the hour in 24 hour time.
-mm is the minute of the hour and.
-ss is the secord of the minute.
-. represents the fractional secords.
-ms is the minisecond.
UUID format
All IDs used in the system is UUID which has 36 characters length. Example:
123e4567-e89b-12d3-a456-426614174000
Http response code
| Code | Name | Description |
|---|---|---|
| 2xx | Sucess | Request completed sucessfully. |
| 400 | Bad Request | The request was invalid, violating data constraints ..etc.. |
| 401 | Unauthorized | The request did not include an authentication token or the authentication token was expired. |
| 403 | Forbidden | The client did not have permission to access the requested resource. |
| 404 | Not Found | The requested resource was not found.. |
| 405 | Method Not Allowed | The HTTP method in the request was not supported by the resource. For example, the DELETE method cannot be used with the Agent API. |
| 409 | Conflict | The request causes a conflict, (duplicated consignment number, duplicated code ..etc..) |
| 429 | Too many requests | The client is calling the API at a higher rate than expected. |
| 5xx | Server error | The server encountered a critial error internally during processing the request. |
Hilight error field
Example error reponse:
{
"errors": {
"SortField": //the field name causing error
[
"The field SortField is required.", //error 1,
//there is no error code, client can only display the message as-is
"The field SortField must be one of 'InsertTime', 'InsertId'" // error 2
],
"Email": //the field name causing error
[
"RANGE - The field Email must be between 20-50 characters", //error 1
"FORMAT - The field Email must have format xxx@domain" // error 2
],
"CustomerConsignmentNumber":
[
"CONFLICT - The same CustomerConsignmentNumber already exists"
]
""://whole object business rule error, no specific fields specified
[
"No matching route found for consignment"
]
}
}
Hilight the error fields on screen, remove the code, replace text label and display the message
onError:
for(let errorFieldName in response.errors)
{
if(errorFieldName != ""){
document.getElementsByName(errorFieldName)[0].style.borderColor='red';
for(let idx in respsonse.errors[errorFieldName])
{
let errorMessage = response.errors[errorFieldName][idx]
.replace(/^[A-Z0-9]+\s\-\s/,'')
.replace(errorFieldName,'field name label');
//show error message
}
}else {//whole business object rule error
for(let idx in respsonse.errors[errorFieldName])
{
let errorMessage = response.errors[errorFieldName][idx]
.replace(/^[A-Z0-9]+\s\-\s/,'')
//show error message
}
}
}
In case of constraint violations (for example: the request expect to have a field but the json body doesn't have that field), http status 400 is returned with following data:
| Attribute | Type | Description | ||
|---|---|---|---|---|
| errors | object | |||
| errors.<FieldName> | array | FieldName is the field causing the rror | ||
| errors.<FieldName>[] | string | each element is an error (a field can have multiple errors). |
The client then can examine each field of the errors object to highlight the error field on the screen for users. However, because the FieldName is javascript name, it may not be the same as the label displayed next to the field name on screen, the client should replace that FieldName in the error string with the correct label displayed for the field.
The FieldName can be empty which indicates whole object business logic error.
The error string may sometimes start with some upper case letters prefix as error code(ex: CONFLICT, ...). The client can use this code to translate the message into appropriate language if required or remove this code from displaying if no translation is needed. When there is no code (no prefix), the client can just display the message as-is.
Show API generated images
Refer to display image or signature for details
Ping the API server
This endpoint is used to 'ping' the API server (to see if the API server is up). No authorization is needed.
var _httpClient = new HttpClient();
var headers = {};
var req = new Request('/ping', 'GET', headers);
var apicall = _httpClient.send(req);
HTTP Request URL
Response example:
{
"buildTime": "2021-08-04 13:52:50+10:00",
"msg":"API running ok",
"startupTime":"2021-08-04 14:52:50+10:00"
}
Common Http Request
The common urls for CRUD actions are
| Http method | url | example (PUT and POST have json in the body) |
description |
|---|---|---|---|
| POST | POST /consignment |
create an object with data in the json body and return the object created | |
| GET | /{id} | GET /consignment/21efbf95-4d77-4b03-abef-1414137adc8f |
return the object with id provided on url |
| PUT | /{id} | PUT /consignment/21efbf95-4d77-4b03-abef-1414137adc8f |
update the object with id provided on url and data in the json body and return the object updated |
| PUT | PUT /consignment |
check data in the json, if object.id exists, update; if object.id doesn't exist, create it, then return the object created. |
|
| DELETE | /{id} | DELETE consignment/21efbf95-4d77-4b03-abef-1414137adc8f |
delete the object with id provided in URL. |
| POST | /query | POST /consignment/query/ |
search for objects with the search criteria provided in the body json |
Search (query) Request
Most object supports quick search through the /query url using a POST request.
Example:
let searchRequest =
{
searchField: "Code",
searchValue: "AB",
searchType: "*",
sortField: "InsertTime",
sortAsc: false,
pageNo: 2,
pageSize: 40,
}
let _httpClient = new HttpClient();
let headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
let req = new Request('/master/article/query' , 'POST', headers, searchRequest);
var apicall = httpClient.send(req);
Response Example:
{
"rowCount" : 85,
"pageCount": 3,
"startRow": 41,
"endRow": 80,
"result":// array of article objects
[
{},{},{},
]
}
In the above example, total rows is 85 rows matched and divided in 3 pages, the requested page 2 is from row 41 to row 80
HTTP Request
Request properties
| Property | Type | Description |
|---|---|---|
| searchField | string |
the field name of the object to apply the search criteria |
| searchValue | string |
the value to match with the search field |
| searchType | 1 char |
specify how to match, *: match any where, ^: prefix match, $: suffix match, =: exact match |
| sortField | string |
the field name of the object to sort the result |
| sortAsc | boolean |
whether to sort ascending or descending |
| pageSize | number |
how many record per page in the result |
| pageNo | number |
which page (start from 1) to get the result |
Response properties
| Property | Type | Description |
|---|---|---|
| rowCount | number |
server calculates and returns the total number of rows |
| pageCount | number |
server calculates and return total number of pages |
| startRow | number |
the row index of the requested page (from 1) |
| endRow | number |
the row index of the end of the requested page |
| result | [{},{}] |
array of objects of the requested page |
Api Call And Details
| Service | URL | Method |
|---|---|---|
| Create Customer | /master/customer |
POST |
| Get Customer | /master/customer/{id} |
GET |
| Update Customer | /master/customer/{id} |
PUT |
| Delete Customer | /master/customer/{id} |
DELETE |
| Create Article Type | /master/articletype |
POST |
| Get Article Type | /master/articletype/{id} |
GET |
| Update Article Type | /master/articletype/{id} |
PUT |
| Delete Article Type | /master/articletype/{id} |
DELETE |
| Create Article | /master/articleMaster |
POST |
| Get Article | /master/articleMaster/{id} |
GET |
| Update Article | /master/articleMaster/{id} |
PUT |
| Query Article | /master/articleMaster/query |
POST |
| Delete Article | /master/articleMaster/{id} |
DELETE |
| Create Product | /master/product |
POST |
| Get Product | /master/product/{id} |
GET |
| Update Product | /master/product/{id} |
PUT |
| Delete Product | /master/product/{id} |
DELETE |
| Create Additional Service | /master/additionalservice |
POST |
| Get Additional Service | /master/additionalservice/{id} |
GET |
| Update Additional Service | /master/additionalservice/{id} |
PUT |
| Delete Additional Service | /master/additionalservice/{id} |
DELETE |
| Create Service | /master/service |
POST |
| Get Service | /master/service/{id} |
GET |
| Update Service | /master/service/{id} |
PUT |
| Delete Service | /master/service/{id} |
DELETE |
| Create Depot | /master/depot |
POST |
| Get Depot | /master/depot/{id} |
GET |
| Update Depot | /master/depot/{id} |
PUT |
| Delete Depot | /master/depot/{id} |
DELETE |
| Create Driver | /master/driver |
POST |
| Get Driver | /master/driver/{id} |
GET |
| Update Driver | /master/driver/{id} |
PUT |
| Delete Driver | /master/driver/{id} |
DELETE |
| Create Zone | /master/zone |
POST |
| Get Zone | /master/zone/{id} |
GET |
| Update Zone | /master/zone/{id} |
PUT |
| Delete Zone | /master/zone/{id} |
DELETE |
| Create Zone Line | /master/zoneline |
POST |
| Get Zone Line | /master/zoneline/{id} |
GET |
| Update Zone Line | /master/zoneline/{id} |
PUT |
| Delete Zone Line | /master/zoneline/{id} |
DELETE |
| Create Ratecard | /master/ratecard |
POST |
| Get Ratecard | /master/ratecard/{id} |
GET |
| Update Ratecard | /master/ratecard/{id} |
PUT |
| Delete Ratecard | /master/ratecard/{id} |
DELETE |
| Create Ratecard Line | /master/ratecardline |
POST |
| Get Ratecard Line | /master/ratecardline/{id} |
GET |
| Update Ratecard Line | /master/ratecardline/{id} |
PUT |
| Delete Ratecard Line | /master/ratecardline/{id} |
DELETE |
| Create Ratecard Line Charge | /master/ratecardlinecharge |
POST |
| Get Ratecard Line Charge | /master/ratecardlinecharge/{id} |
GET |
| Update Ratecard Line Charge | /master/ratecardlinecharge/{id} |
PUT |
| Delete Ratecard Line Charge | /master/ratecardlinecharge/{id} |
DELETE |
| Create Consignment | /consignment |
POST |
| Get Consignment | /consignment/{id} |
GET |
| Update Consignment | /consignment/{id} |
PUT |
| Delete Consignment | /consignment/{id} |
DELETE |
| Query Consignment | /consignment/query |
POST |
| Get Label | /label/{organisationId}/{consignmentid} |
GET |
| Create Consignment Leg | /consignment-leg/ |
POST |
| Query Consignment Leg | /consignment-leg/query |
POST |
| Consignment Leg Process | /consignment-leg/{consignmentLegId}/processname |
PUT |
| Create Runsheet | /runsheet |
POST |
| Get Runsheet | /runsheet/{id} |
GET |
| Update Runsheet | /runsheet/{id} |
PUT |
| Delete Runsheet | /runsheet/{id} |
DELETE |
| Create Runsheet Template | /runsheetTemplate |
POST |
| Get Runsheet Template | /runsheetTemplate/{id} |
GET |
| Update Runsheet Template | /runsheetTemplate/{id} |
PUT |
| Create Schedule Job | /ScheduledJob |
POST |
| Get Schedule Job | /ScheduledJob/{id} |
GET |
| Update Schedule Job | /ScheduledJob/{id} |
PUT |
| Delete Schedule Job | /ScheduledJob/{id} |
DELETE |
Dangerous Good
Dangerous goods are solids, liquids or gases that are harmful to people, property and the environment. Dangerous Goods include substances that are; explosive, flammable, spontaneously combustible, oxidising, toxic, corrosive and water reactive. Some commonly used dangerous goods include; petrol, solvents, paints, acids and pesticides.
Here is some example of dangerous good:
| Type | Type Detail | Class Division | Subsidiary Risk |
|---|---|---|---|
| Explosives | Substances and articles which have a mass explosion hazard. | 1 | 1.1 |
| Explosives | Substances and articles which have a projectile hazard, but not a mass explosion hazard. | 1 | 1.2 |
| Explosives | Substances and articles which have a fire hazard and a minor blast hazard or a minor projectile hazard or both. | 1 | 1.3 |
| Explosives | Substances and articles that present no significant hazard; only a small hazard in the event of ignition or initiation during transport with any effects largely confined to the package. | 1 | 1.4 |
| Explosives | Very intensive substances which have a mass explosion hazard. | 1 | 1.5 |
| Explosives | Extremely insensitive articles which do not have a mass explosion hazard. | 1 | 1.6 |
| Gases | Flammable Gas | 2 | 2.1 |
| Gases | Non-flammable non toxic gas | 2 | 2.2 |
| Gases | Toxic Gas | 2 | 2.3 |
| Flammable liquids | Flammable liquids | 3 | 3 |
| Flammable Solids | Flammable Solids | 4 | 4.1 |
| Flammable Solids | Spontaneous Combustibles | 4 | 4.2 |
| Flammable Solids | Substances which in contact with water emit flammable gases | 4 | 4.3 |
| Oxidising Agents | Oxidising Agents | 5 | 5.1 |
| Organic Peroxides | Oxidising Agents | 5 | 5.2 |
| Toxic Substances | Toxic Substances | 6 | 6.1 |
| Corrosive Substances | Corrosive Substances | 8 |
To know more about dangerous goods list please click here.
Please download the pdf file for more details about dangerous goods item detail for shipment Here.
Article Master
Data Fields
| Parameter | Description | Type | Optional / Mandatory |
|---|---|---|---|
code |
Unique code | string | Mandatory |
description |
Name of the article or item. | string | Optional |
articleTypeId |
The id of the article type | string | Mandatory |
isActive |
The article can be used in consignment or not | boolean | Mandatory |
spaceConversionWidth |
Value must be in m | decimal | Optional |
spaceConversionHeight |
Value must be in m | decimal | Optional |
spaceConversionLength |
Value must be in m | decimal | Optional |
Create
This endpoint create the article master
Example request
{
"code": "Standard Pallet",
"description": "Palletized Wine Cartons",
"articleTypeId": "84d839be-ff57-4be1-8f46-66bd0fa40b52",
"isActive": true,
"spaceConversionWidth": 120,
"spaceConversionHeight": 80,
"spaceConversionLength": 120
}
Javescript:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Article);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = httpClient.send(req);
Response example:
{
"id":"xxxx",
"organisationId":"xxxx",
"code": "Standard Pallet",
"description": "Palletized Wine Cartons",
"articleTypeId": "84d839be-ff57-4be1-8f46-66bd0fa40b52",
"isActive": true,
"spaceConversionWidth": 120,
"spaceConversionHeight": 80,
"spaceConversionLength": 120
}
HTTP Request
Get
This api is used to get the detail of a article.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxx"
"code": "Standard Pallet",
"description": "Palletized Wine Cartons",
"articleTypeId": "84d839be-ff57-4be1-8f46-66bd0fa40b52",
"labelPerQuantity": 1,
"isActive": true,
"spaceConversionWidth": 120,
"spaceConversionHeight": 80,
"spaceConversionLength": 120
}
HTTP Request
Response Json Parameters
To know more about response parameter please refer to Click Here section.
Update
This endpoint gets the detail of a article type.
Json request be like:
{
"id":"xxxx"
"code": "Standard Pallet",
"description": "Palletized Wine Cartons",
"articleTypeId": "84d839be-ff57-4be1-8f46-66bd0fa40b52",
"labelPerQuantity": 1,
"isActive": true,
"spaceConversionWidth": 120,
"spaceConversionHeight": 80,
"spaceConversionLength": 120
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Article);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Article detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please refer to Click here section.
Delete
This endpoint delete the detail of a article.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Article detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the article. | string | Mandatory | 40 |
Article Type
Create
This endpoint create fright type for the organisation .
Request JSON structured like this:
{
"code":"CTN",
"description":"CARTONS",
}
var _httpClient = new HttpClient();
var model = JSON.  stringify(ArticleType);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'POST', headers,model);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"code":"200",
"message":"Article type has been created!!",
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
code |
A unique id for the fright type for the organisation. | string | Mandatory | 15 |
description |
Description of the fright type. | string | Mandatory | 40 |
Get
This endpoint get the detail of a fright type.
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxxx",
"code":"CTN",
"description":"CARTONS",
}
HTTP Request
Response Json Parameters
To know more about response parameter please refer to Create Article Type section.
Update
This endpoint udpate the detail of a article type.
Json request be like:
{
"id":"xxxxxx",
"code":"CTN",
"description":"CARTONS",
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Articletype);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Article Type detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please Click here for more detail.
Delete
This endpoint delete the detail of a article type.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Article type detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the article type. | string | Mandatory | 40 |
Additional Service
Create
This endpoint create a additional service for the organisation.
Request JSON structured like this:
{
"serviceName " : "General Plus",
"description " : null,
"isRequiredApproval " : true,
"isDisplayDriver " : false,
"isDriverNoteRequired " : false,
"isPhotoRequired " : true,
"isShowConsignmentDate " : false,
"isHideConsignementDate " : false,
"isShowPricing " :true,
"isAddSpecialinstruction " :false,
"isForceSingleConsignment " : false,
"defaultCustomerRate " : true,
"defaultCustomerBasePercentage " : true,
"defaultCustomerMinCharge " : true,
"defaultAgentRate " : true,
"defaultAgentPricePercentage " : true,
"defaultAgentCharge " :true,
"isAutoAddCustomer " : false,
"isExcludeAllLeveis " : true,
"isChargeFlateRate " : false,
"isDisableAtlcreation " : true
}
Javescript call like this:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Product);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"code":"200",
"message":"Additional service has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
serviceName |
Name of the additional service. | string | Mandatory | 40 |
description |
Description of the service. | string | Optional | 40 |
isRequiredApproval |
Value must be true if service approval is required from customer site. | boolean | Optional | N/A |
isDisplayDriver |
Value must be true if service is visible for driver. | boolean | Optional | N/A |
isDriverNoteRequired |
Value must be true if driver note is required for the service. | boolean | Optional | N/A |
isPhotoRequired |
If photo is required while deliver the consignment of service then value must be true. | boolean | Optional | N/A |
isShowConsignmentDate |
Value must be true if need to show consignment created date. | boolean | Optional | N/A |
isHideConsignementDate |
Value must be ture if consignment date is hidden. | boolean | Optional | N/A |
isShowPricing |
Value must be true if price is showing in consignment level for the service. | boolean | Optional | N/A |
isAddSpecialinstruction |
Value must be true if additional instruction is required. | boolean | Optional | N/A |
isForceSingleConsignment |
Value must be true if only one consignment can be done for the service. | boolean | Optional | N/A |
defaultCustomerRate |
If rate is as customer for the service value must be true. | boolean | Optional | N/A |
defaultCustomerBasePercentage |
If GST and other charge percentage is as per customer then value must be true. | boolean | Optional | N/A |
defaultCustomerMinCharge |
If minimun charge of customer is using for rating then value must be true. | boolean | Optional | N/A |
defaultAgentRate |
boolean | Optional | N/A | |
defaultAgentPricePercentage |
boolean | Optional | N/A | |
defaultAgentCharge |
boolean | Optional | N/A | |
isAutoAddCustomer |
boolean | Optional | N/A | |
isExcludeAllLeveis |
If the service doesnot required all levies then value must be true. | boolean | Optional | N/A |
isChargeFlateRate |
boolean | Optional | N/A | |
isDisableAtlcreation |
boolean | Optional | N/A |
Get
This api is used to get the detail of a additional service.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxx",
"serviceName " : "General Plus",
"description " : null,
"isRequiredApproval " : true,
"isDisplayDriver " : false,
"isDriverNoteRequired " : false,
"isPhotoRequired " : true,
"isShowConsignmentDate " : false,
"isHideConsignementDate " : false,
"isShowPricing " :true,
"isAddSpecialinstruction " :false,
"isForceSingleConsignment " : false,
"defaultCustomerRate " : true,
"defaultCustomerBasePercentage " : true,
"defaultCustomerMinCharge " : true,
"defaultAgentRate " : true,
"defaultAgentPricePercentage " : true,
"defaultAgentCharge " :true,
"isAutoAddCustomer " : false,
"isExcludeAllLeveis " : true,
"isChargeFlateRate " : false,
"isDisableAtlcreation " : true
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here .
Update
This endpoint update the detail of a additional service.
Json request be like:
{
"id":"xxxxx",
"serviceName " : "General Plus",
"description " : null,
"isRequiredApproval " : true,
"isDisplayDriver " : false,
"isDriverNoteRequired " : false,
"isPhotoRequired " : true,
"isShowConsignmentDate " : false,
"isHideConsignementDate " : false,
"isShowPricing " :true,
"isAddSpecialinstruction " :false,
"isForceSingleConsignment " : false,
"defaultCustomerRate " : true,
"defaultCustomerBasePercentage " : true,
"defaultCustomerMinCharge " : true,
"defaultAgentRate " : true,
"defaultAgentPricePercentage " : true,
"defaultAgentCharge " :true,
"isAutoAddCustomer " : false,
"isExcludeAllLeveis " : true,
"isChargeFlateRate " : false,
"isDisableAtlcreation " : true
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(additionalservice);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Additional Service detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please Click here.
Delete
This endpoint delete the detail of a additional service.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Additional service detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the additional service. | string | Mandatory | 40 |
Business Location
Business Location means the physical location (address) of the business.Business Location means any real property, building, facility or structure owned, leased or occupied by organisation at any time from its inception until the present
Create
This endpoint create depot detail for the organisation.
Request JSON structured like this:
{
"code" : "MELB",
"name" : "Melbourne",
"addressLine1" : "409 Bourke Street",
"addressLine2" : null,
"addressLine3" : null,
"suburb" : "West Melbourne",
"postcode" : "3003",
"state" : "VIC",
"countryCode" : "AU",
"email" : "test@yahoo.com",
"contactName" : "Ronald",
"contactPhone" : "0266589412",
"notes" : null,
"isActive" : true,
"timeZone" : null,
"isDepot" : true,
"isWarehouse" : false,
"journalLegderDepartment" : null
}
Javescript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Depot);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status" : "200",
"message" : "Depot has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
code |
A unique identifier for the location. | string | Mandatory | 40 |
name |
Name of the location. | string | Mandatory | 40 |
addressLine1 |
Lines of address like street name, building name. | string | Mandatory | 40 |
addressLine2 |
string | Optional | 40 | |
addressLine3 |
string | Optional | 40 | |
suburb |
Suburb for the address line. | string | Mandatory | 40 |
postcode |
The valid postcode of the suburb. | string | Mandatory | 6 |
state |
Valid state for the address detail. | string | Mandatory | 3 |
countryCode |
Country code of the address, Like: AU, UK . | string | Mandatory | 2 |
email |
Email address of the business location of organisation. | string | Optional | 40 |
contactName |
Contact person name for that business location. | string | Optional | 40 |
contactPhone |
Contact phone number for that business location. | string | Optional | 40 |
notes |
If any particular details about business location. | string | Optional | 40 |
isActive |
Status of the business location | boolean. | Mandatory | 40 |
timeZone |
Followed time zone for the business location. | string | Optional | 40 |
isDepot |
Value must be true if the location is depot for the organisation. | boolean | Mandatory | 40 |
isWarehouse |
Value must be true if the location is warehouse for the organisation. | boolean | Mandatory | 40 |
journalLegderDepartment |
string | Optional | 40 |
Get
This endpoints get the detail of a business loctaion.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxxx",
"code" : "MELB",
"name" : "Melbourne",
"addressLine1" : "409 Bourke Street",
"addressLine2" : null,
"addressLine3" : null,
"suburb" : "West Melbourne",
"postcode" : "3003",
"state" : "VIC",
"countryCode" : "AU",
"email" : "test@yahoo.com",
"contactName" : "Ronald",
"contactPhone" : "0266589412",
"notes" : null,
"isActive" : true,
"timeZone" : null,
"isDepot" : true,
"isWarehouse" : false,
"journalLegderDepartment" : null
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here.
Update Depot
This endpoint update the detail of a business location.
Json request be like:
{
"id":"xxxxxx",
"code" : "MELB",
"name" : "Melbourne",
"addressLine1" : "409 Bourke Street",
"addressLine2" : null,
"addressLine3" : null,
"suburb" : "West Melbourne",
"postcode" : "3003",
"state" : "VIC",
"countryCode" : "AU",
"email" : "test@yahoo.com",
"contactName" : "Ronald",
"contactPhone" : "0266589412",
"notes" : null,
"isActive" : true,
"timeZone" : null,
"isDepot" : true,
"isWarehouse" : false,
"journalLegderDepartment" : null
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(depot);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Depot detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please Click Here.
Delete Depot
This endpoint delete the detail of a depot.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Depot detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the depot. | string | Mandatory | 40 |
Consignment
Create
This endpoint creates the consignment detail provided.
Request JSON structured like this:
{
"customerId": "7adf8231-fc19-4f70-a80c-b745f68cd0f2",
"consignmentNumber": "OMX001",
"type": "pickup",
"originAddressLine1": "1 High St",
"originAddressLine2": null,
"originAddressLine3": null,
"originSuburb": "clayfield",
"originPostCode": "4011",
"originState": "QLD",
"originCountry": "AU",
"destinType": "warehouse",
"destinAddressLine1": "24 smythe st",
"destinAddressLine2": null,
"destinAddressLine3": null,
"destinSuburb": "Merrylands",
"destinPostCode": "2160",
"destinState": "NSW",
"destinCountry": "AU",
"totalDeadWeight": 50,
"totalArticles": 1,
"totalPallets": 0,
"totalVolume": 0,
"totalCubicWeight": 0,
"chargeAccount": "SENDER",
"internalNote": null,
"senderName": "OMNIX PTY.",
"receiverName": "THE LOCAL BIUSINESS",
"senderReference": null,
"receiverReference": null,
"senderContactPhone": null,
"senderContactName": null,
"receiverContactPhone": null,
"receiverContactName": null,
"senderEmail": null,
"receiverEmail": null,
"requestedPickupDate": "2020-11-09",
"requestedPickupTimeFrom": "10.00",
"requestedPickupTimeTo": "14:00",
"requestedDeliveryDate": "2020-11-10",
"requestedDeliveryTimeFrom": "10.00",
"requestedDeliveryTimeTo": "14:00",
"deliveryInstruction": "consignmet must deliver in to door",
"pickupInstruction": "pickup at warehouse",
"serviceId": "49bdfca7-8401-4cfa-aea0-92b6d2bb4a9f",
"isDangerousGood": false,
"authorityToLeave": false,
"allowPartialDelivery": false
},
"articles": [
{
"articleMasterId": "6de60209-3c37-4185-bc5b-b9858cd85fb9",
"type": "BOX",
"referenceNumber": "ITM001",
"quantity": 5,
"length": 0.2,
"width": 0.2,
"height": 0.55,
"weight": 50,
"volume": 0,
"description": null,
"items": [
{
"productId": "8c36a61a-522f-430c-8eae-d72f07741641",
"quantity": "5"
}
]
}
],
"additionalServices": [
{
"id": "4cee31a8-b184-4d69-ba1d-9788b16f88c2",
"code": "DISC",
"type": "Assamble",
"note": "Need to Fix out",
"description": null,
"fee": 0
}
],
"equiments": [
{
"id": "fe6b976e-a2a9-4764-9405-8ee1d0d99e90",
"type": "ForkLift",
"description": null
}
]
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Consignment);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxx",
"customerId": "7adf8231-fc19-4f70-a80c-b745f68cd0f2",
"consignmentNumber": "OMX001",
"type": "pickup",
"originAddressLine1": "1 High St",
"originAddressLine2": null,
"originAddressLine3": null,
"originSuburb": "clayfield",
"originPostCode": "4011",
"originState": "QLD",
"originCountry": "AU",
"destinType": "warehouse",
"destinAddressLine1": "24 smythe st",
"destinAddressLine2": null,
"destinAddressLine3": null,
"destinSuburb": "Merrylands",
"destinPostCode": "2160",
"destinState": "NSW",
"destinCountry": "AU",
"totalDeadWeight": 50,
"totalArticles": 1,
"totalPallets": 0,
"totalVolume": 0,
"totalCubicWeight": 0,
"chargeAccount": "SENDER",
"internalNote": null,
"senderName": "OMNIX PTY.",
"receiverName": "THE LOCAL BIUSINESS",
"senderReference": null,
"receiverReference": null,
"senderContactPhone": null,
"senderContactName": null,
"receiverContactPhone": null,
"receiverContactName": null,
"senderEmail": null,
"receiverEmail": null,
"requestedPickupDate": "2020-11-09",
"requestedPickupTimeFrom": "10.00",
"requestedPickupTimeTo": "14:00",
"requestedDeliveryDate": "2020-11-10",
"requestedDeliveryTimeFrom": "10.00",
"requestedDeliveryTimeTo": "14:00",
"deliveryInstruction": "consignmet must deliver in to door",
"pickupInstruction": "pickup at warehouse",
"serviceId": "49bdfca7-8401-4cfa-aea0-92b6d2bb4a9f",
"isDangerousGood": false,
"authorityToLeave": false,
"allowPartialDelivery": false
},
"articles": [
{
"articleMasterId": "6de60209-3c37-4185-bc5b-b9858cd85fb9",
"type": "BOX",
"referenceNumber": "ITM001",
"quantity": 5,
"length": 0.2,
"width": 0.2,
"height": 0.55,
"weight": 50,
"volume": 0,
"description": null,
"items": [
{
"productId": "8c36a61a-522f-430c-8eae-d72f07741641",
"quantity": "5"
}
]
}
],
"additionalServices": [
{
"id": "4cee31a8-b184-4d69-ba1d-9788b16f88c2",
"code": "DISC",
"type": "Assamble",
"note": "Need to Fix out",
"description": null,
"fee": 0
}
],
"equiments": [
{
"id": "fe6b976e-a2a9-4764-9405-8ee1d0d99e90",
"type": "ForkLift",
"description": null
}
]
}
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
customerId |
Unique Id provided by Omnix for the customer. | string | Mandatory | 40 |
consignmentNumber |
A unique refrence for the consignment generated by organisation. | string | Optional | 15 |
Type |
The type of the consignment, Its value must be 'Pickup', 'Delivery', 'Line Haul'. | string | Optional | 10 |
originAddressLine1 |
The addressline of the sender address. Must be street Name. | string | Mandatory | 40 |
originAddressLine2 |
The addressline of the sender address. | string | Optional | 40 |
originAddressLine3 |
The addressline of the sender address. | string | Optional | 40 |
originSuburb |
The suburb for the sender address. | string | Mandatory | 40 |
originPostCode |
The postcode for the sender address. | string | Mandatory | 4 |
originState |
The state code for the sender address. Valid values are: ACT, NSW, NT, QLD, SA, TAS, VIC, WA. | string | Mandatory | 3 |
originCountry |
The country code for the sender address. | string | Mandatory | 2 |
destinAddressLine1 |
The addressline of the receiver address. Must be street Name. | string | Mandatory | 40 |
destinAddressLine2 |
The addressline of the receiver addres. | string | Optional | 40 |
destinAddressLine3 |
The addressline of the receiver addres. | string | Optional | 40 |
destinSuburb |
The suburb for the receiver address. | string | Mandatory | 40 |
destinPostCode |
The postcode for the receiver address. | string | Mandatory | 4 |
destinState |
The state code for the receiver address. Valid values are: ACT, NSW, NT, QLD, SA, TAS, VIC, WA. | string | Mandatory | 3 |
destinCountry |
The country code for the receiver address. | string | Mandatory | 2 |
chargeTo |
To whom the consignment charge will given, the valid value is 'Sender' or 'Receiver'. | string | Optional | 40 |
chargeAccount |
The account to be charge for the consignment. | string | Optional | 40 |
senderName |
Name of the sender. | string | Mandatory | 40 |
receiverName |
Name of the receiver. | string | Mandatory | 40 |
senderReference |
A sender specified reference for the consignment. This value is not required to be unique. | string | Optional | 40 |
receiverReference |
A sender specified reference for the consignment to the receiver. This value is not required to be unique. | string | Optional | 40 |
senderContactPhone |
A sender phone number. | string | Optional | 16 |
senderContactName |
The person name from the sender whom people can contant for the consignment. | string | Optional | 40 |
receiverContactPhone |
A receiver phone number. | string | Optional | 40 |
receiverContactName |
The person name whom can contact for the shipment issue. | string | Optional | 40 |
senderEmail |
Valid Email address of the sender. | string | Optional | 40 |
receiverEmail |
Valid email address of the receiver. | string | Optional | 40 |
requestedPickupDate |
Sender can request the pickup date for shipment. | string | Optional | 40 |
requestedPickupTimeFrom |
Sender can request the pickup time starting from for shipment. | string | Optional | 40 |
requestedPickupTimeTo |
Sender can request the delivery time ending for shipment. | string | Optional | 40 |
requestedPickupTz |
string | Optional | 40 | |
requestedDeliveryDate |
string | Optional | 40 | |
requestedDeliveryTimeFrom |
string | Optional | 40 | |
requestedDeliveryTimeTo |
string | Optional | 40 | |
requestedDeliveryTz |
string | Optional | 40 | |
deliveryInstruction |
string | Optional | 40 | |
pickupInstruction |
string | Optional | 40 | |
isDangerousGood |
Status of good if item contain any dangerous good then value must be true. | boolean | Optional | 40 |
dangerousGoodDescription |
If IsDangerousGood is true, must provide the detail of it. | string | Optional | 40 |
isConnotePrinted |
boolean | Optional | 40 | |
isRiskLevyApplied |
If there is any risk levy fee for the shipment then this field must be true | boolean | Optional | 40 |
authorityToLeave |
This is the permission to the drive to leave parcel at delivery address, value must be true if permission is given to driver. | boolean | Optional | 40 |
allowPartialDelivery |
If shiment has more then 1 item you can use this flag for delivery. If customer allows for partial delivery then value must be true. | boolean | Optional | 40 |
isVipConsignement |
boolean | Optional | 40 | |
isSignatureRequired |
If signature is required for shipment delivery then value must be true, if AuthorityToLeave is false then this field must be true. | boolean | Optional | 40 |
isInsured |
Flag that check the shipment has insurance or not. | boolean | Optional | 40 |
isPrintConsignment |
Flag that check if shipment need to be print or not. | boolean | Optional | 40 |
isPrintLabel |
Flag that check if shipment need a lable to print or not. | boolean | Optional | 40 |
isRecurringConsignmentTemplate |
boolean | Optional | 40 | |
serviceId |
Valid method of shipment sending. For more detail please click here. | string | Mandatory | 40 |
| articles | Array of Object | Mandatory | N/A | |
articleMasterId |
A valid item id. click here for more detail. | string | Mandatory | 40 |
type |
type of article, value like: box,.carton,.pallets. | string | Mandatory | 40 |
referenceNumber |
string | Optional | 40 | |
quantity |
Count of the item for the shipment | integer | Mandatory | 40 |
weight |
Weight of item for shipment, value must be in kilogram. | decimal | Mandatory | 40 |
volume |
Volume of item for shipment. | decimal | Optional | 40 |
length |
Length of item for shipment, value must be in centimetre. | decimal | Optional | 40 |
width |
Width of item for shipment, value must be in centimetre. | decimal | Optional | 40 |
height |
Height of item for shipment, value must be in centimetre. | decimal | Optional | 40 |
artcileCapacity |
Value be like half, full, overload. | string | Optional | 40 |
description |
Note for the item to be shiped. | string | Optional | 40 |
isOnPallet |
This field is required if the type is carton. | boolean | Optional | 40 |
palletsCount |
This field is required if the type is carton and isonpallet field is true. | integer | Optional | 40 |
minTemperature |
This field is required if the article is freeze item. | decimal | Optional | 40 |
maxTemperature |
This field is required if the article is freeze item. | decimal | Optional | 40 |
dgUnNumber |
If IsDangerousGood is true then this field is required. Click here for more detail. | integer | Optional | 40 |
dgTechnicalName |
If IsDangerousGood is true then this field is required. Click here for more detail. | string | Optional | 40 |
dgClassDivision |
If IsDangerousGood is true then this field is required. Click here for more detail. | integer | Optional | 40 |
dgSubsidiaryRisk |
If IsDangerousGood is true then this field is required. Click here for more detail. | string | Optional | 40 |
dgPackingGroupDesignator |
If IsDangerousGood is true then this field is required. Click here for more detail. | string | Optional | 40 |
| additionalServices | Array of object | Optional | N/A | |
code |
Code of the serviceClick here for more detail. | string | Optional | 40 |
type |
type of the service. | string | Optional | 40 |
note |
Note or information for the service. | string | Optional | 40 |
description |
Detail of the service. | string | Optional | 40 |
fee |
Charge for the service. | string | Optional | 40 |
| equiments | Array of object | Optional | N/A | |
code |
Code of the equimentClick here for more . | string | Optional | 40 |
type |
type of the equiment. | string | Optional | 40 |
note |
Note or information for the equiment. | string | Optional | 40 |
description |
Detail of the equiment. | string | Optional | 40 |
Get
This endpoint get the consignment detail provided.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxxx",
"customerId": "7adf8231-fc19-4f70-a80c-b745f68cd0f2",
"consignmentNumber": "OMX001",
"type": "pickup",
"originAddressLine1": "1 High St",
"originAddressLine2": null,
"originAddressLine3": null,
"originSuburb": "clayfield",
"originPostCode": "4011",
"originState": "QLD",
"originCountry": "AU",
"destinType": "warehouse",
"destinAddressLine1": "24 smythe st",
"destinAddressLine2": null,
"destinAddressLine3": null,
"destinSuburb": "Merrylands",
"destinPostCode": "2160",
"destinState": "NSW",
"destinCountry": "AU",
"totalDeadWeight": 50,
"totalArticles": 1,
"totalPallets": 0,
"totalVolume": 0,
"totalCubicWeight": 0,
"chargeAccount": "SENDER",
"internalNote": null,
"senderName": "OMNIX PTY.",
"receiverName": "THE LOCAL BIUSINESS",
"senderReference": null,
"receiverReference": null,
"senderContactPhone": null,
"senderContactName": null,
"receiverContactPhone": null,
"receiverContactName": null,
"senderEmail": null,
"receiverEmail": null,
"requestedPickupDate": "2020-11-09",
"requestedPickupTimeFrom": "10.00",
"requestedPickupTimeTo": "14:00",
"requestedDeliveryDate": "2020-11-10",
"requestedDeliveryTimeFrom": "10.00",
"requestedDeliveryTimeTo": "14:00",
"deliveryInstruction": "consignmet must deliver in to door",
"pickupInstruction": "pickup at warehouse",
"serviceId": "49bdfca7-8401-4cfa-aea0-92b6d2bb4a9f",
"isDangerousGood": false,
"authorityToLeave": false,
"allowPartialDelivery": false,
"articles": [
{
"articleMasterId": "6de60209-3c37-4185-bc5b-b9858cd85fb9",
"type": "BOX",
"referenceNumber": "ITM001",
"quantity": 5,
"length": 0.2,
"width": 0.2,
"height": 0.55,
"weight": 50,
"volume": 0,
"description": null,
"items": [
{
"productId": "8c36a61a-522f-430c-8eae-d72f07741641",
"quantity": "5"
}
]
}
],
"additionalServices": [
{
"id": "4cee31a8-b184-4d69-ba1d-9788b16f88c2",
"code": "DISC",
"type": "Assamble",
"note": "Need to Fix out",
"description": null,
"fee": 0
}
],
"equiments": [
{
"id": "fe6b976e-a2a9-4764-9405-8ee1d0d99e90",
"type": "ForkLift",
"description": null
}
]
}
HTTP Request
Response Json Parameters
For more detail Click here
Update
This endpoint update a consignment detail provided.
Request JSON structured like this:
{
"id":"xxxxxx",
"customerId": "7adf8231-fc19-4f70-a80c-b745f68cd0f2",
"consignmentNumber": "OMX001",
"type": "pickup",
"originAddressLine1": "1 High St",
"originAddressLine2": null,
"originAddressLine3": null,
"originSuburb": "clayfield",
"originPostCode": "4011",
"originState": "QLD",
"originCountry": "AU",
"destinType": "warehouse",
"destinAddressLine1": "24 smythe st",
"destinAddressLine2": null,
"destinAddressLine3": null,
"destinSuburb": "Merrylands",
"destinPostCode": "2160",
"destinState": "NSW",
"destinCountry": "AU",
"totalDeadWeight": 50,
"totalArticles": 1,
"totalPallets": 0,
"totalVolume": 0,
"totalCubicWeight": 0,
"chargeAccount": "SENDER",
"internalNote": null,
"senderName": "OMNIX PTY.",
"receiverName": "THE LOCAL BIUSINESS",
"senderReference": null,
"receiverReference": null,
"senderContactPhone": null,
"senderContactName": null,
"receiverContactPhone": null,
"receiverContactName": null,
"senderEmail": null,
"receiverEmail": null,
"requestedPickupDate": "2020-11-09",
"requestedPickupTimeFrom": "10.00",
"requestedPickupTimeTo": "14:00",
"requestedDeliveryDate": "2020-11-10",
"requestedDeliveryTimeFrom": "10.00",
"requestedDeliveryTimeTo": "14:00",
"deliveryInstruction": "consignmet must deliver in to door",
"pickupInstruction": "pickup at warehouse",
"serviceId": "49bdfca7-8401-4cfa-aea0-92b6d2bb4a9f",
"isDangerousGood": false,
"authorityToLeave": false,
"allowPartialDelivery": false,
"articles": [
{
"articleMasterId": "6de60209-3c37-4185-bc5b-b9858cd85fb9",
"type": "BOX",
"referenceNumber": "ITM001",
"quantity": 5,
"length": 0.2,
"width": 0.2,
"height": 0.55,
"weight": 50,
"volume": 0,
"description": null,
"items": [
{
"productId": "8c36a61a-522f-430c-8eae-d72f07741641",
"quantity": "5"
}
]
}
],
"additionalServices": [
{
"id": "4cee31a8-b184-4d69-ba1d-9788b16f88c2",
"code": "DISC",
"type": "Assamble",
"note": "Need to Fix out",
"description": null,
"fee": 0
}
],
"equiments": [
{
"id": "fe6b976e-a2a9-4764-9405-8ee1d0d99e90",
"type": "ForkLift",
"description": null
}
]
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Consignment);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":"200",
"message":"Consignment has been updated"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
Unique number of consignment stored in database | string | Mandatory | 40 |
For other paramether detail please Click Here
Create or Update
This endpoint check the consignment state and as per requriment it will either create consignment if customerconsignmentNumber isnot exist in system, other wise it will update the consignemt. If same consignment has already created and have pickup leg generated then system will reject the consignment.
Request JSON structured like this:
{
"customerId": "7adf8231-fc19-4f70-a80c-b745f68cd0f2",
"consignmentNumber": "OMX001",
"type": "pickup",
"originAddressLine1": "1 High St",
"originAddressLine2": null,
"originAddressLine3": null,
"originSuburb": "clayfield",
"originPostCode": "4011",
"originState": "QLD",
"originCountry": "AU",
"destinType": "warehouse",
"destinAddressLine1": "24 smythe st",
"destinAddressLine2": null,
"destinAddressLine3": null,
"destinSuburb": "Merrylands",
"destinPostCode": "2160",
"destinState": "NSW",
"destinCountry": "AU",
"totalDeadWeight": 50,
"totalArticles": 1,
"totalPallets": 0,
"totalVolume": 0,
"totalCubicWeight": 0,
"chargeAccount": "SENDER",
"internalNote": null,
"senderName": "OMNIX PTY.",
"receiverName": "THE LOCAL BIUSINESS",
"senderReference": null,
"receiverReference": null,
"senderContactPhone": null,
"senderContactName": null,
"receiverContactPhone": null,
"receiverContactName": null,
"senderEmail": null,
"receiverEmail": null,
"requestedPickupDate": "2020-11-09",
"requestedPickupTimeFrom": "10.00",
"requestedPickupTimeTo": "14:00",
"requestedDeliveryDate": "2020-11-10",
"requestedDeliveryTimeFrom": "10.00",
"requestedDeliveryTimeTo": "14:00",
"deliveryInstruction": "consignmet must deliver in to door",
"pickupInstruction": "pickup at warehouse",
"serviceId": "49bdfca7-8401-4cfa-aea0-92b6d2bb4a9f",
"isDangerousGood": false,
"authorityToLeave": false,
"allowPartialDelivery": false,
"articles": [
{
"articleMasterId": "6de60209-3c37-4185-bc5b-b9858cd85fb9",
"type": "BOX",
"referenceNumber": "ITM001",
"quantity": 5,
"length": 0.2,
"width": 0.2,
"height": 0.55,
"weight": 50,
"volume": 0,
"description": null,
"items": [
{
"productId": "8c36a61a-522f-430c-8eae-d72f07741641",
"quantity": "5"
}
]
}
],
"additionalServices": [
{
"id": "4cee31a8-b184-4d69-ba1d-9788b16f88c2",
"code": "DISC",
"type": "Assamble",
"note": "Need to Fix out",
"description": null,
"fee": 0
}
],
"equiments": [
{
"id": "fe6b976e-a2a9-4764-9405-8ee1d0d99e90",
"type": "ForkLift",
"description": null
}
]
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Consignment);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":"200",
"message":"Consignment has been updated"
}
HTTP Request
Request Json Parameters
For other paramether detail please Click Here
Delete
This endpoints delete a detail of consignment.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'DETETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":"200",
"message":"Consignment has been deleted!!"
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here for more detail.
Query Consignment
This endpoint searchs for consignments.
Request
var SearchForm = {
"originSuburb ":"CANNING VALE",
"destinSuburb ":"BIBRA LAKE",
"sortField":"CustomerConsignmentNumber",
"sortAsc ": true,
"pageSize": 40,
"pageNo": 2
}
var _httpClient = new HttpClient();
var model = JSON.  stringify(SearchForm);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = _httpClient.send(req);
Response Example:
{
"originSuburb ":"CANNING VALE",
"destinSuburb ":"BIBRA LAKE",
"sortField":"CustomerConsignmentNumber",
"sortAsc ": true,
"pageSize": 40,
"pageNo": 2,
"rowCount":100,
"startRow":41,
"endRow":80,
"pageCount": 3,
"result":
[
{
"id":"xxxxxx",
"customerId": "7adf8231-fc19-4f70-a80c-b745f68cd0f2",
"consignmentNumber": "OMX001",
"type": "pickup",
"originAddressLine1": "1 High St",
"originSuburb": "clayfield",
"originPostCode": "4011",
"originState": "QLD",
"originCountry": "AU",
"destinType": "warehouse",
"destinAddressLine1": "24 smythe st",
"destinSuburb": "Merrylands",
"destinPostCode": "2160",
"destinState": "NSW",
"destinCountry": "AU",
"totalDeadWeight": 50,
"totalArticles": 1,
"totalPallets": 0,
"totalVolume": 0,
"totalCubicWeight": 0,
"chargeAccount": "SENDER",
"internalNote": null,
"senderName": "OMNIX PTY.",
"receiverName": "THE LOCAL BIUSINESS",
"serviceId": "49bdfca7-8401-4cfa-aea0-92b6d2bb4a9f",
"articles": [
{
"articleMasterId": "6de60209-3c37-4185-bc5b-b9858cd85fb9",
"quantity": 5,
"length": 0.2,
"width": 0.2,
"height": 0.55,
"weight": 50,
"items": [
]
}
]
},
{
"id":"xxxxxx",
"customerId": "7adf8231-fc19-4f70-a80c-b745f68cd0f2",
"consignmentNumber": "OMX001",
"type": "pickup",
"originAddressLine1": "1 High St",
"originSuburb": "clayfield",
"originPostCode": "4011",
"originState": "QLD",
"originCountry": "AU",
"destinType": "warehouse",
"destinAddressLine1": "24 smythe st",
"destinSuburb": "Merrylands",
"destinPostCode": "2160",
"destinState": "NSW",
"destinCountry": "AU",
"totalDeadWeight": 50,
"totalArticles": 1,
"totalPallets": 0,
"totalVolume": 0,
"totalCubicWeight": 0,
"chargeAccount": "SENDER",
"internalNote": null,
"senderName": "OMNIX PTY.",
"receiverName": "THE LOCAL BIUSINESS",
"serviceId": "49bdfca7-8401-4cfa-aea0-92b6d2bb4a9f",
"articles": [
{
"articleMasterId": "6de60209-3c37-4185-bc5b-b9858cd85fb9",
"quantity": 5,
"length": 0.2,
"width": 0.2,
"height": 0.55,
"weight": 50,
"items": [
]
}
]
}
]
}
HTTP Request
Request Properties
| Field | Value | Description |
|---|---|---|
| originSuburb | string | match the originSuburb of the consignment (exact match) |
| destinSuburb | string | match the destinSuburb of the consignment (exact match) |
| statuses | string[] | list of statuses to filter. values can be: ACT (active), CAN (cancelled), CPT (completed) |
| consignmentNumber | string | match the consignmentNumber (system-generated consignment number) |
| customerConsignmentNumber | string | match the customer provided consignment number |
| searchType | string | specifies how to match consignment number (default : match anywhere, ^: match prefix, $: match suffix, =:match exact the list of consignment number, this applies to consignmentNumber and customerConsignmentNumber) |
| insertTimeFrom | date | filter consignments based on insertTime range |
| insertTimeTo | date | filter consignments based on insertTime range |
| senderReference | string | match sender reference (match anywhere) |
| sortField | string | the field name to sort, default is ConsignmentDate. possible value could be: InsertTime,UpdateTime,CustomerConsignmentNumber,ConsignmentNumber |
| sortAsc | bool | sort ascending or descending. default is ascending. |
| pageNo | int | page number for the result paging, start from 1 |
| pageSize | int | number of rows per page |
Response Properties
| Field | Value | Description |
|---|---|---|
| rowCount | int | this field returns the total matched consignments (the result has only the page at pageNo but rowCount number returns full number of rows matched) |
| startRow | int | this field returns the start row index of the current page (start at 1) |
| endRow | int | this field returns the end row index of the current page |
| pageCount | int | this field returns number of pages |
| result | consignment[] | this field returns the list of consignment objects for the current page |
Consignment Article
The endpoints in the API group is for scanning consignment articles. Articles can be scanned, delivered even before consignment data is created in the system. If that is the case, the system will match scanning data to the consignment data upon creation of consignment.
Data fields
Common article data fields required for scanning
Article scan data
The article scan data has following properties in all requests sent to the APIs related to article level scanning. Please also see the notes below for details of the fields.
| Field | Type | Optional/Mandatory | Description | |
|---|---|---|---|---|
| runsheetId | uuid | required | The current runsheet of the driver. | |
| operationTime | Date/Time |
required | The scanning started time | |
| operationEndTime | Date/Time |
optional | The scanning finished time | |
| consignmentId | uuid | optional | This field is filled if the driver selects a consignment before operating. | |
| consignmentLegId | uuid | optional | This field is used when operation is carried on the leg. | |
| scanCode | text | optional | This field is used when consignmentId or consignmentLegId is unable to determine from the client and operation does not require article level scan. This can be consignmentNumber in most cases (driver scans the consignmentNumber and collects signature), it can also be a single article scan code. |
|
| depotId | uuid | optional | The depot Id where the scan occurred. Only used in Load, Unload, Back Depot API | |
| latitude | number | optional | latitude of the position where the scan occured | |
| longitude | number | optional | longitude of the position where the scan occured | |
| locationName | string | optional | the name of the location where the scan occured | |
| articleScanCodes | string[] |
optional | list of the scan codes scanned (must match to the article.articleScanCode) | |
| articleQuantities | object[] |
optional | array of photo object described below | |
| articleQuantities[].ConsignmentArticleId | UUID | optional | the UUID of the consignmentArticle being scanned | |
| articleQuantities[].ArticleTypeId | UUID | optional | the UUID of the articleType | |
| articleQuantities[].ConsignmentId | UUID | optional | the UUID of the consignment | |
| articleQuantities[].actualQuantity | integer | optional | the quantity of the article | |
| operationTimeZone | required | optional | time zone name of the device when scanning, informational only | |
| signature | string | optional | the file name with extention (.jpg, .png ...) of signature (to know the image type of the signature). The client can use any name as it likes but the extension must be supplied for the server to know the file type. | |
| message | string | optional | the message when signing. In the leave-calling-card operation, this field can contain the imprinted calling card number if required. |
|
| signatureDataBase64 | string | optional | base64-encoded binary data of the signature | |
| signerName | string | optional | name of the signatory | |
| photos | object[] |
optional | array of photo object described below | |
| photos[].message | string | optional | message recorded with the photo | |
| photos[].photoDataBase64 | string | required | base64 encoded of photo data | |
| photos[].photo | string | required | the file name with extention (.jpb,.png....) of the photo. The client can use any name as it likes but the file extension must be supplied for the server to know the type of photo. | |
| photos[].personName | string | optional | any person name needs to be recorded with this photo if required |
Notes
For scanning tracking (tracking by scan codes): the articleScanCodes is provided, then the system will match each code with consignmentArticle.articleScanCode to find out which consignments are being scanned. (the driver can scan multiple consignments's scan codes then submit in one go).
For non-scanning tracking (tracking by quantities only): the articleScanCodes is not provided, then articleQuantities can be provided, also either the (consignmentId and articleTypeId) or consignmentArticleId must also be supplied to identify which articles are being tracked. This can be inferred when the driver focuses the lines on the mobile screen and input the corresponding quantities.
For no tracking (operation that requires no tracking): both articleScanCodes and articleQuantities are not provided, then consignmentId is required (and additionally Quantity field can be provided as the total quantity of the consignment). This happens to fail-to-pickup (nothing to scan) or fail-to-deliver (not neccessary to scan) or back-into-depot-for-next-delivery(not neccessary to scan). In these use cases, the driver just focuses the consignment and press the corresponding button to mark the consignment as failed-to-pickup/fail-to-deliver/back-into-depot-for-next-delivery. This can also be used for signature-only operation: the driver just focuses the consignment and collect the receiver's signature/photo without any tracking - often for point-to-point delivery.
The scanning or tracking can happen before the consignment is created in the system.
One consignment can have mixed mode of tracking. For example: at the pickup -> quantity only tracking, then at depot(unload)-> scanning tracking, then linehaul -> quantity only tracking, at delivery point -> signature only.
Pick up (at customer)
This endpoint is used when driver has picked up articles at the pickup point. The consignment is marked as PICKED-UP-AT-CUSTOMER. The body of the request contains the scan data.
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | not used |
Javascript request:
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/pick-up', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS (2xx) code.
HTTP Request
Unload depot(after picked up)
This endpoint is called when the driver picked up articles from the customer then scanned into depot. The consignment is marked IN-DEPOT. The body of the request contains the article scan data.
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | required | the depot being unloaded to |
Javascript request
var _httpClient = new HttpClient();
var model = new ArticleScanData
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/unload-into-depot' , 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS code.
HTTP Request
Load onboard for linehaul
This endpoint is used when drivers load articles onto his truck for line-haul (inter-depot movement). The consignment is marked as IN-TRANSIT. The body of the request contains the article scan data.
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | required | the depot being loaded from to |
Javascript request:
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/load-onboard-for-linehaul', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS (2xx) status.
HTTP Request
Unload next depot(linehaul)
This endpoint is called when the driver picked up articles from the customer then scanned into depot. The consignment is marked IN-TRANSIT. The body of the request contains the article scan data.
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | required | the depot to being unloaded to |
Javascript request
var _httpClient = new HttpClient();
var model = new ArticleScanData
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/unload-into-next-depot' , 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS code.
HTTP Request
Load onboard for delivery
This endpoint is used when drivers loads articles onto his truck for delivery. The consignment is marked as ONBOARD FOR DELIVERY to trigger any registered notification to the receiver/sender... that their articles are being delivered. The body of the request contains the article scan data.
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | required | the depot to being loaded from |
Javascript request:
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/load-onboard-for-delivery', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS (2xx) status.
HTTP Request
Deliver
This endpoint is called when drivers sucessfully delivered the articles to the receiver. The consignment is marked as DELIVERED. The body of the request contains the article scan data.
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | not used |
Javascript request
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/deliver', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS(2xx) code.
HTTP Request
Leave articles (ATL)
This endpoint is used when drivers arrive at the delivery point for the consignment but unable to deliver and had left the articles as ATL. The consignment is marked as DELIVERED WITH ATL. The body of the request contains the article scan data.
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | not used |
Javascript request:
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/leave-with-atl', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS (2xx) status.
HTTP Request
Leave calling card
This endpoint is used when drivers arrive at the delivery point for the consignment but unable to deliver and had left a calling card. The consignment is marked as LEFT CALLING CARD. The body of the request contains the article scan data. Additionally, the message field of the data can contain the calling card number (if it is imprinted).
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | not used |
Javascript request:
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/failed-to-deliver', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS (2xx) status.
HTTP Request
Unload back to depot
This endpoint is used when drivers are unable to deliver the articles and have to carry articles back to depot. The consignment is marked as BACK-TO-DEPOT-FOR-NEXT-DELIVERY-ATTEMPT. The body of the request contains the article scan data.
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | required | the depot to being unloaded to |
Javascript request:
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/unload-back-to-depot', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS (2xx) status.
HTTP Request
Transfer between vehicles
This endpoints are used when 2 drivers need to exchange some articles (consignments) on the route (ex: to optimise the load). One driver scans articles off his vehicle and other driver scans articles onto his vehicle. The body of the request contains the article scan data. (any field can be used). The consignment tracking stage is not changed by this operation.
Transfer (off vehicle)
The first driver scans articles off his vehicle.
Javascript request
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/tranfer-off', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS (2xx) code.
HTTP Request
Transfer (onto vehicle)
The second driver scans articles onto his vehicle. The body of the request contains the article scan data. (any field can be used)
Javascript request:
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/tranfer-on', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS(200x) code.
HTTP Request
Fail to pickup
This endpoint is used when drivers arrive at the pickup point for the consignment but there is nothing to pickup. This is to record an error. The body of the request contains the article scan data with consignmentId filled.
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | not used | |
| consignmentId | required | Driver must select which consignments failed to pickup |
Javascript request:
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/failed-to-pickup', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS (2xx) status.
HTTP Request
Fail to deliver
This endpoint is used when drivers arrive at the delivery point for the consignment but unable to deliver. This even is to record a time driver arrives. The body of the request contains the article scan data.
| Field | Optional/Mandatory | Notes |
|---|---|---|
| depotId | not used | |
| consignmentId | required | Driver must select which consignments failed to deliver |
Javascript request:
var _httpClient = new HttpClient();
var model = new ArticleScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/consignment-article/fail-to-deliver', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with SUCCESS (2xx) status.
HTTP Request
Consignment Tracking
Query
This endpoint get the detail of a consignment tracking details. This is a public API (no authentication required)
Example request:
var _httpClient = new HttpClient();
var organisationId = 'xxxxx';
var consignmentNumber = 'yyyyy';
var req = new Request(URL + "/query?consignmentNumber=" + consignmentNumber + "&organisationId="+organisationId , 'GET');
var apicall = _httpClient.send(req);
Response:
[
{
"id": "c03844b8-83bc-4b54-a29a-d00571696268",
"organisationId": "1bc86266-abdf-4454-9ba5-72bfa865af6d",
"consignmentId": "17c38b4e-bf71-49f7-9524-24ca0d190329",
"description": "Pickup at customer",
"eventTime": "2021-09-03T12:45:41.473979",
"insertUserId": "2a8a32ea-1d10-4a46-a4f1-bdfb67224781",
"insertTime": "2021-09-03T12:39:41.473815",
"location": "GALVIN VIC 3018"
},
{
"id": "c03844b8-83bc-4b54-a29a-d00571696267",
"organisationId": "1bc86266-abdf-4454-9ba5-72bfa865af6d",
"consignmentId": "17c38b4e-bf71-49f7-9524-24ca0d190329",
"description": "Shipping information received",
"eventTime": "2021-09-03T12:39:41.473979",
"insertUserId": "2a8a32ea-1d10-4a46-a4f1-bdfb67224781",
"insertTime": "2021-09-03T12:39:41.473815",
"location": "GALVIN VIC 3018"
}
...
]
HTTP Request
Response Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
organisationId |
the organisationId | string UUID | Mandatory | 40 |
consignmentNumber |
the consignmentNumber to query tracking | string | Mandatory | 40 |
For more detail about response parameter Click here.
Consignment Leg
The endpoints for consignment leg are for the operation of consignments. Depending on the consignment type (P2P or non-P2P), available operations can be: pickup,load or unload at a depot,delivery.
Data fields
Consignment leg has following properties.
| Field | Type | Optional / Mandatory | Description |
|---|---|---|---|
consignmentId |
uuid | Optional | unique id of the consignment. |
runsheetId |
uuid | Optional | unique id of the runsheet to allocate this leg on |
sequenceNumber |
integer | Optional | the index (order) of the leg within the consignment |
fromZoneLineId |
uuid | Optional | Id of the combination of suburb + postcode + state with zone. Click here for more detail. |
toZoneLineId |
uuid | Optional | Id of the combination of suburb + postcode + state with zone. Click here for more detail. |
fromDepotId |
uuid | Optional | Depot id. Click here for more detail. |
toDepotId |
uuid | Optional | Depot id for the zone. Click here for more detail. |
scheduleDate |
datetime | Optional | Leg schedule date. |
startDate |
datetime | Optional | Leg starting date. |
type |
string | Mandatory | Type of a leg. See leg type |
status |
integer | Optional | Status of the leg. See leg status |
isFullConsignment |
boolean | Mandatory | If leg contains all articles of the consignment, value must be true. |
Additionally, each operation of consignment legs (pickup, load, unload etc...) can come with article scanning in the body of the request. For scanning data format, refer to article scan data. All operations allowed on articles are also allowed in consignment leg. The difference is in the article scan APIs, there is no leg specified while in consignment leg operations, the leg is selected before scanning so the data is assocated with the selected leg (consignment) only.
Leg type
Each leg must have a type. Following are available values:
| Name | Value to use in json |
|---|---|
| Point to point | p2p |
| Pickup | pickup |
| Line haul | line-haul |
| Delivery | delivery |
Leg status
Leg status reflect what activity has been done on the leg
| Activity | Leg status name | Integer value used in JSON |
|---|---|---|
| Create | NEW | 1 |
| Assign to driver | ASSIGNED | 20 |
| Driver accepts | ACCEPTED | 25 |
| Pickup at customer | PICKED UP AT CUSTOMER | 41 |
| Driver unloads into depot (after pickup at customer) | UNLOAD INTO DEPOT | 101 |
| Driver unloads into depot (from another depot) | UNLOAD INTO NEXT DEPOT | 102 |
| Dispatcher disables leg | DISABLED | 0 |
| Driver rejects leg | REJECTED | -2 |
| Dispatcher removes leg from driver | DEASSIGNED | -1 |
| Driver delivered at the delivery point | DELIVERED | 90 |
Create
Request:
{
"consignmentId":"7112e147-f5d4-46c8-bf4e-f3ce768d2011",
"runsheetId":null,
"sequenceNumber":1,
"fromZoneLineId":"b3fd9b1d-f2c5-457d-a7e2-8e3c9a10932d",
"toZoneLineId":null,
"fromDepotId":null,
"toDepotId":"3a458f17-b0df-4d50-abcc-204f348bf7ce",
"scheduleDate":null,
"startDate":null,
"completionDate":null,
"type":"pickup",
"status":true,
"isFullConsignment":true,
}
var _httpClient = new HttpClient();
var model = JSON.  stringify(ConsignmentLeg);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns the consignment leg just created.
HTTP Request
Update
This endpoint updates a consignment leg details
Request JSON structured like this:
{
"id":"xxxxxx",
"consignmentId":"7112e147-f5d4-46c8-bf4e-f3ce768d2011",
"runsheetId":null,
"sequenceNumber":1,
"fromZoneLineId":"b3fd9b1d-f2c5-457d-a7e2-8e3c9a10932d",
"toZoneLineId":null,
"fromDepotId":null,
"toDepotId":"3a458f17-b0df-4d50-abcc-204f348bf7ce",
"scheduleDate":null,
"startDate":null,
"completionDate":null,
"type":"pickup",
"status":1,
"isFullConsignment":true,
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(ConsignmentLeg);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + 'ConsignmentLeg.Id' , 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns the consignment leg details
HTTP Request
Request Json Parameters
Same as create leg.
Get
This endpoint get the detail of a consignment leg.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns the consignment leg details
HTTP Request
Response Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the consignment leg. | uuid | Mandatory |
For more detail about response parameter Click here.
Delete
This endpoint delete a consignment leg.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns an empty response with status 200.
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the consignment leg. | string uuid | Mandatory |
Query
This endpoint search and get the detail of the consignments stages.
Javascript request be like:
var consignmentleg;
var _httpClient = new HttpClient();
var id = 'xxxxx';
consignmentleg.Id=id;
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,consignmentleg);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
[
{
"id":"xxxxxx",
"consignmentId":"7112e147-f5d4-46c8-bf4e-f3ce768d2011",
"runsheetId":null,
"sequenceNumber":1,
"fromZoneLineId":"b3fd9b1d-f2c5-457d-a7e2-8e3c9a10932d",
"toZoneLineId":null,
"fromDepotId":null,
"toDepotId":"3a458f17-b0df-4d50-abcc-204f348bf7ce",
"scheduleDate":null,
"startDate":null,
"completionDate":null,
"type":"pick up",
"status":true,
"isFullConsignment":true
},
{
"id":"xxxxxx",
"consignmentId":"7112e147-f5d4-46c8-bf4e-f3ce768d2011",
"runsheetId":null,
"sequenceNumber":1,
"fromZoneLineId":"b3fd9b1d-f2c5-457d-a7e2-8e3c9a10932d",
"toZoneLineId":null,
"fromDepotId":null,
"toDepotId":"3a458f17-b0df-4d50-abcc-204f348bf7ce",
"scheduleDate":null,
"startDate":null,
"completionDate":null,
"type":"line haul",
"status":true,
"isFullConsignment":true
}
]
}
HTTP Request
Response Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the consignment leg. | uuid | Mandatory | 36 |
For more detail about response parameter Click here.
Accept
This endpoint is for drivers to accept a consignment for their action.
Javascript request be like:
var _httpClient = new HttpClient();
var model = {}
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + 'id' + '/' + 'accept', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns an empty response with status 200
HTTP Request
Reject
This endpoint is for drivers to reject a consignment.
Javascript request be like:
var _httpClient = new HttpClient();
var model = {}
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + 'id' + '/' + 'reject', 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns and empty response with status SUCCESS (2xx).
HTTP Request
Pick up at customer
This endpoint is used when drivers complete a pickup on a consignment. The consignment is marked as 'PICKED UP'. The body of the request contains scan data if required.
Javascript request be like:
var _httpClient = new HttpClient();
var scanData = new ScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + 'id' + '/' + 'pickup', 'PUT', headers,scanData);
var apicall = _httpClient.send(req);
The above command returns an empty response with status SUCCESS (2xx).
HTTP Request
Deliver
This endpoint is used when driver finish delivery of a consignment. The consignment is marked as 'DELIVERED'. The body of the request contains scan data if required.
Javascript request be like:
var _httpClient = new HttpClient();
var scanData = new ScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + 'id' + '/' + 'deliver', 'PUT', headers,scanData);
var apicall = _httpClient.send(req);
The above command returns an empty response with status SUCCESS (2xx).
HTTP Request
Load from depot
This endpoint is used when drivers have loaded the articles onto his vehicle from the depot. If this leg is line-haul (inter-depot movement), consignment stage will be set to IN-TRANSIT. If this leg is delivery leg (final delivery), the consignment is set to 'ON-FOR-DELIVERY'. The body of the request contains scan data if required.
Javascript request be like:
var _httpClient = new HttpClient();
var scanData = new ScanData();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + 'id' + '/' + 'load-from-depot', 'PUT', headers,scanData);
var apicall = _httpClient.send(req);
The above command returns and empty response with status SUCCESS (2xx)
HTTP Request
Unload into depot
This endpoint is used when drivers completed unload the consignments into a depot. The consignment is marked as 'IN-DEPOT'. The body of the request contains scan data if required.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var scanData = new ScanData();
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + 'id' + '/' + 'unload-into-depot', 'PUT', headers, scanData);
var apicall = _httpClient.send(req);
The above command returns an empty response with status SUCCESS (2xx)
HTTP Request
Back to depot for next delivery attempt
This endpoint is used at the depot, when drivers cannot deliver the consignment and have to carry it back to the depot for the next delivery attempt. The body of the request contains scan data if required.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var scanData = new ScanData();
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + 'id' + '/' + 'unload-back-into-depot-for-next-delivery', 'PUT', headers, scanData);
var apicall = _httpClient.send(req);
The above command returns an empty response with status SUCCESS (2xx)
HTTP Request
Customer
Create
This endpoint create the customer detail provided.
The request json structure like this:
{
"code ":"OROG",
"name ":"ORORA GLASS-GAWLER",
"businessNumber ":"794274381",
"contactName ":"Lee Wilton",
"phoneNumber ":"03 9823 6288",
"email ":"chris@expertfleetservice.com.au",
"addressLine1 ":"BULLICKHEAD ST",
"addressLine2 ":null,
"addressLine3 ":null,
"suburb ":"SUMNER PARK",
"state ":"QLD",
"postcode ":"4074",
"countryCode ":"AU",
"startDate ":"2020-11-02",
"endDate ":"2025-11-02",
"pickupAddressLine1 ":"54 SPINE STREET",
"pickupAddressLine2 ":null,
"pickupSuburb ":"SUMNER PARK",
"pickupState ":"QLD",
"pickupPostcode ":"4074",
"isActive ":true,
"accountManager ":null,
"isCreditBlocked ":false,
"isVipCustomer ":false,
"consignmentPrefix ":"C",
"minimumConsignmentLength ":null,
"isSsccbarcodeRequired ":false,
"barcodeFormat ":null,
"lengthUom ":null,
"weightUom ":null,
"isCreateViaApi ":false,
"useThirdPartyConsignment ":false,
"useThirdPartyConsignmentLabel ":false,
"isWeightRequired ":false,
"isDimensionRequired ":false,
"isDescriptionRequired ":false,
"manifestPrefix ":null,
"isGroupManifestBySender ":false,
"isGroupManifestByService ":false,
"isDailyManifest ":false,
"isAutoCloseManifest ":false,
"manifestAutoCloseTime ":null,
"manifestPickupDefaultTime ":null,
"isAutoManifestReport ":false,
"reportCloseTime ":null,
"isSingleDailyManifest ":false,
"isSenderReferenceRequired ":false,
"isReceiverReferenceRequired ":false,
"isDeliveryTimeRequired ":false,
"isPickupTimeRequired ":false,
"isPickupCloseTimeRequired ":false,
"rateCardId ":null,
"cubicConversionFactor ":null,
"kgToArticleConversionFactor ":null,
"riskLevy ":null
}
Javascript request be like:
var _httpClient=new HttpClient();
var model = JSON.  stringify(Customer);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL, 'POST', headers, model);
var apicall = _httpClient.send(req);
The request json structure like this:
{
"status":200,
"message":"Customer detail has been created!!"
}
HTTP Request URL
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
code |
Unique number or a text value for the customer. | string | Mandatory | 40 |
name |
Name of the customer. | string | Mandatory | 40 |
businessNumber |
ABN number or a register number of the customer with in the organisation. | string | Optional | 40 |
contactName |
Contact person name of the customer. | string | Optional | 40 |
phoneNumber |
Phone number of the customer. | string | Optional | 40 |
email |
Email address detail for the customer. | string | Optional | 40 |
addressLine1 |
Lines of address like street name or building name for customer. | string | Mandatory | 40 |
addressLine2 |
string | Optional | 40 | |
addressLine3 |
string | Optional | 40 | |
suburb |
Suburb of the customer address. | string | Mandatory | 40 |
state |
State of the customer suburb. | string | Mandatory | 3 |
postcode |
Postcode of the customer suburb. | string | Mandatory | 6 |
countryCode |
Country of the customer address like: AU, US, UK etc. | string | Mandatory | 2 |
startDate |
Beginning date of the customer with in a organisation. | date | Mandatory | 40 |
endDate |
Expiry date for the customer with in a organisation. | date | Mandatory | 40 |
pickupAddressLine1 |
Consignment pickup addressline for the customer. | string | Optional | 40 |
pickupAddressLine2 |
string | Optional | 40 | |
pickupSuburb |
Consignment pickup suburb for the customer. | string | Optional | 40 |
pickupState |
Consignment pickup state for the customer pickup address. | string | Optional | 40 |
pickupPostcode |
Consignment pickup postcode for the customer pickup suburb. | string | Optional | 40 |
isActive |
Customer status for the organisation. | boolean | Mandatory | 40 |
accountManager |
Name of the authorise person who is managing customer details. | string | Mandatory | 40 |
isCreditBlocked |
Status of the credit of the customer. | boolean | Optional | 40 |
isVipCustomer |
Status of the customer is customer is VIP or not. | boolean | Optional | 40 |
consignmentPrefix |
Prefix detail for the consignment of customer Like: COPEEXP01223 etc. | string | Optional | 40 |
minimumConsignmentLength |
Minimum length of consignment. | decimal | Optional | 40 |
isSsccbarcodeRequired |
Status of the SSCC label. | boolean | Optional | 40 |
barcodeFormat |
Details of barcode formate. | string | Optional | 40 |
lengthUom |
Measurement deatil of the length like: Centimeter, Meter etc. | string | Optional | 40 |
weightUom |
Measurement deatil of the Weight of the consignment like: KG, Pound etc. | string | Optional | 40 |
isCreateViaApi |
Status of the customer consignment for using API. | boolean | Optional | 40 |
useThirdPartyConsignment |
Status of the customer consignment for using third party. | boolean | Optional | 40 |
useThirdPartyConsignmentLabel |
Status of the customer consignment label for using third party. | boolean | Optional | 40 |
isWeightRequired |
Status of the customer consignment weight requriment. | boolean | Optional | 40 |
isDimensionRequired |
Status of the customer consignment dimension requriment. | boolean | Optional | 40 |
isDescriptionRequired |
Status of the customer consignment description requriment. | boolean | Optional | 40 |
manifestPrefix |
Formate of the manifest prefix for the customer. | string | Optional | 40 |
isGroupManifestBySender |
Status of the customer manifest by sender detail. | boolean | Optional | 40 |
isGroupManifestByService |
Status of the customer manifest by service detail. | boolean | Optional | 40 |
isDailyManifest |
Status of the customer manifest by daily basis. | boolean | Optional | 40 |
isAutoCloseManifest |
Status of the customer manifest by daily close basis. | boolean | Optional | 40 |
manifestAutoCloseTime |
If customer manifest is auto close daily then required the auto close time. | datetime | Optional | 40 |
manifestPickupDefaultTime |
If customer manifest is auto close daily then required the auto pickup time. | datetime | Optional | 40 |
isAutoManifestReport |
If customer manifest is auto close daily then required status of the auto report. | boolean | Optional | 40 |
reportCloseTime |
If IsAutoManifestReport is true then report close time is required. | datetime | Optional | 40 |
isSingleDailyManifest |
If a customer do only one manifest a day then this field must be true. | boolean | Optional | 40 |
isSenderReferenceRequired |
If customer needs to have sender reference in every consignment this field must to be true. | boolean | Optional | 40 |
isReceiverReferenceRequired |
If customer needs to have receiver reference in every consignment this field must to be true. | boolean | Optional | 40 |
isDeliveryTimeRequired |
If customer needs to have delivery time in every consignment this field must to be true. | boolean | Optional | 40 |
isPickupTimeRequired |
If customer needs to have pick up time in every consignment this field must to be true. | boolean | Optional | 40 |
isPickupCloseTimeRequired |
If customer needs to have pick up close time in every consignment this field must to be true. | boolean | Optional | 40 |
pickupAddressLine3 |
string | Optional | 40 | |
pickupCountryCode |
string | Optional | 40 | |
rateCardId |
If customer has a any associate default ratecard provided by organisation,then this field is mandatory. | string | Optional | 40 |
cubicConversionFactor |
string | Optional | 40 | |
kgToArticleConversionFactor |
string | Optional | 40 | |
iskLevy |
decimal | Optional | 40 |
Get
This endpoint gets the detail of a customer.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxx",
"code ":"OROG",
"name ":"ORORA GLASS-GAWLER",
"businessNumber ":"794274381",
"contactName ":"Lee Wilton",
"phoneNumber ":"03 9823 6288",
"email ":"chris@expertfleetservice.com.au",
"addressLine1 ":"BULLICKHEAD ST",
"addressLine2 ":null,
"addressLine3 ":null,
"suburb ":"SUMNER PARK",
"state ":"QLD",
"postcode ":"4074",
"countryCode ":"AU",
"startDate ":"2020-11-02",
"endDate ":"2025-11-02",
"pickupAddressLine1 ":"54 SPINE STREET",
"pickupAddressLine2 ":null,
"pickupSuburb ":"SUMNER PARK",
"pickupState ":"QLD",
"pickupPostcode ":"4074",
"isActive ":true,
"accountManager ":null,
"isCreditBlocked ":false,
"isVipCustomer ":false,
"consignmentPrefix ":"C",
"minimumConsignmentLength ":null,
"isSsccbarcodeRequired ":false,
"barcodeFormat ":null,
"lengthUom ":null,
"weightUom ":null,
"isCreateViaApi ":null,
"useThirdPartyConsignment ":false,
"useThirdPartyConsignmentLabel ":false,
"isWeightRequired ":false,
"isDimensionRequired ":false,
"isDescriptionRequired ":false,
"manifestPrefix ":null,
"isGroupManifestBySender ":false,
"isGroupManifestByService ":false,
"isDailyManifest ":false,
"isAutoCloseManifest ":false,
"manifestAutoCloseTime ":null,
"manifestPickupDefaultTime ":null,
"isAutoManifestReport ":false,
"reportCloseTime ":null,
"isSingleDailyManifest ":false,
"isSenderReferenceRequired ":false,
"isReceiverReferenceRequired ":false,
"isDeliveryTimeRequired ":false,
"isPickupTimeRequired ":false,
"isPickupCloseTimeRequired ":false,
"rateCardId ":null,
"cubicConversionFactor ":null,
"kgToArticleConversionFactor ":null,
"riskLevy ":null
}
HTTP Request
Response Json Parameters
To know more about response parameter please refer to Create Customer section.
Update
This endpoint gets the detail of a customer.
Json request be like:
{
"id":"xxxxx",
"code ":"OROG",
"name ":"ORORA GLASS-GAWLER",
"businessNumber ":"794274381",
"contactName ":"Lee Wilton",
"phoneNumber ":"03 9823 6288",
"email ":"chris@expertfleetservice.com.au",
"addressLine1 ":"BULLICKHEAD ST",
"addressLine2 ":null,
"addressLine3 ":null,
"suburb ":"SUMNER PARK",
"state ":"QLD",
"postcode ":"4074",
"countryCode ":"AU",
"startDate ":"2020-11-02",
"endDate ":"2025-11-02",
"pickupAddressLine1 ":"54 SPINE STREET",
"pickupAddressLine2 ":null,
"pickupSuburb ":"SUMNER PARK",
"pickupState ":"QLD",
"pickupPostcode ":"4074",
"isActive ":true,
"accountManager ":null,
"isCreditBlocked ":false,
"isVipCustomer ":false,
"consignmentPrefix ":"C",
"minimumConsignmentLength ":null,
"isSsccbarcodeRequired ":false,
"barcodeFormat ":null,
"lengthUom ":null,
"weightUom ":null,
"isCreateViaApi ":null,
"useThirdPartyConsignment ":false,
"useThirdPartyConsignmentLabel ":false,
"isWeightRequired ":false,
"isDimensionRequired ":false,
"isDescriptionRequired ":false,
"manifestPrefix ":null,
"isGroupManifestBySender ":false,
"isGroupManifestByService ":false,
"isDailyManifest ":false,
"isAutoCloseManifest ":false,
"manifestAutoCloseTime ":null,
"manifestPickupDefaultTime ":null,
"isAutoManifestReport ":false,
"reportCloseTime ":null,
"isSingleDailyManifest ":false,
"isSenderReferenceRequired ":false,
"isReceiverReferenceRequired ":false,
"isDeliveryTimeRequired ":false,
"isPickupTimeRequired ":false,
"isPickupCloseTimeRequired ":false,
"rateCardId ":null,
"cubicConversionFactor ":null,
"kgToArticleConversionFactor ":null,
"riskLevy ":null
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Customer);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Customer detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please refer to Create Customer section.
Delete
This endpoint delete the detail of a customer.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Customer detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the customer. | string | Mandatory | 40 |
Customer Invoice
Invoice a consignment
This end point generates an invoice for a consignment.
Javascript
var _httpClient = new HttpClient();
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var consignmentId = xxxx;
var req = new Request('webapi/consignment/' + consignmentId + '/invoice' , 'POST', headers, {});
var apicall = httpClient.send(req);
The above code returns the invoice object created
HTTP Request
Request Json URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
consignmentId |
The id of the consignment that you are going to create invoice. | string | Optional | 36 |
Invoice an warehouse order
This end point generates an invoice for a warehouse order.
Invoice multiple consignments
This endpoint generate multiple invoices for multiple consignments.
Javascript
var _httpClient = new HttpClient();
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var form = {
consignmentIds: ["xx","xx","xx"] //list of consignmentIds to be invoiced
};
var req = new Request(URL +'/' + 'generate' , 'POST', headers, form);
var apicall = httpClient.send(req);
HTTP Request
Request Json Fields
| Field | Type | Optional / Mandatory | Description |
|---|---|---|---|
consignmentIds |
uuid[] |
mandatory | list of consignments' ids to generate invoices |
Response Json Fields
| Field | Type | Description |
|---|---|---|
generatedInvoices |
object[] |
list of invoice objects generated. |
Get Invoice Details
This endpoint gets an invoice's details.
Javascript
var _httpClient = new HttpClient();
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL +'/' + '{invoiceId}' , 'GET', headers);
var apicall = httpClient.send(req);
Example response:
{
"customerId" :"aa3f2f4f-edac-4a19-977b-1a410d22cccc",
"invoiceNumber" :"INV8097",
"customerRefNo":null,
"issueDate" :"07/06/2021 00:00 00",
"dueDate" :"25/06/2021 00:00 00",
"status" :1,
"currency" :"AUD",
"invoiceTotalExTax" :134.34,
"invoiceTax" :13.4,
"invoiceTotalIncTax" :147.74,
"amountPaid" :147.74,
"items":
[
{
"invoiceId" :"64d0e600-014d-4cf7-9264-4e2ccee8f007",
"billingEntityType" :"Consignment",
"billingEntityId" :"d5dce911-f531-4fb7-adbe-65b8218be241",
"lineType" :1,
"unitPrice" :500.20,
"quantity" :1,
"taxCode" :"PROD2",
"taxPercent" :10,
"taxAmount" :13.4,
"lineTotalExTax" :134.34,
"lineTotalIncTax" :147.74,
}
]
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
The id of the invoice that you are going to get. | string | Optional | 36 |
Query Invoices
This endpoint search for invoices. More information can be found in search query
Create charge or credit
This endpoint uses to create a charge (invoice) or credit (reverse-charge). A charge is typically an invoice but it can include various non-invoice charge, for example: statement fee, payment processing fee, late payment fees ..etc... This endpoint can also create reverse-invoice (credit) for customer.
This API is not for billing a consignment or an warehouse order. To create invoice for a consignment or warehouse order, use other API as described above.
Javascript
var invoice =
{
invoiceNumber: 'xx',//auto-generated if leave blank
customerRefNo: 'yy',
issueDate: '2021-09-14',
customerId: 'xxxxx',
type: 'I' //this could be: I=invoice, C=credit, default is invoice(I)
dueDate: '2021-10-14',//auto calculate from issueDate using payment term
chargeType: 'F'//this could be: I for invoice charge, F for other fees, leave blank if this is a credit
items: [
{
itemDescription: 'late fees for September statement',
unitPrice: 2.5,
quantity: 1,
accountCode: 'A' //customer default account code if leave blank
}
]
}
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL +'/customer-invoice' , 'POST', headers, invoice);
var apicall = httpClient.send(req);
Request payload fields:
| Field | Type | Optional/Mandatory | Description | |
|---|---|---|---|---|
| invoiceNumber | text | mandatory | invoice number | |
| customerRefNo | text | mandatory | customer reference number | |
| issueDate | date | optional | system will set to current date if this field is empty | |
| customerId | guid | mandatory | customer ID | |
| type | char | mandatory | I for invoice and C for credit |
|
| dueDate | date | mandatory | due date for the invoice | |
| chargeType | char | optional | blank for credit, F for other fees, I for normal invoice charge |
|
| items | object[] | mandatory | list of item line | |
| items[].itemDescription | text | item description | ||
| unit price | decimal | unit price | ||
| quantity | number | quantity | ||
| accountCode | text | customer account code to charge for |
HTTP Request
Delete Invoice
This endpoint deletes an invoice. (before the invoice is finalised)
Javascript
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The response is empty with status code 2xx
HTTP Request
URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
Id of a invoice which is going to be delete. | datetime | Mandatory | N/A |
Customer Payment
Create
This api create the details of customer payment.
Request
{
"customerId":"7cd939d2-5938-4cb9-a280-9fbb60036161" ,
"amount":134.2 ,
"paymentDate":"07/06/2021 00:00 00" ,
"paymentMethod":"Card" ,
"paymentReference":"Inv2333",
"comments":null ,
"invoicePayments":
[
{
"invoiceId" :"4afac6b9-c27d-4edc-bcef-4a4771089901",
"customerPaymentId" :"188c817b-cfda-453a-9ffd-25b210db33ee",
"amountAllocated" :134.2,
}
]
}
var _httpClient = new HttpClient();
var model = JSON.  stringify(ArticleType);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'POST', headers,model);
var apicall = httpClient.send(req);
The above command returns the payment object created
HTTP Request
Request Json Parameters
| Field | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
customerId |
Unique id of customer. | string | Mandatory | 36 |
amount |
Total amount that has been paid by customer. | string | Mandatory | 6 |
paymentDate |
Invoice paid date. | string | Mandatory | N/A |
paymentMethod |
Payment method. Example: Card, Cash .. | string | Mandatory | 36 |
paymentReference |
Reference of the payment. | string | Mandatory | 36 |
comments |
Notes for the payment. | string | Mandatory | 36 |
| invoicePayments | list of lines for each invoice | array of object | Mandatory | 36 |
invoiceId |
Invoice id that has been paid. | string | Mandatory | 36 |
amountAllocated |
The amount which has been paid. | decimal | Mandatory | 10 |
Get
This endpoint get the detail of a customer payment.
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
Response sample:
{
"id":"xxxx" ,
"customerId":"7cd939d2-5938-4cb9-a280-9fbb60036161" ,
"amount":134.2 ,
"paymentDate":"07/06/2021 00:00 00" ,
"paymentMethod":"Card" ,
"paymentReference":"Inv2333",
"comments":null ,
"status":1,
"invoicePayments":
[
{
"invoiceId" :"4afac6b9-c27d-4edc-bcef-4a4771089901",
"customerPaymentId" :"188c817b-cfda-453a-9ffd-25b210db33ee",
"amountAllocated" :134.2,
}
]
}
}
HTTP Request
Response Json Parameters
To know more about response parameter please refer to Create Customer Payment section.
Delete
This endpoint delete the detail of a customer payment.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The response is empty with status code 2xx
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the article type. | string | Mandatory | 36 |
Customer Account Statement
Create
This endpoint creates a statement
Request sample:
{
"customerId":"51564f7e-7e40-4295-afa8-ad4bbc1186f8",
"dateTo":"2021-10-09",
}
var _httpClient = new HttpClient();
var model = JSON.  stringify(accountPayment);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'POST', headers,model);
var apicall = httpClient.send(req);
The response is the statement object created
HTTP Request
Request Json Parameters
| Field | Description | Type | Optional / Mandatory |
|---|---|---|---|
customerId |
Unique Id of a customer. | string | Mandatory |
dateTo |
Statement end date, blank value will create a statement up to the date before the current date. | date | optional |
Get
This endpoint get the detail of a statement
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
Response sample
{
"id":"xxxx",
"customerId":"51564f7e-7e40-4295-afa8-ad4bbc1186f8",
"number":"11",
"dateFrom":"01/06/2021 00:00 00",
"dateTo":"25/06/2021 00:00 00",
"statementDate":"25/07/2021 00:00 00",
"totalAmount":1125.30
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the statement. | string | Mandatory | 36 |
Query
Refer to search query (general search) for details of search for statement
Warehousing
Receiving process
The process of receiving includes these requests
Create warehouse inbound order
Create goods receipt for the order
Optionally scan serial numbers and
Complete goods receipts with actual quantities received
Multiple goods receipt can be added to one order
Complete inbound orders (after completing all goods receipts)
Status
- Warehouse inbound order status (integer)
| Status name | Value in json | Description |
|---|---|---|
| NEW | 0 | order created |
| COMPLETED | 1 | Order completed (received) |
| CANCELLED | 2 | Order cancelled |
- Goods Receipt status (integer)
| Status name | Value in Json | Description |
|---|---|---|
| NEW | 0 | Goods Receipt created |
| COMPLETED | 1 | Goods receipt completed (received into warehouse) |
Data fields
- Warehouse inbound order data fields
| Data field | Type | Description | ||
|---|---|---|---|---|
| id | uuid | Primary key | ||
| orderNumber | text | Order number | ||
| businessLocationId | uuid | warehouse Id, refer to table businessLocation, type=warehouse | ||
| customerId | uuid | customer the warehouse order belongs to | ||
| referenceNo | text | additional reference information | ||
| orderDate | date | order date | ||
| expectedReceiptDate | date | date of receiving (planned) | ||
| lines | object[] | array of order lines | ||
| line[].productId | uuid | product to received | ||
| line[].orderQuantity | number | quantity expect to receive |
- Goods receipt data fields
| Data field | Type | Description | ||
|---|---|---|---|---|
| id | uuid | primary key | ||
| inboundOrderId | uuid | the inbound order for which this goods receipt is for | ||
| receiptDate | date | date on which the receipt finished (goods received into the warehouse) | ||
| lines | object[] | list of detail lines of the goods receipt | ||
| line[].inboundOrderLineId | uuid | the order line for which this receipt line is received | ||
| line[].batchNumber | text | batch number for this receipt line if applicable | ||
| line[].expiryDate | date | expiry date of the goods received if applicable | ||
| line[].bins | object[] | details of the bin goods were stored into during receiving process | ||
| line[].bin[].binId | uuid | the bin Id (refer to bin master) | ||
| line[].bin[].quantity | number | quantity received at this bin | ||
| line[].serialNumbers | object[] | array of serial numbers received by this line | ||
| line[].serialNumber[].serialNumber | text | the serial number recorded |
Create Inbound Order
This end points create an warehouse order
Javascript example:
var whOder = {
orderNumber: "TESTORDER",
customerId: "9d62fca5-1562-4b6f-bc6c-2e81ee5b723c",
businessLocationId:"8e118da2-7bbc-4d4b-b3a1-3358abf5f450",
orderDate:"2021-11-08",
lines:[
{
productId:"088219d8-c73a-44df-92c3-99d3ba2dc6db",
orderQuantity:30
}
]
};
var _httpClient = new HttpClient();
var model = JSON.stringify(whOrder);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/warehouse-inbound-order' , 'POST', headers,model);
var apicall = _httpClient.send(req);
The call will return the order just created
HTTP Request
Search Inbound Order
Refer to the common search query for details
Create Goods Receipt
This endpoint creates a goods receipt for the order line. Multiple goods receipt can be added to a same order line.
Javascript example:
var goodsReceipt = {
inboundOrderId: "87546545-034b-49b5-b5e1-139db4634ca5",
receiptDate:"2021-11-08",
lines:[
{
inboundOrderLineId: "bc1604b2-46ab-41d0-9a89-5b14c917c7db",
bins:[
{
"binId":"227fac0d-555d-45d0-976a-0973eb0a0cb8",
"quantity":20
},
{
"binId":"ee6aefd5-c7c2-45ad-aace-31a1a45bf5ea",
"quantity":10
}
]
}
]
};
var _httpClient = new HttpClient();
var model = JSON.stringify(goodsReceipt);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/warehouse-order-goods-receipt' , 'POST', headers,model);
var apicall = _httpClient.send(req);
The call will return the goods receipt just created
HTTP Request
Search Goods Receipt
Refer to the common search query for details
Complete Goods Receipt
This endpoint will completes a goods receipt. It puts the status of the receipt to 'COMPLETED' and the stock on hand is increased that the bin specified in the receipt.
Javascript example:
var _httpClient = new HttpClient();
var id = "";
var model = JSON.stringify({});//no payload
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/warehouse-order-goods-receipt/' + id + '/complete' , 'PUT', headers,model);
var apicall = _httpClient.send(req);
The call will return the goods receipt just completed
HTTP Request
Request parameters on url
| Parameter | Type | Description |
|---|---|---|
| {id} | uuid | the id of the goods-receipt to complete |
Complete Inbound Order
This endpoint will close the order so no receipt can be added to the order. Prior to closing the order, all goods receipts must be also closed (completed)
Javascript example:
Javascript example:
var _httpClient = new HttpClient();
var id = "";
var model = JSON.stringify({});//no payload
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/warehouse-inbound-order/' + id + '/complete' , 'PUT', headers,model);
var apicall = _httpClient.send(req);
The call will return the inbound order just completed
HTTP Request
Request parameters on url
| Parameter | Type | Description |
|---|---|---|
| {id} | uuid | the id of the inbound order to complete |
Driver
Create
This endpoint create driver detail for the organisation.
Request JSON structured like this:
{
"driverCode" : "COPEDIV3",
"driverName" : "Jony Lorance",
"status" : 1,
"holdFlag" : null,
"payrollCode" : null,
"address1" : "24 smythe St",
"address2" : null,
"address3" : null,
"phone" : null,
"mobile" : null,
"company" : "Cope",
"bulkdg" : null,
"email" : null,
"dob" : "18-06-1986",
"emergencyPhone" : null,
"depot" : null,
"maxSpeedAlertToDriver" : null,
"maxSpeedAlertToDespatch" : null,
"maxSpeedAlertToDespatchDuration" : null,
"licenceNumber" : "21658963",
"licenceValidDate" : "22-06-2026",
"licenceIssuedDate" : "15-01-2021",
"licenceIssuedState" : "NSW",
"isActive" : true,
}
Javescript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Driver);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status" : "200",
"message" : "Driver detail has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
driverCode |
Identifier id for the driver. | string | Mandatory | 40 |
driverName |
Name of the driver. | string | Mandatory | 40 |
status |
integer | Mandatory | 3 | |
holdFlag |
integer | Mandatory | 3 | |
payrollCode |
string | Mandatory | 40 | |
address1 |
Postal address line of driver,must be steet name, building name. | string | Mandatory | 40 |
address2 |
string | Mandatory | 40 | |
address3 |
string | Mandatory | 40 | |
Pphone |
Phone number of the driver. | string | Optional | 20 |
mobile |
Mobile Number of the driver. | string | Optional | 20 |
company |
Driver associated company name. | string | Optional | 40 |
bulkdg |
string | Optional | 40 | |
email |
Email of driver. | string | Optional | 40 |
dob |
Date of birth of driver . | Date | Optional | 10 |
emergencyPhone |
string | Optional | 20 | |
depot |
string | Optional | 40 | |
maxSpeedAlertToDriver |
integer | Optional | 3 | |
maxSpeedAlertToDespatch |
integer | Optional | 3 | |
maxSpeedAlertToDespatchDuration |
integer | Optional | 3 | |
licenceNumber |
Driving licence number of the driver. | string | Mandatory | 20 |
licenceValidDate |
Licence expiry date. | Date | Mandatory | 10 |
licenceIssuedDate |
Licence issued date. | Date | Mandatory | 10 |
licenceIssuedState |
Licence issued state. | string | Mandatory | 3 |
isActive |
Status of the driver, must be true if driver is working. | boolean | Mandatory | N/A |
Get
This endpoints get the detail of a driver.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxxx",
"driverCode" : "COPEDIV3",
"driverName" : "Jony Lorance",
"status" : 1,
"holdFlag" : null,
"payrollCode" : null,
"address1" : "24 smythe St",
"address2" : null,
"address3" : null,
"phone" : null,
"mobile" : null,
"company" : "Cope",
"bulkdg" : null,
"email" : null,
"dob" : "18-06-1986",
"emergencyPhone" : null,
"depot" : null,
"maxSpeedAlertToDriver" : null,
"maxSpeedAlertToDespatch" : null,
"maxSpeedAlertToDespatchDuration" : null,
"licenceNumber" : "21658963",
"licenceValidDate" : "22-06-2026",
"licenceIssuedDate" : "15-01-2021",
"licenceIssuedState" : "NSW",
"isActive" : true
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here for more detail.
Update
This endpoint update the detail of a driver.
Json request be like:
{
"id":"xxxxxx",
"driverCode" : "COPEDIV3",
"driverName" : "Jony Lorance",
"status" : 1,
"holdFlag" : null,
"payrollCode" : null,
"address1" : "24 smythe St",
"address2" : null,
"address3" : null,
"phone" : null,
"mobile" : null,
"company" : "Cope",
"bulkdg" : null,
"email" : null,
"dob" : "18-06-1986",
"emergencyPhone" : null,
"depot" : null,
"maxSpeedAlertToDriver" : null,
"maxSpeedAlertToDespatch" : null,
"maxSpeedAlertToDespatchDuration" : null,
"licenceNumber" : "21658963",
"licenceValidDate" : "22-06-2026",
"licenceIssuedDate" : "15-01-2021",
"licenceIssuedState" : "NSW",
"isActive" : true
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(driver);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Driver detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about Request parameter please Click here.
Delete
This endpoint delete the detail of a driver.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Driver detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the driver. | string | Mandatory | 40 |
Jobs
Get Assigned Jobs
This endpoint gets all the assigned job within the dates for the depot.
Request JSON structured like this:
{
"dateFrom" : "07/06/2021 00:00 00",
"dateTo" : "07/07/2021 00:00 00",
"depotId" : "66e0a506-64b4-4c55-90aa-940f9da3cb05"
}
Javescript call like this:
var _httpClient = new HttpClient();
var consignmentId='xxxx',
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL +'/' +'consignmentId' , 'POST', headers);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"date":"07/07/2021 00:00 00",
"type":"assign",
"phone":"0426655889",
"addressLine1":"10 Broker St",
"addressLine2":"",
"suburb":"Pot Point",
"postcode":"2009",
"state":"NSW",
"country":"AU",
"jobLines":
[
{
"entityType":"Consignment",
"entityId":"88718d06-7de2-42b9-8a7f-ab03f1c1fa3c",
"type":"assign",
"ref":"O3379784R8",
"specialInstructions":null,
"statusCode":1,
"status":"active"
},
{
"entityType":"Consignment",
"entityId":"debf465e-8232-4097-a251-983644810088",
"type":"assign",
"ref":"R3017138R1",
"statusCode":1,
"status":"active"
"specialInstructions":""
},
{
"entityType":"Consignment",
"entityId":"a10a1020-e193-4ff8-bea5-fe49223efb02",
"type":"assign",
"ref":"MEA081515831",
"specialInstructions":"",
"statusCode":1,
"status":"active"
}
]
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
dateFrom |
Start date to get jobs. | datetime | Mandatory | 40 |
dateto |
End date to get jobs. | datetime | Mandatory | 40 |
depotId |
The id of business location.Click Here for more detail. | string | Mandatory | 40 |
Get UnAssigned Jobs
This endpoint gets all the unassigned job within the dates for the depot.
Request JSON structured like this:
{
"dateFrom" : "07/06/2021 00:00 00",
"dateTo" : "'07/07/2021 00:00 00'",
"depotId" : "66e0a506-64b4-4c55-90aa-940f9da3cb05"
}
Javescript call like this:
var _httpClient = new HttpClient();
var consignmentId='xxxx',
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL +'/' +'consignmentId' , 'POST', headers);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"date":"07/07/2021 00:00 00",
"type":"unassign",
"phone":"0426655889",
"addressLine1":"10 Broker St",
"addressLine2":"",
"suburb":"Pot Point",
"postcode":"2009",
"state":"NSW",
"country":"AU",
"jobLines":
[
{
"entityType":"Consignment",
"entityId":"88718d06-7de2-42b9-8a7f-ab03f1c1fa3c",
"type":"unassign",
"ref":"O3379784R8",
"specialInstructions":null
},
{
"entityType":"Consignment",
"entityId":"debf465e-8232-4097-a251-983644810088",
"type":"unassign",
"ref":"R3017138R1",
"specialInstructions":null
},
{
"entityType":"Consignment",
"entityId":"a10a1020-e193-4ff8-bea5-fe49223efb02",
"type":"unassign",
"ref":"MEA081515831",
"specialInstructions":null
}
]
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
dateFrom |
Start date to get jobs. | datetime | Mandatory | 40 |
dateto |
End date to get jobs. | datetime | Mandatory | 40 |
depotId |
The id of business location.Click Here for more detail. | string | Mandatory | 40 |
Get Onboard Jobs
This endpoint gets all the onboard job within the dates for the depot.
Request JSON structured like this:
{
"dateFrom" : "07/06/2021 00:00 00",
"dateTo" : "'07/07/2021 00:00 00'",
"depotId" : "66e0a506-64b4-4c55-90aa-940f9da3cb05"
}
Javescript call like this:
var _httpClient = new HttpClient();
var consignmentId='xxxx',
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL +'/' +'consignmentId' , 'POST', headers);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"date":"07/07/2021 00:00 00",
"type":"onboard",
"phone":"0426655889",
"addressLine1":"10 Broker St",
"addressLine2":"",
"suburb":"Pot Point",
"postcode":"2009",
"state":"NSW",
"country":"AU",
"jobLines":
[
{
"entityType":"Consignment",
"entityId":"88718d06-7de2-42b9-8a7f-ab03f1c1fa3c",
"type":"onboard",
"ref":"O3379784R8",
"specialInstructions":null
},
{
"entityType":"Consignment",
"entityId":"debf465e-8232-4097-a251-983644810088",
"type":"onboard",
"ref":"R3017138R1",
"specialInstructions":null
},
{
"entityType":"Consignment",
"entityId":"a10a1020-e193-4ff8-bea5-fe49223efb02",
"type":"onboard",
"ref":"MEA081515831",
"specialInstructions":null
}
]
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
dateFrom |
Start date to get jobs. | datetime | Mandatory | 40 |
dateto |
End date to get jobs. | datetime | Mandatory | 40 |
depotId |
The id of business location.Click Here for more detail. | string | Mandatory | 40 |
Get All Active Jobs
This endpoint gets all active job within the dates for the depot.
Request JSON structured like this:
{
"dateFrom" : "07/06/2021 00:00 00",
"dateTo" : "'07/07/2021 00:00 00'",
"depotId" : "66e0a506-64b4-4c55-90aa-940f9da3cb05"
}
Javescript call like this:
var _httpClient = new HttpClient();
var consignmentId='xxxx',
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL +'/' +'consignmentId' , 'POST', headers);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"date":"07/07/2021 00:00 00",
"type":null,
"phone":"0426655889",
"addressLine1":"10 Broker St",
"addressLine2":"",
"suburb":"Pot Point",
"postcode":"2009",
"state":"NSW",
"country":"AU",
"jobLines":
[
{
"entityType":"Consignment",
"entityId":"88718d06-7de2-42b9-8a7f-ab03f1c1fa3c",
"type":null,
"ref":"O3379784R8",
"specialInstructions":null
},
{
"entityType":"Consignment",
"entityId":"debf465e-8232-4097-a251-983644810088",
"type":null,
"ref":"R3017138R1",
"specialInstructions":null
},
{
"entityType":"Consignment",
"entityId":"a10a1020-e193-4ff8-bea5-fe49223efb02",
"type":"assign",
"ref":"MEA081515831",
"specialInstructions":null
}
]
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
dateFrom |
Start date to get jobs. | datetime | Mandatory | 40 |
dateto |
End date to get jobs. | datetime | Mandatory | 40 |
depotId |
The id of business location.Click Here for more detail. | string | Mandatory | 40 |
Get All Jobs
This endpoint gets all job within the dates for the depot.
Request JSON structured like this:
{
"dateFrom" : "07/06/2021 00:00 00",
"dateTo" : "'07/07/2021 00:00 00'",
"depotId" : "66e0a506-64b4-4c55-90aa-940f9da3cb05"
}
Javescript call like this:
var _httpClient = new HttpClient();
var consignmentId='xxxx',
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL +'/' +'consignmentId' , 'POST', headers);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"date":"07/07/2021 00:00 00",
"type":null,
"phone":"0426655889",
"addressLine1":"10 Broker St",
"addressLine2":"",
"suburb":"Pot Point",
"postcode":"2009",
"state":"NSW",
"country":"AU",
"jobLines":
[
{
"entityType":"Consignment",
"entityId":"88718d06-7de2-42b9-8a7f-ab03f1c1fa3c",
"type":null,
"ref":"O3379784R8",
"specialInstructions":null
},
{
"entityType":"Warehouse",
"entityId":"a10a1020-e193-4ff8-bea5-fe49223efb02",
"type":"pointtopoint",
"ref":"MEA081515831",
"specialInstructions":null
"statusCode":1,
"status":"active"
}
]
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
dateFrom |
Start date to get jobs. | datetime | Mandatory | N/A |
dateto |
End date to get jobs. | datetime | Mandatory | N/A |
depotId |
The id of business location.Click Here for more detail. | string | Mandatory | 36 |
Update Picked Up Job
This endpoint update all job to pickup status within the dates for the depot.
Request JSON structured like this:
```json
{
"date":"07/07/2021 00:00 00",
"type":"picked up",
"phone":"0426655889",
"addressLine1":"10 Broker St",
"addressLine2":"",
"suburb":"Pot Point",
"postcode":"2009",
"state":"NSW",
"country":"AU",
"statusCode":1,
"status":"active",
"runsheetId":null,
"jobLines":
[
{
"entityType":"Consignment",
"entityId":"88718d06-7de2-42b9-8a7f-ab03f1c1fa3c",
"type":"pick up",
"ref":"O3379784R8",
"specialInstructions":null,
"statusCode":1,
"status":"active"
},
{
"entityType":"Booking",
"entityId":"debf465e-8232-3697-a251-983644810088",
"type":"deliver",
"ref":"R3017138R1",
"specialInstructions":null
},
{
"entityType":"Consignment",
"entityId":"a10a1020-e193-4ff8-bea5-fe49223efb02",
"type":"assign",
"ref":"MEA081515831",
"specialInstructions":null
}
]
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
date |
string | Mandatory | 40 | |
type |
string | Mandatory | 40 | |
phone |
string | Mandatory | 40 | |
addressLine1 |
string | Mandatory | 40 | |
addressLine2 |
string | Mandatory | 40 | |
suburb |
string | Mandatory | 40 | |
postcode |
string | Mandatory | 40 | |
state |
string | Mandatory | 40 | |
country |
string | Mandatory | 40 | |
statusCode |
string | Mandatory | 40 | |
status |
string | Mandatory | 40 | |
runsheetId |
string | Mandatory | 40 |
Request Json Parameters
For more detail about request json parameters please Click Here.
Update Loaded Jobs
This endpoint update all jobs to loaded status within the dates for the depot.
Request JSON structured like this:
{
"date":"07/07/2021 00:00 00",
"type":"loaded",
"phone":"0426655889",
"addressLine1":"10 Broker St",
"addressLine2":"",
"suburb":"Pot Point",
"postcode":"2009",
"state":"NSW",
"country":"AU",
"statusCode":1,
"status":"active",
"runsheetId":null,
"jobLines":
[
{
"entityType":"Consignment",
"entityId":"88718d06-7de2-42b9-8a7f-ab03f1c1fa3c",
"type":"pick up",
"ref":"O3379784R8",
"specialInstructions":null,
"statusCode":1,
"status":"active"
},
{
"entityType":"Booking",
"entityId":"debf465e-8232-3697-a251-983644810088",
"type":"deliver",
"ref":"R3017138R1",
"specialInstructions":null,
"statusCode":1,
"status":"active"
},
{
"entityType":"Warehouse",
"entityId":"a10a1020-e193-4ff8-bea5-fe49223efb02",
"type":"pointtopoint",
"ref":"MEA081515831",
"specialInstructions":null
"statusCode":1,
"status":"active"
}
]
}
Javescript call like this:
var _httpClient = new HttpClient();
var consignmentId='xxxx',
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'PUT', headers,model);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"code":"200",
"message":"Loaded job status has been updated!!"
}
HTTP Request
Request Json Parameters
For more detail about request json parameters please Click Here.
Update UnLoaded Jobs
This endpoint update all jobs to unloaded status within the dates for the depot.
Request JSON structured like this:
{
"date":"07/07/2021 00:00 00",
"type":"Unloaded",
"phone":"0426655889",
"addressLine1":"10 Broker St",
"addressLine2":"",
"suburb":"Pot Point",
"postcode":"2009",
"state":"NSW",
"country":"AU",
"statusCode":1,
"status":"active",
"runsheetId":null,
"jobLines":
[
{
"entityType":"Consignment",
"entityId":"88718d06-7de2-42b9-8a7f-ab03f1c1fa3c",
"type":"pick up",
"ref":"O3379784R8",
"specialInstructions":null,
"statusCode":1,
"status":"active"
},
{
"entityType":"Booking",
"entityId":"debf465e-8232-3697-a251-983644810088",
"type":"deliver",
"ref":"R3017138R1",
"specialInstructions":null,
"statusCode":1,
"status":"active"
},
{
"entityType":"Warehouse",
"entityId":"a10a1020-e193-4ff8-bea5-fe49223efb02",
"type":"pointtopoint",
"ref":"MEA081515831",
"specialInstructions":null
"statusCode":1,
"status":"active"
}
]
}
Javescript call like this:
var _httpClient = new HttpClient();
var consignmentId='xxxx',
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'PUT', headers,model);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"code":"200",
"message":"Unloaded job status has been updated!!"
}
HTTP Request
Request Json Parameters
For more detail about request json parameters please Click Here.
Update Return Jobs
This endpoint update all jobs to unloaded status within the dates for the depot.
Request JSON structured like this:
{
"date":"07/07/2021 00:00 00",
"type":"Return",
"phone":"0426655889",
"addressLine1":"10 Broker St",
"addressLine2":"",
"suburb":"Pot Point",
"postcode":"2009",
"state":"NSW",
"country":"AU",
"statusCode":1,
"status":"active",
"runsheetId":null,
"jobLines":
[
{
"entityType":"Consignment",
"entityId":"88718d06-7de2-42b9-8a7f-ab03f1c1fa3c",
"type":"pick up",
"ref":"O3379784R8",
"specialInstructions":null,
"statusCode":1,
"status":"active"
},
{
"entityType":"Booking",
"entityId":"debf465e-8232-3697-a251-983644810088",
"type":"deliver",
"ref":"R3017138R1",
"specialInstructions":null,
"statusCode":1,
"status":"active"
},
{
"entityType":"Warehouse",
"entityId":"a10a1020-e193-4ff8-bea5-fe49223efb02",
"type":"pointtopoint",
"ref":"MEA081515831",
"specialInstructions":null
"statusCode":1,
"status":"active"
}
]
}
Javescript call like this:
var _httpClient = new HttpClient();
var consignmentId='xxxx',
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'PUT', headers,model);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"code":"200",
"message":"Retrun job status has been updated!!"
}
HTTP Request
Request Json Parameters
For more detail about request json parameters please Click Here.
Product
Create
This endpoint create the item or product detail for the organisation.
Request JSON structured like this:
{
"customerId" : "44d4f5ba-9d7c-4c6c-84a4-fa916c8f1695",
"code" : "JD3202V/X9105",
"name" : "CL400R-2-2G BLACK",
"length" : 160,
"width" : 68,
"height" : 72,
"weight" : 50,
"isGstApplicable" : false,
"isDangerousGood" : false,
"naseUom" : CM,
"countryOfMade" : CN,
"innerPack" : 1,
"outerPack" : 2,
"cartonPerLayer" : 3,
"description" : null,
"isActive" : true,
"isSelfPackaged" : false,
"articleTypeId" : "bc3644f6-0c06-440f-98f6-e06a11894462"
}
Javescript call like this:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Product);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"code":"200",
"message":"Product has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
customerId |
If the product is associated with customer,click here for more detail. | string | Optional | 40 |
code |
A identifier id for the product. | string | Mandatory | 40 |
name |
Name of the product. | string | Mandatory | 40 |
length |
Length of the product. | decimal | Mandatory | 40 |
width |
Width of the product. | decimal | Mandatory | 40 |
height |
Height of the product. | decimal | Mandatory | 40 |
weight |
Weight of the product. | decimal | Mandatory | 40 |
isGstApplicable |
Value must be true if GST applicable. | boolean | Mandatory | 40 |
isDangerousGood |
Value must be true if the product related to dangerous good. | boolean | Mandatory | 40 |
baseUom |
Unit of measurement, value must be like CM, M. | string | Mandatory | 40 |
countryOfMade |
The country code where the product has been made. | string | Mandatory | 40 |
innerPack |
integer | Optional | 40 | |
outerPack |
integer | Optional | 40 | |
cartonPerLayer |
integer | Optional | 40 | |
description |
Details of product. | string | Optional | 40 |
isActive |
Status of the product. | boolean | Mandatory | 40 |
isSelfPackaged |
boolean | Optional | 40 | |
articleTypeId |
Fright type of the product, click here for more detail. | string | Mandatory | 40 |
Get
This api is used to get the detail of a product.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxxx",
"customerId" : "44d4f5ba-9d7c-4c6c-84a4-fa916c8f1695",
"code" : "JD3202V/X9105",
"name" : "CL400R-2-2G BLACK",
"length" : 160,
"width" : 68,
"height" : 72,
"weight" : 50,
"isGstApplicable" : false,
"isDangerousGood" : false,
"naseUom" : CM,
"countryOfMade" : CN,
"innerPack" : 1,
"outerPack" : 2,
"cartonPerLayer" : 3,
"description" : null,
"isActive" : true,
"isSelfPackaged" : false,
"articleTypeId" : "bc3644f6-0c06-440f-98f6-e06a11894462"
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here.
Update
This endpoint update the detail of a product.
Json request be like:
{
"id":"xxxxxx",
"customerId" : "44d4f5ba-9d7c-4c6c-84a4-fa916c8f1695",
"code" : "JD3202V/X9105",
"name" : "CL400R-2-2G BLACK",
"length" : 160,
"width" : 68,
"height" : 72,
"weight" : 50,
"isGstApplicable" : false,
"isDangerousGood" : false,
"naseUom" : CM,
"countryOfMade" : CN,
"innerPack" : 1,
"outerPack" : 2,
"cartonPerLayer" : 3,
"description" : null,
"isActive" : true,
"isSelfPackaged" : false,
"articleTypeId" : "bc3644f6-0c06-440f-98f6-e06a11894462"
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(product);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Product detail has been updated!!"
}
HTTP Request
Request Josn Parameters
To know more about response parameter please Click here .
Delete
This endpoint delete the detail of a product.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Product detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the product type. | string | Mandatory | 40 |
RateCard
Create
A rate card is a document containing prices and descriptions for the various ad placement options available from a service sector such as a shipment. This endpoint create the detail of rate card for a orgisation.Its can be customer base or can be a ratecard for all customer of the organisation.
Request JSON structured like this:
{
"type": "customerRateCard",
"title": "customer 2",
"startDate": "2020-11-02",
"sndDate": "2021-10-13",
"zoneGroupId": "b392a098-6183-412f-ae30-13d1c6dc50cv"
}
Javescript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(RateCard);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status" : "200",
"message" : "Rate Card has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
type |
The type of the rate card,either its for customer base or driverbase or for whole organisation. | string | Optional | 40 |
title |
Title for the ratecard type. | string | Optional | 40 |
startDate |
Starting date of the ratecard. | Date | Mandatory | 10 |
endDate |
Expiry date of the ratecard. | Date | Mandatory | 10 |
zoneGroupId |
Every rate card must have its zonegroup. | string | Mandatory | 40 |
Get
This endpoints get a detail of ratecard related to the organisation.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxxxxx",
"type": "customerRateCard",
"title": "customer 2",
"startDate": "2020-11-02",
"sndDate": "2021-10-13",
"zoneGroupId": "b392a098-6183-412f-ae30-13d1c6dc50cv"
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here for more detail.
Update
This endpoint update the detail of a ratecard.
Json request be like:
{
"id":"xxxxxxxx",
"type": "customerRateCard",
"title": "customer 2",
"startDate": "2020-11-02",
"sndDate": "2021-10-13",
"zoneGroupId": "b392a098-6183-412f-ae30-13d1c6dc50cv"
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(ratecard);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Rate card detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please Click here.
Delete
This endpoint delete the detail of a ratecard.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Rate card detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the ratecard. | string | Mandatory | 40 |
Create RateCard Line
This endpoint create the detail of the break down of rate card for a organisation with related service,rate applied zone and charges
Request JSON structured like this:
{
"rateCardId" : "6cffecc2-02a1-4971-a519-07930dbffc75",
"serviceId" : "8c255022-b830-4f79-a03a-4adae300dec7",
"fromZoneId" : "dd12d86f-1801-4fde-9890-ba150ce50528",
"toZoneId" : "ad11bb21-2efd-4ef1-b15c-13bdb6a58a89",
"fuelSurcharge" : null,
"computeType" : null,
"minCharge" : "218.6300",
"maxCharge" : null,
"pickupSurcharge" : null,
"deliverySurcharge" : null,
"slabOrVolume" : null,
"articleTypeId" : "c4f41dbd-8dc5-41a4-b58e-69bcb4e93555",
"riskLevy" : null
}
Javescript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(RateCardLine);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status" : "200",
"message" : "Rate Card line has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
rateCardId |
The related rate card for the line. click here for more detail. | string | Mandatory | 40 |
serviceId |
Service id for the rate charge line click here for more detail. | string | Mandatory | 40 |
fromZoneId |
From zone id for the rate charge line click here for more detail . | string | Mandatory | 40 |
toZoneId |
To zone id for the rate charge line click here for more detail | string | Mandatory | 40 |
fuelSurcharge |
Afuel surcharge or fuel levy 'is a fee used to accommodate fuel cost fluctuations in freight rates. | decimal | Optional | 40 |
computeType |
Rate calculation base. | string | Optional | 40 |
minCharge |
Minimum charge for per shimment. | decimal | Mandatory | 40 |
maxCharge |
Maximum charge for per shimment. | decimal | Optional | 40 |
pickupSurcharge |
Pick up fee, this fee covers haulage from the exporter's premises to the depot/warehouse. | decimal | Optional | 40 |
deliverySurcharge |
Fee for delivery of the shipment. | decimal | Optional | 40 |
slabOrVolume |
Rate calculation base on, value must be either slab or volume. | string | Optional | 40 |
articleTypeId |
Fright Type id for the shipment charge. click here for more detail. | string | Optional | 40 |
riskLevy |
Risk amount charge for the shipment. | decimal | Optional | 40 |
Get RateCard Line
This endpoints get a detail of ratecard charge related to the organisation on the basis of zones, service and article type.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxxxxxx",
"rateCardId" : "6cffecc2-02a1-4971-a519-07930dbffc75",
"serviceId" : "8c255022-b830-4f79-a03a-4adae300dec7",
"fromZoneId" : "dd12d86f-1801-4fde-9890-ba150ce50528",
"toZoneId" : "ad11bb21-2efd-4ef1-b15c-13bdb6a58a89",
"fuelSurcharge" : null,
"computeType" : null,
"minCharge" : "218.6300",
"maxCharge" : null,
"pickupSurcharge" : null,
"deliverySurcharge" : null,
"slabOrVolume" : null,
"articleTypeId" : "c4f41dbd-8dc5-41a4-b58e-69bcb4e93555",
"riskLevy" : null
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here for more detail.
Update Rate Card Line
This endpoint update the detail of a rate card line detail.
Json request be like:
{
"id":"xxxxxxxxx",
"rateCardId" : "6cffecc2-02a1-4971-a519-07930dbffc75",
"serviceId" : "8c255022-b830-4f79-a03a-4adae300dec7",
"fromZoneId" : "dd12d86f-1801-4fde-9890-ba150ce50528",
"toZoneId" : "ad11bb21-2efd-4ef1-b15c-13bdb6a58a89",
"fuelSurcharge" : null,
"computeType" : null,
"minCharge" : "218.6300",
"maxCharge" : null,
"pickupSurcharge" : null,
"deliverySurcharge" : null,
"slabOrVolume" : null,
"articleTypeId" : "c4f41dbd-8dc5-41a4-b58e-69bcb4e93555",
"riskLevy" : null
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(ratecardline);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Rate card line detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please Click here.
Delete Rate Card Line
This endpoint delete the detail of a rate card line.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Ratecard line detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the ratecard line. | string | Mandatory | 40 |
Create RateCard Line Charge
This endpoint create the detail of the break down of rate card for a organisation with the limit of shipments.
Request JSON structured like this:
{
"rateCardId" : "d963b24a-6d13-4f36-ada8-d0887289b29e",
"rateCardLineId" : "8031caa6-7ce7-4294-ab71-5902fe189de7",
"fromLimit" : 1.0,
"toLimit" : 5.0,
"charge" : 0.99,
"baseCharge" : null
}
Javescript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(RateCardLineCharge);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status" : "200",
"message" : "Rate Card line has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
rateCardId |
The related rate card for the line. click here for more detail. | string | Mandatory | 40 |
rateCardLineId |
Related line id for the charge break down.click here for more detail. | string | Mandatory | 40 |
fromLimit |
Starting limit of item for shipment. | decimal | Mandatory | 40 |
toLimit |
Maximum limit of item for shipment. | decimal | Mandatory | 40 |
charge |
Fee for the limits items. | decimal | Mandatory | 40 |
baseCharge |
Minimum charge. | decimal | Mandatory | 40 |
Get RateCard Line Charge
This endpoints get a detail of ratecard breakdown related to the organisation.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxx",
"rateCardId" : "d963b24a-6d13-4f36-ada8-d0887289b29e",
"rateCardLineId" : "8031caa6-7ce7-4294-ab71-5902fe189de7",
"fromLimit" : 1.0,
"toLimit" : 5.0,
"charge" : 0.99,
"baseCharge" : null
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here for more detail.
Update Rate Card Line Charge
This endpoint update the detail of a rate card line charge detail.
Json request be like:
{
"id":"xxxxx",
"rateCardId" : "d963b24a-6d13-4f36-ada8-d0887289b29e",
"rateCardLineId" : "8031caa6-7ce7-4294-ab71-5902fe189de7",
"fromLimit" : 1.0,
"toLimit" : 5.0,
"charge" : 0.99,
"baseCharge" : null
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(ratecardlinecharge);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Rate card line charge detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please Click here.
Delete Rate Card Line Charge
This endpoint delete the detail of a rate card line charge.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Ratecard line charge detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the ratecard line charge. | string | Mandatory | 40 |
Runsheet
A run sheet is a list of jobs that are going on one driver for that day, and typically they're broken into different areas(zones).
A good run sheet lists the sequence of steps for running an event from start to finish, set out by time, date, location and responsibility. And a great run sheet also keeps contacts and schedules in one central place, and minimises the risk of things being missed along the way.
We can generate runsheet by using create api or runsheet template.
Create Runsheet Template
This endpoint create a runsheet template for a organisation.Runsheet template is used for below two reasons:
1. To create recurring runsheets (blank runsheets created each day).
2. To define rules that determine which Consignment Legs get allocated to to which Runsheets.
Request JSON structured like this:
{
"driverId":"e44c17d5-ad78-412e-86d6-1014b6ddb4e2",
"vehicleId":null,
"reference":"FORALL",
"fromDepot":"Depot 1",
"toDepot":"Depot 1",
"description":"sample run",
"availableDays":7,
"capacityPallets":3,
"capacityWeight":2000,
"allocationRuleStatus":null,
"allocationCustomerIds":null,
"allocationFromLocationIds":null,
"allocationToLocationIds":null,
"allocationServiceIds":null,
"allocationArticleTypeIds":null,
"allocationStartTime":null,
"allocationEndTime":null,
"allocationFromDepotIds":null,
"allocationToDepotIds":null,
"allocationStatusIds":null
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Runsheettamplate);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL, 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Runsheet template has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
driverId |
Unique id of drive.Click here for more detail. | string | Mandatory | 40 |
vehicleId |
Unique id of vehicle.Click here for more detail. | string | Optional | 40 |
reference |
Reference for the template | string | Optional | 40 |
fromDepot |
Name of from depot. | string | Mandatory | 40 |
toDepot |
Name of to depot | string | Mandatory | 40 |
description |
Description of the template. | string | Optional | 40 |
availableDays |
Days of week when template is avaliabel. | integer | Mandatory | 40 |
capacityPallets |
Maximum pallets capacity. | integer | Optional | 40 |
capacityWeight |
Maximum weight for the runsheet. | decimal | Optional | 40 |
allocationRuleStatus |
string | Optional | 40 | |
allocationCustomerIds |
Customers ids who use the template for runsheet.Click here for more detail. | array of string | Optional | 40 |
allocationFromLocationIds |
From business Location(depot) ids for the template for runsheet.Click here for more detail. | array of string | Optional | 40 |
allocationToLocationIds |
To business Location(depot) ids for the template for runsheet.Click here for more detail. | array of string | Optional | 40 |
allocationServiceIds |
Services ids for the template for runsheet.Click here for more detail. | array of string | Optional | 40 |
allocationArticleTypeIds |
Article type ids for the template for runsheet.Click here for more detail. | array of string | Optional | 40 |
allocationStartTime |
Template allocation start time for the runsheet. | datetime | Optional | 40 |
allocationEndTime |
Template allocation end time for the runsheet. | datetime | Optional | 40 |
allocationFromDepotIds |
array of string | Optional | 40 | |
allocationToDepotIds |
array of string | Optional | 40 | |
allocationStatusIds |
array of integer | Optional | 40 |
Update Runsheet Templete
This endpoint update a runsheet templete for a organisation.
Request JSON structured like this:
{
"id":"xxxxx",
"driverId":"e44c17d5-ad78-412e-86d6-1014b6ddb4e2",
"vehicleId":null,
"reference":"FORALL",
"fromDepot":"Depot 1",
"toDepot":"Depot 1",
"description":"sample run",
"availableDays":7,
"capacityPallets":3,
"capacityWeight":2000,
"allocationRuleStatus":null,
"allocationCustomerIds":null,
"allocationFromLocationIds":null,
"allocationToLocationIds":null,
"allocationServiceIds":null,
"allocationArticleTypeIds":null,
"allocationStartTime":null,
"allocationEndTime":null,
"allocationFromDepotIds":null,
"allocationToDepotIds":null,
"allocationStatusIds":null
}
Javascript request be like:
var _httpClient = new HttpClient();
var id='xxxxx';
var model = JSON.  stringify(Runsheettamplate);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + 'id' , 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Runsheet template has been updated!!"
}
HTTP Request
Response URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the runsheet. | string | Mandatory | 40 |
Create
This endpoint create the detail of runsheet.
Request JSON structured like this:
{
"driverId " : "a85a6190-3476-4f6e-898f-9bd532f0ae44" ,
"vehicleId " : "4887dd1e-29a0-4e8d-93fc-09fc6be4aaad" ,
"runsheetTempleteId " : null ,
"reference " : null,
"fromDepot " : "testDepot" ,
"toDepot " : "totestDepot" ,
"description " : "Auto-generated runsheet" ,
"startDate " : "2021-05-06" ,
"endDate " : "2021-09-02" ,
"startKm " : 10 ,
"isLocked " : false ,
"sequence " : 1 ,
"note " : null ,
"status " : 1,
"departTime " : "14:00" ,
"departDate " : "2021-02-23" ,
"hourCharge " : null ,
"manualChargePerConsignment " : null ,
"manualChargeType " : null ,
"isComplete " : false ,
"runsheetTemplateId":null,
"isRecurring":true,
"scheduleJob":
[
{
"name " :"RunSheet Generator",
"minutesInterval " :"1440",
"lastRuntime " :"2021-06-29 12:00:48.435518",
"nextRuntime " :"2021-06-30 12:00:00",
"lastResult " :null,
"jobServiceRunnerClassName " :"BusinessTeir.Batch.RunSheetGeneratorJobRunner",
"schedulerName " :"neotms",
"isActive " :true,
"parameters " :"{"organisationId":"57461e6b-177d-46d0-bfbf-0faf5d76681b"}"
}
]
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Runsheet);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Runsheet has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
driverId |
Unique id for the driver. Please Click here for more detail | string | Optional | 40 |
vehicleId |
Unique id for the vehicle. Please Click here for more detail | string | Optional | 40 |
reference |
Refrence for the runsheet. | string | Optional | 40 |
fromDepot |
Depot name where it is sending from. | string | Mandatory | 40 |
toDepot |
Depot name where it is sending to. | string | Mandatory | 40 |
description |
Description of the runsheet. | string | Optional | 40 |
startDate |
Date of start for the runsheet. | datetime | Mandatory | 40 |
endDate |
Expiry date of runsheet. | datetime | Mandatory | 40 |
sequence |
Order number of runsheet. | integer | Optional | 40 |
cubic |
Total cubic on runsheet. | deciman | Optional | 40 |
note |
Extra description. | string | Optional | 40 |
status |
Current stage of runsheet, 1- on process , 2- ready for manifest, 3- completed. | integer | Optional | 40 |
departTime |
Time of depart of vehicle. | datetime | Optional | 40 |
departDate |
Date of depart of vehicle. | datetime | Mandatory | 40 |
hourCharge |
Minimum hourly charge for the vehicle. | decimal | Optional | 40 |
manualChargePerConsignment |
decimal | Optional | 40 | |
manualChargeType |
string | Optional | 40 | |
isComplete |
If runsheet is complete value must be true other wise false. | boolean | Optional | 40 |
runsheetTemplateId |
If you want to use runsheet template for runsheet creation you must provide the template id.Click here for more detail. | string | Optional | 40 |
isRecurring |
If runsheet is recurring value must be true other wise false. | boolean | Optional | 40 |
scheduleJob |
If isRecurring is true this field is mandatory | Array of object | Optional | N/A |
name |
Name for the schedular. | string | Mandatory | 40 |
minutesInterval |
Time interval of schedular run. | integer | Mandatory | 40 |
lastRuntime |
Date and time of schedular last run. | datetime | Mandatory | 40 |
nextRuntime |
Date and time of schedular next run. | datetime | optional | 40 |
lastResult |
Message of schedular last run. | string | Mandatory | 40 |
jobServiceRunnerClassName |
Related class name of schedualr. | string | Mandatory | 40 |
schedulerName |
string | optional | 40 | |
isActive |
Status of the schedular, if schedualr is in use value must be true. | boolean | Mandatory | 40 |
parameters |
Parameter names which is required for the schedualr run. | string | optional | 40 |
Update
This endpoint update the detail of a runsheet.
Request JSON structured like this:
{
"id":"xxxxx",
"driverId " : "a85a6190-3476-4f6e-898f-9bd532f0ae44" ,
"vehicleId " : "4887dd1e-29a0-4e8d-93fc-09fc6be4aaad" ,
"reference " : null,
"fromDepot " : "testDepot" ,
"toDepot " : "totestDepot" ,
"description " : "Auto-generated runsheet" ,
"startDate " : "2021-05-06" ,
"endDate " : "2021-09-02" ,
"startKm " : 10 ,
"isLocked " : false ,
"sequence " : 1 ,
"note " : null ,
"status " : 1,
"departTime " : "14:00" ,
"departDate " : "2021-02-23" ,
"hourCharge " : null ,
"manualChargePerConsignment " : null ,
"manualChargeType " : null ,
"isComplete " : false
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Runsheet);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + 'ConsignmentLeg.Id' , 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Runsheet has been updated!!"
}
HTTP Request
Request Json Parameters
For more detail about response parameter Click here.
Get
This endpoint get the detail of a runsheet.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxxx",
"driverId " : "a85a6190-3476-4f6e-898f-9bd532f0ae44" ,
"vehicleId " : "4887dd1e-29a0-4e8d-93fc-09fc6be4aaad" ,
"reference " : null,
"fromDepot " : "testDepot" ,
"toDepot " : "totestDepot" ,
"description " : "Auto-generated runsheet" ,
"startDate " : "2021-05-06" ,
"endDate " : "2021-09-02" ,
"startKm " : 10 ,
"isLocked " : false ,
"sequence " : 1 ,
"note " : null ,
"status " : 1,
"departTime " : "14:00" ,
"departDate " : "2021-02-23" ,
"hourCharge " : null ,
"manualChargePerConsignment " : null ,
"manualChargeType " : null ,
"isComplete " : false
}
HTTP Request
Response Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the runsheet. | string | Mandatory | 40 |
For more detail about response parameter Click here.
Delete
This endpoint delete the detail of a runsheet.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Runsheet deleted!!"
}
HTTP Request
Response URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the runsheet. | string | Mandatory | 40 |
Service
Create
This endpoint create the service detail for the organisation.
Request JSON structured like this:
{
"code" :"PREMIUM",
"name" :"HOSHI PREMIUM ",
"type" :"Sensitive Freight",
"description" :null,
"chargeBy" :"Item",
"availableDaysOfWeek" :null,
"maxConsignmentQuantity" :null,
"maxConsignmentPerItemWeight" :null,
"isDangerousGoodExclude" :false,
"isHideCustomer" :false,
"isActive" :true,
"maxVolumeAllow" :null,
"maxLengthAllow" :null,
"maxWidthAllow" :null,
"maxHeightAllow" :null,
"maxWeightAllow" :null,
"isAutoLegging" :false,
"isPointToPoint" :false,
"cubicConversionFactor" :null
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Service);
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'POST', headers,model);
var apicall = httpClient.send(req);
The above command returns JSON structured like this:
{
"status":"200",
"message":"Service has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
customerId |
This field is required if the service is related to particular customer, Click Here for more detail. | string | Optional | 40 |
code |
A unique indication for the service. | string | Mandatory | 40 |
name |
Name of the service. | string | Optional | 40 |
type |
Type of service,Example:General,Sensitive . | string | Optional | 40 |
description |
Informarmation about the service. | string | Optional | 40 |
chargeBy |
Field value must be like item,weight,Volume. | string | Optional | 40 |
availableDaysOfWeek |
integer | Optional | 40 | |
maxConsignmentQuantity |
Number of consignment that allow for the service. | integer | Optional | 40 |
maxConsignmentPerItemWeight |
Maximum article weight for each consignment. | integer | Optional | 40 |
isDangerousGoodExclude |
Value will be true if the service not for dangerous good. | boolean | Optional | N/A |
isHideCustomer |
Value will be true if organisation dont want to know to customer. For true value customerid field is mandatory. | boolean | Optional | N/A |
isActive |
Status of the service. | boolean | Mandatory | N/A |
maxVolumeAllow |
Maximum volume allow for the service. | decimal | Optional | 10 |
maxLengthAllow |
Maximum length allow for the service. | decimal | Optional | 10 |
maxWidthAllow |
Maximum width allow for the service. | decimal | Optional | 10 |
maxHeightAllow |
Maximum height allow for the service. | decimal | Optional | 10 |
maxWeightAllow |
Maximum weight allow for the service. | decimal | Optional | 10 |
isAutoLegging |
This field is requird if the leg rule is automatic for the service. | boolean | Optional | N/A |
isPointToPoint |
This field is requird if the service is point to point basis transfer. | boolean | Optional | N/A |
cubicConversionFactor |
conversion from m3 to kg . | Decimanl | Optional | 10 |
Get
This endpoint get the detail of a service by it's id.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxxx",
"code" :"PREMIUM",
"name" :"HOSHI PREMIUM ",
"type" :"Sensitive Freight",
"description" :null,
"chargeBy" :"Item",
"availableDaysOfWeek" :null,
"maxConsignmentQuantity" :null,
"maxConsignmentPerItemWeight" :null,
"isDangerousGoodExclude" :false,
"isHideCustomer" :false,
"isActive" :true,
"maxVolumeAllow" :null,
"maxLengthAllow" :null,
"maxWidthAllow" :null,
"maxHeightAllow" :null,
"maxWeightAllow" :null,
"isAutoLegging" :false,
"isPointToPoint" :false,
"cubicConversionFactor" :null
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here.
Update
This endpoint update the detail of a service.
Json request be like:
{
"id":"xxxxxx",
"code" :"PREMIUM",
"name" :"HOSHI PREMIUM ",
"type" :"Sensitive Freight",
"description" :null,
"chargeBy" :"Item",
"availableDaysOfWeek" :null,
"maxConsignmentQuantity" :null,
"maxConsignmentPerItemWeight" :null,
"isDangerousGoodExclude" :false,
"isHideCustomer" :false,
"isActive" :true,
"maxVolumeAllow" :null,
"maxLengthAllow" :null,
"maxWidthAllow" :null,
"maxHeightAllow" :null,
"maxWeightAllow" :null,
"isAutoLegging" :false,
"isPointToPoint" :false,
"cubicConversionFactor" :null
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(service);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Service detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please Click Here.
Delete
This endpoint delete the detail of a service.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Service detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the service. | string | Mandatory | 40 |
Zone
Zone is a geographical region to which carriers deliver. It's defined by a grouping of post codes and measured from where the package is shipped from (also called the point of origin) to its destination.
Create
This endpoint create zone detail for the organisation.
Request JSON structured like this:
{
"code" : "ADLDPT",
"description" : "(DEPOT ADELAIDE)",
"type" : 4,
"countryCode" : "AU",
"depotId " : "23be8194-5887-498d-accb-3b42137c6ae5"
}
Javescript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(Zone);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status" : "200",
"message" : "Zone has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
code |
Zone identifier id. | string | Mandatory | 20 |
description |
Detail of Zone. | string | Mandatory | 40 |
type |
If the zone is base on state value must be 1 ,if based on suburb then 2 | Interger | Mandatory | 40 |
countryCode |
2 letter code of country, like : 'AU', 'UK'. | string | Mandatory | 2 |
depotId |
This field is required if zone is associate with any depot of organisation. | string | Optional | 40 |
Get
This endpoints get the detail of a zone.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"XXXXXXX",
"code" : "ADLDPT",
"description" : "(DEPOT ADELAIDE)",
"type" : 4,
"countryCode" : "AU",
"depotId " : "23be8194-5887-498d-accb-3b42137c6ae5"
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here for more detail.
Update
This endpoint update the detail of a zone.
Json request be like:
"id":"XXXXXXX",
"code" : "ADLDPT",
"description" : "(DEPOT ADELAIDE)",
"type" : 4,
"countryCode" : "AU",
"depotId " : "23be8194-5887-498d-accb-3b42137c6ae5"
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(zone);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Zone detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please Click here.
Delete
This endpoint delete the detail of a zone.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"zone detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the zone. | string | Mandatory | 40 |
Create Zone Line
This endpoint create the detail of suburb area related to the zone.
Request JSON structured like this:
{
"zoneId" : "02358aa2-5cc6-4a51-8f6c-ed74c07e6d68",
"suburb" : "BALLARAT",
"state" : "VIC",
"postcode" : "3350",
"countryCode" : "AU"
}
Javescript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(ZoneLine);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL , 'POST', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status" : "200",
"message" : "Zone line has been created!!"
}
HTTP Request
Request Json Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
zoneId |
A unique id for the organisation zone. click here for more detail. | string | Mandatory | 40 |
suburb |
The valid suburb name related to the zone. | string | Mandatory | 40 |
state |
The valid state of suburb. | string | Mandatory | 3 |
postcode |
Postcode of the suburb location. | string | Mandatory | 6 |
countryCode |
Country code of the address combination of suburb + postcode + state. | string | Mandatory | 2 |
Get Zone Line
This endpoints get a detail of suburb related to the zone.
Javescript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'GET', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"id":"xxxxxx",
"zoneId" : "02358aa2-5cc6-4a51-8f6c-ed74c07e6d68",
"suburb" : "BALLARAT",
"state" : "VIC",
"postcode" : "3350",
"countryCode" : "AU"
}
HTTP Request
Response Json Parameters
To know more about response parameter please Click Here for more detail.
Update Zone Line
This endpoint update the detail of a zone line.
Json request be like:
{
"id":"xxxxxx",
"zoneId" : "02358aa2-5cc6-4a51-8f6c-ed74c07e6d68",
"suburb" : "BALLARAT",
"state" : "VIC",
"postcode" : "3350",
"countryCode" : "AU"
}
Javascript request be like:
var _httpClient = new HttpClient();
var model = JSON.  stringify(zoneline);
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + '/' + id, 'PUT', headers,model);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Zone line detail has been updated!!"
}
HTTP Request
Request Json Parameters
To know more about response parameter please Click here.
Delete Zone Line
This endpoint delete the detail of zone line.
Javascript request be like:
var _httpClient = new HttpClient();
var id = 'xxxxx';
var headers = {
'Content-Type' : 'application/json',
'Authorization' : 'Token XXX'
};
var req = new Request(URL + "/" + id , 'DELETE', headers);
var apicall = _httpClient.send(req);
The above command returns JSON structured like this:
{
"status":200,
"message":"Zone line detail has been deleted!!"
}
HTTP Request
Request URL Parameters
| Parameter | Description | Type | Optional / Mandatory | Length |
|---|---|---|---|---|
id |
unique id of the zone line. | string | Mandatory | 40 |