Our powerful API integration allows you to submit each individual parcel and order, get instant feedback, and have the most flexible data structures.
Create or Update a Tracking/Order
You can create a new tracking and order in the parcelLab system using the v4/track/orders endpoint. This allows you to submit tracking information (that is: courier and tracking_number) for one or multiple parcels with a corresponding order number and can also be used to inform parcelLab to expect tracking information for a specified order.
If submitting the order details before the tracking information, the relevant tracking details that follow should be sent via the v4/track/orders endpoint as well when you receive it.
You can set tags on a tracking that allow you to easily identify custom attributes in filters and exports (for example: tags: ["category:womens fashion", "brand:Parkers", "season:W24", "category:sweater", "material:cashmere"]). For further information, see our data model documentation.
Create or Update Order (recommended)
put
Create or update an order. If the order already exists, it will be updated. Order data does not need to be providedin full with every call. If the order already exists only changed fields or mutation actions (add tracking, cancel tracking, etc.) need to be submitted.This endpoint is idempotent.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
Create a new order record with shipment and recipient data.
accountintegerOptional
Account to which this order belongs
order_numberstring · min: 1 · max: 255Optional
Order number (customer facing)
external_referencestring · max: 255Optional
Retailer reference (e.g. internal system ID) for this order, unique.
client_keystring · max: 512Optional
Name of the technical client / shop (corresponds to the system setup), e.g. 'mybrand-a.com'
Timezone of the recipient, if known, not required, but strongly recommended
order_statusstring · max: 255Optional
Current status of the order, as setup in the system
has_multiple_shipmentsboolean · nullableOptional
Indicates this order has been split into multiple shipments
cancelled_datestring · nullableOptional
Datetime when the order was cancelled
cancelled_reasonall ofOptional
Reason for cancellation
customer - Customer
inventory - Inventory
payment - Payment-related
other - Other
string · enumOptional
customer - Customer
inventory - Inventory
payment - Payment-related
other - Other
Possible values:
tagsstring[]Optional
Tags for the object, format :e.g. 'category:Home Apparel'
Responses
200
No response body
No content
400Error
application/json
403Error
application/json
404Error
application/json
put
/v4/track/orders/
No content
Create a Tracking/Order
You can create trackings and orders in the parcelLab system using the v4/track/orders endpoint.
The same endpoint is used to create and update a tracking and order. For further information, see how to update an order.
When you receive tracking information (that is: courier and tracking_number) for an order, you should send this data to parcelLab using this endpoint to update the record.
Create Order
post
Create a new order, if it does not exist. If the order already exists, this will result in an error. If you need to perform an (idem-potent) create or update, please use this endpoint. This endpoint will validate the payload. If the payload is invalid, it will return a 400 Bad Request.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
Create a new order record with shipment and recipient data.
accountintegerRequired
Account to which this order belongs
order_numberstring · min: 1 · max: 255Required
Order number (customer facing)
external_referencestring · max: 255Optional
Retailer reference (e.g. internal system ID) for this order, unique.
client_keystring · max: 512Optional
Name of the technical client / shop (corresponds to the system setup), e.g. 'mybrand-a.com'
Timezone of the recipient, if known, not required, but strongly recommended
order_statusstring · max: 255Optional
Current status of the order, as setup in the system
has_multiple_shipmentsboolean · nullableOptional
Indicates this order has been split into multiple shipments
cancelled_datestring · nullableOptional
Datetime when the order was cancelled
cancelled_reasonall ofOptional
Reason for cancellation
customer - Customer
inventory - Inventory
payment - Payment-related
other - Other
string · enumOptional
customer - Customer
inventory - Inventory
payment - Payment-related
other - Other
Possible values:
tagsstring[]Optional
Tags for the object, format :e.g. 'category:Home Apparel'
Responses
201Success
application/json
400Error
application/json
403Error
application/json
404Error
application/json
post
/v4/track/orders/
Retrieve All Orders
You can retrieve a list of all orders for your account using the v4/track/orders endpoint.
List Orders
get
List all orders
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
accountinteger[]Optional
cursorstringOptional
The pagination cursor value.
external_referencestringOptional
order_numberstringOptional
orderingstringOptional
Which field to use when ordering the results.
Responses
200Success
application/json
400Error
application/json
403Error
application/json
404Error
application/json
get
/v4/track/orders/
Retrieve Orders by ID
You can retrieve a specific order using the v4/track/orders endpoint.
Lookup Order (by identifier)
get
Looks up an order by a unique identifier, either order_number or external_id. Returns all static order information,and order trackings.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
unique_idstringRequiredPattern: ^(?!info)[^/.]+$
Query parameters
Responses
200Success
application/json
400Error
application/json
403Error
application/json
404Error
application/json
get
/v4/track/orders/{unique_id}/
Payload
The payload holds the order-specific information as specified in the data model. All attributes are named key-value pairs in a flat JSON formatted object.
All available keys can be found in the data model.
Credentials are assigned by our Support team as required for the services used. Overall, there are different pairs of credentials for different services to assure security.
Code Samples
You can use our API with jQuery, Node, Ruby, Python, PHP, and other programming languages.
For examples of programming languages, please fill in our contact form and they will be provided on request.