Integrations Spec
The purpose of this document is to outline the guidelines and specifications required to integrate external systems with Cubiic.
Cubiic's integration capabilities can broadly be classified into the following functions:
There are two methods presented in this spec with which a client can integrate with Cubiic, a REST based web API service, and a CSV file upload service. Generally the API service is recommended as it affords better error handling capabilities, however file upload integration is also available to accomodate compatability with existing or legacy systems.
The Cubiic API web service is a RESTful suite of web services that allows an authenticated Cubiic client to consume and interact with various Cubiic features and functionality programatically. The Cubiic Web Services are typically used for bespoke integrations and interactions via first and thrid party customer software and services.
The Cubiic API web service is a REST based web service with a variety of endpoints that accept serialised JSON request objects. The service is compatible with and intended to be used by REST based clients over HTTPS.
Request payload structure is presented in JSON format, the user is expected to understand JSON syntax - including the format of any required array parameters, quoting and escaping on string values, and omitting quotes on number values.
Cubiic has two environments available for consumption of the APIs outlined in this document.
Cubiic Demo environment - This is a sandboxed environment that always contains an identical feature set to the Cubiic Production environment. The Demo environment is a non-live environment that should be utilised for initial integration development and testing before using the Cubiic Production environment.
The Cubiic Demo environment base URI is https://demo.api.cubiic.com.au/
Cubiic Production environment - This is Cubiic's live environment where any API interactions will result in stateful real world changes.
The Cubiic Production environment base URI is https://prod.api.cubiic.com.au/
The service is secured via 0Auth 2.0 authentication using JSON Web Tokens (JWT). A connecting client must authenticate with a valid and active Cubiic login/password combination and WMS Code to request an access token, which is then used to authenticate with Cubiic web services.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
String | Y | Cubiic email address registerd to the authenticating user | ||
password | String | Y | Cubiic password registerd to the authenticating user | |
wmsCode | String | Y | Cubiic Tenant ID (historically known as Warehouse Management Service Code) |
POST /TokenByWmsCode
{
"email": string,
"password": string,
"wmsCode": string
}
{
"access_token": string
}
{
"access_token" : "Bearer E/04rkIMJYuBZYi5hLmVqDYqo9Ew+epZ0lkVE3ylAhGoOzKgm1P8Oh258gwu396VgJ8ftIR1XYvhJYM2T7s0Fe2qAEq2ZE95qSgU7aQLu32BmYGZzOLTQAi/Vbma+PMFf6pyXYf8dWYYEJoNAt6M4tua8/1qUzilza3FyfcjLpY5FMVt8kTXBsl3K8LfPlO12YuloAoZqiXv6PY9KGSrCeOqNoHqW5vOZ29S0tLkYvYkMnHnToh/HocexLse3iuMCxy9ZIr+Igs="
}
The token may then be used in the "Authorization" header on subsequent requests to authenticate against all Cubiic API endpoints.
Authorization: Bearer E/04rkIMJYuBZYi5hLmVqDYqo9Ew+epZ0lkVE3ylAhGoOzKgm1P8Oh258gwu396VgJ8ftIR1XYvhJYM2T7s0Fe2qAEq2ZE95qSgU7aQLu32BmYGZzOLTQAi/Vbma+PMFf6pyXYf8dWYYEJoNAt6M4tua8/1qUzilza3FyfcjLpY5FMVt8kTXBsl3K8LfPlO12YuloAoZqiXv6PY9KGSrCeOqNoHqW5vOZ29S0tLkYvYkMnHnToh/HocexLse3iuMCxy9ZIr+Igs=t
This API accepts a single consignment object and returns either a success message or list of errors.
POST /Consignment/CreateConsignment
{
"readyDateTime": string,
"customerCode": string,
"warehouseCode": string,
"senderReferences": [
string
],
"receiverReferences": [
string
],
"senderAddress": {
"CompanyName": string,
"Address1": string,
"Address2": string,
"Suburb": string,
"State": string,
"PostCode": string,
"Country": string,
"Contact": string,
"Phone": string,
"Email": string
},
"receiverAddress": {
"CompanyName": string,
"Address1": string,
"Address2": string,
"Suburb": string,
"State": string,
"PostCode": string,
"Country": string,
"Contact": string,
"Phone": string,
"Email": string
},
"emailTracking": [
string
],
"connoteGoods": [
{
"ItemReference": string,
"Qty": int,
"Weight": float,
"Length": float,
"Width": float,
"Height": float,
"UnitOfMeasureName": string
}
],
"specialInstructions": string,
"additionalCharges": [
string
]
"serviceCode": string,
"labelPrinter": string,
"accountNo": string",
"addToAddressBook": boolean,
"saveAsDraft": boolean,
"reassignedFrom": string,
"reason": string,
"autoManifest": boolean,
"autoManifestDateTime": string,
"costCentre": string,
"orderNo": string,
"vehicleType": string,
"originator": string,
"preferredJourney": boolean
}
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
readyDateTime | String | ISO date time format | eg. 2021-02-02T04:28:43.740Z | |
customerCode | String | Y | Cubiic Tenant ID (Same as WMS Code) | |
warehouseCode | String | "3PT" for Third Party | Y | Cubiic Warehouse / Location ID |
senderReferences | Array of Strings | Array of Sender References | ||
receiverReferences | Array of Strings | Array of Receiver References | ||
senderAddress | Address | If "3PT" | Sender Address (sender address is only required if the sending location has been specified as 3rd party in "warehouseCode") | |
receiverAddress | Address | Y | Receiver Address | |
emailTracking | Array of Strings | Array of email addresses to receive tracking notifications | ||
connoteGoods | Array of Goods | Y | Refer to Connote Goods object params (includes Dangerous Goods) | |
specialInstructions | String | Special instructions for delivery | ||
additionalServices | Array of Objects | Additional services required for delivery (refer to Additional Services object params) | ||
carrierCode | String | Internal carrier code for nominated carrier * | ||
serviceCode | String | Internal service code for nominated service * | ||
labelPrinter | String | Name of label printer to use for automated printing if applicable | ||
accountNo | String | Carrier account number to charge this consignment to (limited to a subset of carriers) | ||
saveAsDraft | Boolean | Force the consignment to be saved as a draft (Incomplete status) | ||
hirePallets | Object | Refer to Hire Pallets object params | ||
schedDelStartDateTime | String | ISO date time format | Scheduled/Timeslot Delivery requested start dateTime (Only supported by select carriers) | |
schedDelEndDateTime | String | ISO date time format | Scheduled/Timeslot Delivery requested end dateTime (Only supported by select carriers) | |
reassignedFrom | String | Required for reassignment | ConsignmentNo of existing consignment this one will be replacing (refert to Reassignment Options section) | |
reason | String | Reason for reassigning this consignment to another carrier | ||
autoManifest | Boolean | Automatically manifest this consignment | ||
autoManifestDateTime | String | Defaults to readyDateTime | DateTime for this consignment to be auto-manifested | |
costCentre | String | Convenience attribute to specify a cost centre for you own records | ||
orderNo | String | Convenience attribute to specify an order number for you own records | ||
vehicleType | String | Vehicle Types List | Specify a preferred vehicle type to carry the goods (refer to Vehicle Preference Options section) | |
preferredJourney | Boolean | Force consignment to be allocated to the sending location's preferred carrier and service (if available) | ||
addToAddressBook | Boolean | Add or update the Cubiic Address Book with the receiver details specified in the receiverAddress | ||
originator | String | Specify which integrated system is creating this consignment (refer to Originating System Options section) |
* The applicable carrier and service codes will be provided on request. The list of supported carriers is constantly changing and carriers can add/change their services at any time so providing a static list is infeasible.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
CompanyName | String | Y | Receiver Name | |
Address1 | String | Y | Address Line 1 | |
Address2 | String | Address Line 2 | ||
Suburb | String | Y | Suburb | |
State | String | Y | State (2 or 3 letter abbrev.) | |
Country | String | Defaults to Australia | ||
PostCode | String | Y | 4 digit postcode | |
Contact | String | Receiver contact name | ||
Phone | String | Receiver contact phone | ||
String | Receiver contact email |
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
ItemReference | String | Item reference or description (If this matches an item in the product list, Cubiic will auto-populate dimensions.) | ||
Qty | Integer | How many of this line item | ||
Weight | Integer | Line item weight (kg) | ||
Length | Integer | Line item length (cm) | ||
Width | Integer | Line item width (cm) | ||
Height | Integer | Line item height (cm) | ||
UnitOfMeasureName | String | Cubiic Unit of Measure ("SATCHEL", "CARTON", "PALLET", "SKID", etc.) | ||
dangerousGoods | Object | Refer to Dangerous Goods object parameters below |
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
shippingName | String | Y | Descriptive name of the dangerous goods eg. "Batteries", "Hair Spray" etc. | |
className | Integer | 1 - 9 | Y | Dangerous goods class |
unn | String | see link | Y | United Nations Number |
packageType | String | see link | Y | Package type used to contain the dangerous goods |
packingGroup | String | I, II, III | Y | Severity of the danger associated with the dangerous goods to be consigned (I - III) |
noPkgs | Integer | Y | Number of Dangerous Goods packages included in the consignment | |
aggregateQty | Integer | Y | Number of Dangerous items within each package | |
contactName | String | Y | Name of contact person responsible for the dangerous goods | |
contactPhone | String | Y | Phone number of person responsible for the dangerous goods |
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
chepDocket | Integer | Y If Chep | Chep docket number | |
chepPalletsExch | Integer | Number of Chep pallets exchanged | ||
chepPalletsTxCarrier | Integer | Number of Chep pallets transferred to the carrier | ||
chepPalletsTxRcvr | Integer | Number of Chep pallets transferred to the receiver | ||
loscDocket | Integer | Y If Losc | Loscam docket number | |
loscPalletsExch | Integer | Number of Loscam pallets exchanged | ||
loscPalletsTxCarrier | Integer | Number of Loscam pallets transferred to the carrier | ||
loscPalletsTxRcvr | Integer | Number of Loscam pallets transferred to the receiver |
The following additional services / delivery requirements may be specified in either a Create Consignment or Get Estimates request.
"additionalServices": [
{
"serviceCode": "string",
"additionalFields": [
{
"name": "string",
"value": "string/int/boolean"
}
]
}
]
Additional Services object parameters
Name | Service Code | Type | Constraints | Additional Fields | Description |
---|---|---|---|---|---|
Two Person Delivery | AL | String | Two people required to unload goods | ||
Authority to leave goods | ATL | String | Authority to leave goods in receiver's absence | ||
Hire Pallets | HP | String | Hire pallets included with delivery | ||
Hand Unload | HU | String | Driver to unload goods by hand | ||
ID Check | ID | String | Require receiver to prove identity | ||
Outside Business Hours | OH | String | Request delivery after 5pm | ||
Oversize Item | OI | String | Goods item is over standard general size | ||
Over Length | OL | String | Goods item is over standard length | ||
Over Weight | OW | String | Goods item is over standard weight | ||
Proof Of Age | PA | String | Require receiver to prove age | ||
PO Box Delivery | PB | String | Delivery location is a Post Office Box | ||
Remote Area | RA | String | Delivery location is in a remote area | ||
Receiver Pays | RC | String | Receiver to pay for delivery costs | ||
Restricted Goods | RE | String | Goods contain alcahol, tobacco or adult products | ||
Refrigerated Goods | RF | String | Service vehicle provides temperature control | ||
Regional Surcharge | RG | String | Delivery location is outside metro region | ||
Residential | RS | String | Delivery location is a residential address | ||
Return Consignment | RT | String | Returned goods | ||
Upstairs Delivery | RU | String | Upstairs Delivery | ||
Saturday Delivery | SA | String | Request delivery on a Saturday | ||
Signature Required | SG | String | A signature must be obtained on delivery | ||
Time Slot Delivery | ST | String | Request delivery at a specific time | ||
Sunday Delivery | SU | String | Request a delivery on a Sunday | ||
Tailgate Required | TG | String | Service vehicle provides a tailgate | ||
Waste Removal | WR | String | Service vehicle suitable for waste | ||
Over Width | WS | String | Goods item is over standard width |
Certain carriers and couriers allow specifying a preferred vehicle type for delivery. This can be convenient for small deliveries (such as requesting a bike for short inner city movements) or ensuring a large capacity vehicle is used for bulk freight movements. If not specified, the Vehicle Type will default to the standard vehicle type used with the corresponding carrier service.
Value | Type | Constraints | Required | Description |
---|---|---|---|---|
any | String | Default | Carrier default vehicle | |
car | String | Sedan or similar | ||
bike | String | Bicylcle or motorbike | ||
van | String | Van | ||
semi | String | Semi trailer | ||
tautliner | String | Curtain sided truck/trailer |
Cubiic provides the ability to automatically manifest consignments if the "autoManifest" attribute is set to "true".
Cubiic provides the ability to reassign consignments and courier jobs between carriers.
Reassigning a consignment or courier job requires the following attributes to be utilised in a Create Consignment request:
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
reassignFrom | String | Y | ConsignmentNo of an existing undispatched consignment that this one will be replacing | |
reason | String | Reason for reassigning this consignment to another carrier |
When a consignment has been sucessfully reassigned, the following attributes will be available on the original consignment object that was reassigned:
"reassignedTo": string,
"reassignedToCarrier": string,
"reassignedToService": string,
"reassignedReason": string
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
reassignedTo | String | ConsignmentNo of the new consignment that has replaced this consignment | ||
reassignedToCarrier | String | Name of the carrier the new consignment is assigned to | ||
reassignedToService | String | Name of the service the new consignment is assigned to | ||
reassignedReason | String | Reason this consignment was reassigned |
The new consignment (replacing the old one) will contain the following attributes:
"reassignedFrom": string,
"reassignedFromCarrier": string,
"reassignedFromService": string,
"reassignedReason": string
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
reassignedFrom | String | ConsignmentNo of the original consignment that this one has replaced | ||
reassignedFromCarrier | String | Name of the carrier the old consignment was assigned to | ||
reassignedFromService | String | Name of the service the old consignment was assigned to | ||
reassignedReason | String | Reason this consignment was reassigned |
Cubiic provides some out of the box functionality for common integrated system workflows (at this time eCommerce platforms) based on the "originator" attribute present on a Consignment object. This attribute may also be utilised for convenience in combination with Cubiic webhooks to track and trigger custom workflows via your own integrated systems.
The following values may be set on the "originator" attribute to activate supplemental workflows via supported integrated systems:
Value | Type | Constraints | Required | Description |
---|---|---|---|---|
cubiic | String | Default | No additional workflows triggered | |
shopify | String | Will call a Shopify fulfilment web service upon consignment dispatch or courier collection | ||
woocommerce | String | Will call a WooCommerce fulfilment web service upon consignment dispatch or courier collection | ||
magento | String | Will call a Magento fulfilment web service upon consignment dispatch or courier collection | ||
[custom string] | String | Convenince attribute to identify your own orginating system (commonly utilised with webhooks) |
{
"consignmentNo": string,
"manifestNo": string,
"status": string,
"TrackingUrl": string,
"carrierName": string,
"serviceName": string,
"ETA": string,
"reassignedFrom": string
}
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
consignmentNo | String | Y | Consignment number of the created consignment | |
manifestNo | String | Manifest number if created in a ready state | ||
Status | String | Incomplete, Ready, or Booked | Y | Status of created consignment |
TrackingUrl | String | URL string | Y | URL directing to Cubiic track and trace page |
carrierName | String | Y | Carrier Name | |
serviceName | String | Y | Carrier Service Name | |
ETA | String | ISO date time format | Y | Estimated Delivery Date and Time |
reassignedFrom | String | ConsignmentNo of the original consignment that this one has replaced |
{
"errors": {
"ReceiverAddress.State": [
"The State field is required."
]
},
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-3917ede038dca84a988e14a9ed613671-b13171b872ea184f-00"
}
{
"CustomerCode": "TMS3PL",
"WarehouseCode": "N04",
"SenderReferences":[
string
],
"ReceiverReferences":[
string
],
"ReceiverAddress": {
"CompanyName": "Acme Industries",
"Address1": "9-12 Test Street",
"Address2": "",
"Suburb": "Acme South",
"State": "QLD",
"PostCode": "4008",
"Country": "Australia",
"Contact": "",
"Phone": "0733300333",
"Email": "wile.e.coyote@acme.com.au"
},
"EmailTracking": [
"wile.e.coyote@acme.com.au",
"manager@acme.com.au"
],
"ConnoteGoods": [
{
"ItemReference": "STW9C2N-EU",
"Qty": "4",
"UnitOfMeasureName": "Pallet",
"Weight": 5,
"Length": 12,
"Width": 20,
"Height: 12
}
],
"SpecialInstructions": "Beware of the dog"
}
{
"consignmentNo": "Draft-1P82D",
"manifestNo": "",
"status": "Incomplete"
"TrackingUrl": ""url"",
"carrierName": "",
"serviceName": "",
"ETA": ""
}
{
"consignmentNo": "TEST01342",
"manifestNo": "20191220001",
"status": "Ready"
"TrackingUrl": "https://path/to/trackingNo",
"carrierName": "Startrack Express",
"serviceName": "FPP",
"ETA": "2020-07-24T00:00:00"
}
This service allows clients to request a list of available carriers, services and price estimates for a given sender, receiver and goods combination. Results can be optionally sorted and truncated using "sortBy" and "limitResultsTo" parameters.
The service returns an array of Carrier/Service objects which can optionaly be identified by a temporary corresponding draft ‘consignmentNo’. The draft consignmentNo from the returned object can then be used as the sole parameter in a CreateConsignment request to convert a selected estimate into an ‘Incomplete' or ‘Ready’ consignment. or a "Booked" courier job in Cubiic.
POST /Estimate/GetEstimates
The GetEstimates request follows the same request structure and attributes as the CreateConsignment request, with the following additions/changes:
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
createDrafts | Boolean | If True, Cubiic will return a corresponding draft consignmentNo with each estimate. This may then be used in a subsequent CreateConsignment call to create a consignment with the selected carrier (see above). | ||
sortResultsBy | String | "lowest price", "fastest", "preferred carrier" | Return results sorted by the option specified | |
limitResultsTo | Int | Limit the number of results returned by the int specified. If not used in combination with "sortResultsBy", results will be sorted lowest price |
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
CompanyName | String | Not required for estimates only (cannot be omited if createDrafts is true) | ||
Address1 | String | Not required for estimates only (cannot be omited if createDrafts is true) | ||
Address2 | String | Not required for estimates only |
[
{
"consignmentNo": "Draft-33AVH",
"account": "TMS123",
"carrierName": "Allied Express",
"serviceName": "Road Express",
"price": "14.68",
"eta": "2020-07-24T00:00:00",
"minEta": "0001-01-01T00:00:00"
},
{
"consignmentNo": "Draft-LITMW",
"account": "30512344",
"carrierName": "TNT Express",
"serviceName": "Road Express",
"price": "30.18",
"eta": "2020-07-24T00:00:00",
"minEta": "0001-01-01T00:00:00"
},
{
"consignmentNo": "Draft-JO5ZM",
"account": "112123438",
"carrierName": "Couriers Please",
"serviceName": "Express I55",
"eta": "2020-07-24T00:00:00",
"minEta": "0001-01-01T00:00:00"
},
{
"consignmentNo": "Draft-TERVX",
"account": "TMSFSD",
"carrierName": "BlueStar Logistics",
"serviceName": "Exp Plt - 2.2 High To Town",
"eta": "2020-07-24T00:00:00",
"minEta": "0001-01-01T00:00:00"
}
]
The estimates response can be used as it is to display approximate quotes or do calculations.
To subsequently create a consignment based on a selected estimate, a value of "true" can be set on the "createDrafts" attribute of the Get Estimates request. The response will include the "consignmentNo" property on each service returned which may then be supplied to the CreateConsignment endpoint as follows:
POST /Consignment/CreateConsignment
{
"consignmentNo": "Draft-TERVX",
}
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
consignmentNo | String | Y | consignmentNo as returned by GetEstimates response |
This endpoint accepts a single consignmentNo string and returns a success or failure response indicating the successful or unsuccessful cancellation of the given consignment.
DELETE /Consignment/CancelConsignment/{consignmentNo}
As a DELETE request there is no request payload, the consignment to cancel will be specified as the final path component of the request URI.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
consignmentNo | String | Y | Consignment number to be cancelled |
This endpoint accepts a single consignment number and returns a history of any related consignment events that have occured to date
GET /Consignment/GetEventsByConsignmentNo/{consignmentNo}
As a GET request there is no request payload, the consignment will be specified as the final path component of the request URI.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
consignmentNo | String | Y | Consignment number for the tracking being requested |
{
"connoteNumber": string,
"trackingStatus": string,
"trackingLocation": string,
"eta": string,
"events": [
{
"status": string,
"dateTime": string,
"details": string,
"location": string,
"orderId": integer
}
]
}
Note that the status attributes provided in this response are normalised to Cubiic statuses where possible so that API users do not have to handle carrier specific status responses.
Consignment object
Name | Type | Description |
---|---|---|
connoteNumber | String | |
trackingStatus | String | Last known Cubiic status of the consignment |
trackingLocation | String | Last known location of the consignment |
eta | String | Current ETA if provided by carrier, otherwise original ETA Most services do not specify a time and will always return 12am |
Event object
Name | Type | Description |
---|---|---|
status | String | Cubiic consignment status that this event corresponds to |
dateTime | String | Date and time (if available) that this event took place |
details | String | Raw status text as provided by carrier |
location | String | Location as at the time of this event (if available) |
orderId | integer | Specifies the relative order of the listed events |
{
"connoteNumber": "TEST00005143",
"trackingStatus": "In Transit",
"trackingLocation": "BRISBANE, QLD",
"eta": "28/01/2020 12:00:00 AM",
"events": [
{
"status": "In Transit",
"dateTime": "2020-01-27T16:03:23",
"details": "Item(s) picked up from sender location",
"location": "BRISBANE, QLD",
"orderId": 1518386
},
{
"status": "In Transit",
"dateTime": "2020-01-28T14:12:08",
"details": "Item(s) in transit",
"location": "AP MOUNT ISA DC, QLD",
"orderId": 1524557
},
{
"status": "In Transit",
"dateTime": "2020-01-28T14:10:16",
"details": "Item(s) in transit",
"location": "AP MOUNT ISA DC, QLD",
"orderId": 1524556
},
{
"status": "Despatched",
"dateTime": "2020-01-27T14:45:13.1133333",
"details": "Item(s) despatched to Startrack Express",
"location": "TINGALPA, QLD",
"orderId": 1
}
]
}
This endpoint accepts a single consignment number and returns a Proof of Delivery (POD) image.
GET /Consignment/GetPod/{consignmentNo}
As a GET request there is no request payload, the consignment will be specified as the final path component of the request URI.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
consignmentNo | String | Y | Consignment number corresponding to the POD required |
HTTPS response returning an image in JPEG format.
This endpoint accepts an array of consignment numbers and an optional array of item reference numbers and will return the corresponding labels in the format specified.
POST /Print/GetLabels/{labelType}
[
{
"consignmentsNo": "string",
"itemReferences": [
"string",
...
]
},
{
"consignmentsNo": "string",
"itemReferences": [
"string",
...
]
},
...
]
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
consignmentsNo | String | Y | Consignment number for the label(s) being requested | |
itemReferences | String Array | Consignment number for the label(s) being requested |
The following label formats are supported and can be requested by specifying the labelType in the URI
Label Type | Constraints | Description |
---|---|---|
Default | Labels returned in pdf format | |
zpl | Labels returned in zebra thermal label format | |
excel | Labels returned as csv with embedded image | |
word | Labels returned as doc with embedded image | |
image | Labels returned as jpeg image | |
html | Labels returned as html with images |
HTTPS response specifying the corresponding content-type and body containing the application data stream.
This endpoint accepts a single consignment number and flags it as being loaded on the delivery vehicle prior to manifesting
PUT /Consignment/LoadConsignment/{consignmentNo}
As a PUT request there is no request body, the consignmentNo will be specified as the final path component of the request URI.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
consignmentNo | String | Y | Consignment number of the consignment to be flagged as loaded on vehicle |
This endpoint accepts a single manifest number and returns a success or failure response indiciting the successful or unsucesful transmission of consignment data to the assigned carrier.
PUT /Consignment/ManifestByNo/{manifestNo}
As a PUT request there is no request body, the manifestNo will be specified as the final path component of the request URI.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
manifestNo | String | Y | Manifest number of the Cubiic manifest to be manifested |
Clients can submit consignment data in a CSV format via a SFTP server, which is then accessible as an Incomplete (draft) consignment in Cubiic.
The Create Consignment CSV Service operates as a standard SFTP server.
The client will need to connect to the SFTP server, authenticate, and then upload 1 or more CSV files matching the provided specification.
If your client implementation requires an absolute path, the upload path is /incoming - in most cases specifying an upload path is not required, the server will attempt to put the client in the incoming directory by default.
A client connecting to the Cubiic SFTP host must authenticate with a valid and active SFTP login/password combination (which will be provided by the Cubiic team).
See also: sample CSV file
The CSV file should contain the consignment details for 1 or more consignments with all the consignment details that you wish to import.
Column requirements can vary:
Heading | Type | Required | Description |
---|---|---|---|
CustomerCode | Text | Y | Cubiic tenancy code * |
SenderCode | Text | Y | Cubiic location code to specify which of your locations a consignment should be created in (Use 3PT for 3rd party sending locations). * |
SenderName | Text | Only used if SenderCode is 3PT. | |
SenderAddress1 | Text | Only used if SenderCode is 3PT. | |
SenderAddress2 | Text | Only used if SenderCode is 3PT. | |
SenderSuburb | Text | Only used if SenderCode is 3PT. | |
SenderState | Text | Only used if SenderCode is 3PT. | |
SenderPostcode | Number | Only used if SenderCode is 3PT. | |
SenderCountry | Text | Only used if SenderCode is 3PT. | |
SenderContact | Text | Only used if SenderCode is 3PT. | |
SenderPhone | Text (10) | Only used if SenderCode is 3PT. | |
SenderEmail | Text | Only used if SenderCode is 3PT. | |
ReceiverName | Text | Y | |
ReceiverAddress1 | Text | Y | |
ReceiverAddress2 | Text | Y | |
ReceiverSuburb | Text | Y | |
ReceiverState | Text | Y | |
ReceiverPostcode | Number | Y | |
ReceiverCountry | Text | ||
ReceiverContact | Text | ||
ReceiverPhone | Text (10) | ||
ReceiverEmail | Text | ||
TrackingEmail | Text | Multiple emails can be separated with a | (Shift-\) | |
SenderRef | Text | Multiple references can be separated with a | (Shift-\) | |
ReceiverRef | Text | Multiple references can be separated with a | (Shift-\) | |
ItemRef | Text | If the ItemRef matches a product in your Cubiic product list, Cubiic will use it to fill in the UOM/Weight/Length/Width/Height. | |
UOM | Text | CARTON, PALLET, etc. | |
Qty | Number | ||
Weight | Decimal | ||
Length | Decimal | ||
Width | Decimal | ||
Height | Decimal | ||
CarrierCode | Text | Cubiic carrier code for nominated carrier if you need the service pre-selected. * | |
ServiceCode | Text | Cubiic service code for nominated service if you need the service pre-selected. * | |
SpecialInstructions | Text | ||
isATL | T/F | Any value that isn't t/true/y/yes/1 is treated as false. | |
isResidential | T/F | Any value that isn't t/true/y/yes/1 is treated as false. | |
DespatchDate | Text | Expected ready date in dd/mm/yyyy format. | |
labelPrinter | String | Name of label printer to use for automated printing if applicable | |
* The applicable codes will be provided as needed. Tenancy and location codes depend the tenant's setup, and providing an exhaustive list of Carrier/Service codes would require significant maintenance and would make this document much longer than it needs to be. |
The Webhook tracking event service facilitates the Cubiic system providing live, event driven tracking updates for use by your developed applications.
A user can provide one or more endpoint URLs, nominate one or more events, and select which attributes to send in the payload. This is configured in the Cubiic front end via Settings > Connectivity > Webhooks. When the status of a relevant consignment changes, Cubiic will send a HTTPS request with the user's selected payload to the provided URL.
{
"consignmentNo": string,
"carrierName": string,
"serviceName": string,
"estimatedPrice": string,
"eta": string,
"minEta": string,
"accountNo": string,
"senderAddress": {
"companyName": string,
"address1": string,
"address2": string,
"suburb": string,
"state": string,
"postCode": string,
"contact": string,
"phone": string,
"email": string,
"country": string
},
"reference": string,
"senderReferences": [
string
],
"receiverReferences": [
string
],
"receiverAddress": {
"companyName": string,
"address1": string,
"address2": string,
"suburb": string,
"state": string,
"postCode": string,
"contact": string,
"phone": string,
"email": string,
"country": string
},
"connoteGoods": [
{
"itemReference": string,
"qty": int,
"length": float,
"width": float,
"height": float,
"weight": float,
"unitOfMeasureName": string
}
],
"specialInstructions": string,
"serviceCode": string,
"labelPrinter": string,
"accountNo": string",
"autoManifest": boolean,
"autoManifestDateTime": string,
"costCentre": string,
"orderNo": string,
"vehicleType": string,
"originator": string,
"reassignedTo": string,
"reassignedToCarrier": string,
"reassignedToService": string,
"reassignedFrom": string,
"reassignedFromCarrier": string,
"reassignedFromService": string,
"reassignedReason": string
"events": [
{
"status": string,
"dateTime": string,
"details": string,
"location": string
}
]
}
EOF