The purpose of this document is to outline the guidelines and specifications required to integrate external systems with Shiip.
Shiip'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 Shiip, 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 Shiip API web service is a RESTful suite of web services that allows an authenticated Shiip client to consume and interact with various Shiip features and functionality programatically. The Shiip Web Services are typically used for bespoke integrations and interactions via first and thrid party customer software and services.
The Shiip 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.
Shiip has two environments available for consumption of the APIs outlined in this document.
Shiip Demo environment - This is a sandboxed environment that always contains an identical feature set to the Shiip Production environment. The Demo environment is a non-live environment that should be utilised for initial integration development and testing before using the Shiip Production environment.
The Shiip Demo environment base URI is https://demo.api.shiip.com.au/
Shiip Production environment - This is Shiip's live environment where any API interactions will result in stateful real world changes.
The Shiip Production environment base URI is https://prod.api.shiip.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 Shiip login/password combination and WMS Code to request an access token, which is then used to authenticate with Shiip web services.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
String | Y | Shiip email address registerd to the authenticating user | ||
password | String | Y | Shiip password registerd to the authenticating user | |
wmsCode | String | Y | Shiip 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 Shiip API endpoints.
Authorization: Bearer E/04rkIMJYuBZYi5hLmVqDYqo9Ew+epZ0lkVE3ylAhGoOzKgm1P8Oh258gwu396VgJ8ftIR1XYvhJYM2T7s0Fe2qAEq2ZE95qSgU7aQLu32BmYGZzOLTQAi/Vbma+PMFf6pyXYf8dWYYEJoNAt6M4tua8/1qUzilza3FyfcjLpY5FMVt8kTXBsl3K8LfPlO12YuloAoZqiXv6PY9KGSrCeOqNoHqW5vOZ29S0tLkYvYkMnHnToh/HocexLse3iuMCxy9ZIr+Igs=t
This API accepts a single shipment object and returns either a success message or list of errors.
POST /Shipment/CreateShipment
{
"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
],
"shipmentGoods": [
{
"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 | Shiip Tenant ID (Same as WMS Code) | |
warehouseCode | String | "3PT" for Third Party | Y | Shiip 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 | ||
shipmentGoods | Array of Goods | Y | Refer to Shipment 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 shipment to (limited to a subset of carriers) | ||
saveAsDraft | Boolean | Force the shipment to be saved as a draft (Incomplete status) | ||
reassignedFrom | String | Required for reassignment | ShipmentNo of existing shipment this one will be replacing (refert to Reassignment Options section) | |
reason | String | Reason for reassigning this shipment to another carrier | ||
autoManifest | Boolean | Automatically manifest this shipment | ||
autoManifestDateTime | String | Defaults to readyDateTime | DateTime for this shipment 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 shipment to be allocated to the sending location's preferred carrier and service (if available) | ||
addToAddressBook | Boolean | Add or update the Shiip Address Book with the receiver details specified in the receiverAddress | ||
originator | String | Specify which integrated system is creating this shipment (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, Shiip 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 | Shiip 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 shipment | |
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 |
The following additional services / delivery requirements may be specified in either a Create Shipment 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 Shipment | 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 |
Shiip provides the ability to automatically manifest shipments if the "autoManifest" attribute is set to "true".
Shiip provides the ability to reassign shipments and courier jobs between carriers.
Reassigning a shipment or courier job requires the following attributes to be utilised in a Create Shipment request:
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
reassignFrom | String | Y | ShipmentNo of an existing undispatched shipment that this one will be replacing | |
reason | String | Reason for reassigning this shipment to another carrier |
When a shipment has been sucessfully reassigned, the following attributes will be available on the original shipment object that was reassigned:
"reassignedTo": string,
"reassignedToCarrier": string,
"reassignedToService": string,
"reassignedReason": string
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
reassignedTo | String | ShipmentNo of the new shipment that has replaced this shipment | ||
reassignedToCarrier | String | Name of the carrier the new shipment is assigned to | ||
reassignedToService | String | Name of the service the new shipment is assigned to | ||
reassignedReason | String | Reason this shipment was reassigned |
The new shipment (replacing the old one) will contain the following attributes:
"reassignedFrom": string,
"reassignedFromCarrier": string,
"reassignedFromService": string,
"reassignedReason": string
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
reassignedFrom | String | ShipmentNo of the original shipment that this one has replaced | ||
reassignedFromCarrier | String | Name of the carrier the old shipment was assigned to | ||
reassignedFromService | String | Name of the service the old shipment was assigned to | ||
reassignedReason | String | Reason this shipment was reassigned |
Shiip 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 Shipment object. This attribute may also be utilised for convenience in combination with Shiip 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 |
---|---|---|---|---|
shiip | String | Default | No additional workflows triggered | |
shopify | String | Will call a Shopify fulfilment web service upon shipment dispatch or courier collection | ||
woocommerce | String | Will call a WooCommerce fulfilment web service upon shipment dispatch or courier collection | ||
magento | String | Will call a Magento fulfilment web service upon shipment dispatch or courier collection | ||
[custom string] | String | Convenince attribute to identify your own orginating system (commonly utilised with webhooks) |
{
"shipmentNo": string,
"manifestNo": string,
"status": string,
"TrackingUrl": string,
"carrierName": string,
"serviceName": string,
"ETA": string,
"reassignedFrom": string
}
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
shipmentNo | String | Y | Shipment number of the created shipment | |
manifestNo | String | Manifest number if created in a ready state | ||
Status | String | Incomplete, Ready, or Booked | Y | Status of created shipment |
TrackingUrl | String | URL string | Y | URL directing to Shiip 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 | ShipmentNo of the original shipment 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"
],
"ShipmentGoods": [
{
"ItemReference": "STW9C2N-EU",
"Qty": "4",
"UnitOfMeasureName": "Pallet",
"Weight": 5,
"Length": 12,
"Width": 20,
"Height: 12
}
],
"SpecialInstructions": "Beware of the dog"
}
{
" shipmentNo": "Draft-1P82D",
"manifestNo": "",
"status": "Incomplete"
"TrackingUrl": ""url"",
"carrierName": "",
"serviceName": "",
"ETA": ""
}
{
" shipmentNo": "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 ‘ShipmentNo’. The draft shipmentNo from the returned object can then be used as the sole parameter in a CreateShipment request to convert a selected estimate into an ‘Incomplete' or ‘Ready’ shipment. or a "Booked" courier job in Shiip.
POST /Estimate/GetEstimates
The GetEstimates request follows the same request structure and attributes as the CreateShipment request, with the following additions/changes:
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
createDrafts | Boolean | If True, Shiip will return a corresponding draft ShipmentNo with each estimate. This may then be used in a subsequent CreateShipment call to create a Shipment 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 |
[
{
"shipmentNo": "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"
},
{
"shipmentNo": "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"
},
{
" shipmentNo ": "Draft-JO5ZM",
"account": "112123438",
"carrierName": "Couriers Please",
"serviceName": "Express I55",
"eta": "2020-07-24T00:00:00",
"minEta": "0001-01-01T00:00:00"
},
{
" shipmentNo ": "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 shipment 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 "shipmentNo" property on each service returned which may then be supplied to the CreateShipment endpoint as follows:
POST /Shipment/CreateShipment
{
" shipmentNo": "Draft-TERVX",
}
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
shipmentNo | String | Y | shipmentNo as returned by GetEstimates response |
This endpoint accepts a single shipmentNo string and returns a success or failure response indicating the successful or unsuccessful cancellation of the given shipment.
DELETE / Shipment /CancelShipment/{shipmentNo}
As a DELETE request there is no request payload, the shipment to cancel will be specified as the final path component of the request URI.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
shipmentNo | String | Y | Shipment number to be cancelled |
This endpoint accepts a single shipment number and returns a history of any related shipment events that have occured to date
GET /Shipment/GetEventsByShipmentNo/{shipmentNo}
As a GET request there is no request payload, the shipment will be specified as the final path component of the request URI.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
shipmentNo | String | Y | Shipment number for the tracking being requested |
{
"shipmentNumber": 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 Shiip statuses where possible so that API users do not have to handle carrier specific status responses.
Shipment object
Name | Type | Description |
---|---|---|
shipmentNumber | String | |
trackingStatus | String | Last known Shiip status of the shipment |
trackingLocation | String | Last known location of the shipment |
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 | Shiip shipment 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 |
{
"shipmentNumber": "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 shipment number and returns a Proof of Delivery (POD) image.
GET /Shipment/GetPod/{shipmentNo}
As a GET request there is no request payload, the shipment will be specified as the final path component of the request URI.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
shipmentNo | String | Y | Shipment number corresponding to the POD required |
HTTPS response returning an image in JPEG format.
This endpoint accepts an array of shipment numbers and an optional array of item reference numbers and will return the corresponding labels in the format specified.
POST /Print/GetLabelsByType/{labelType}
[
{
"shipmentNo": "string",
"itemReferences": [
"string",
...
]
},
{
"shipmentNo": "string",
"itemReferences": [
"string",
...
]
},
...
]
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
shipmentNo | String | Y | Shipment number for the label(s) being requested | |
itemReferences | String Array | Shipment 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 shipment number and flags it as being loaded on the delivery vehicle prior to manifesting
PUT /Shipment/Loadshipment/{shipmentNo}
As a PUT request there is no request body, theshipmentNo will be specified as the final path component of the request URI.
Name | Type | Constraints | Required | Description |
---|---|---|---|---|
shipmentNo | String | Y | Shipment number of the shipment 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 shipment data to the assigned carrier.
PUT /Shipment/ManifestByNo/{shipmentNo}
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 Shiip manifest to be manifested |
Clients can submit shipment data in a CSV format via a SFTP server, which is then accessible as an Incomplete (draft) shipment in Shiip.
The Create Shipment 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 Shiip SFTP host must authenticate with a valid and active SFTP login/password combination (which will be provided by the Shiip team).
See also: sample CSV file
The CSV file should contain the shipment details for 1 or more shipments with all the shipment details that you wish to import.
Column requirements can vary:
Heading | Type | Required | Description |
---|---|---|---|
CustomerCode | Text | Y | Shiip tenancy code * |
SenderCode | Text | Y | Shiip location code to specify which of your locations a shipment 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 Shiip product list, Shiip 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 | Shiip carrier code for nominated carrier if you need the service pre-selected. * | |
ServiceCode | Text | Shiip 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 Shiip 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 Shiip front end via Settings > Connectivity > Webhooks. When the status of a relevant shipment changes, Shiip will send a HTTPS request with the user's selected payload to the provided URL.
{
" shipmentNo": 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
},
"shipmentGoods": [
{
"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