From order to dispatch, without the gaps.
Four steps. Your ERP sends the order, we print the label, the floor scans it onto the trailer, and the carrier's tracking takes over. If anything goes wrong on the way, you have the record to put it right.
One request. One label document.
Send the shipment and the carrier. Back comes a single PDF with every parcel label and a tracking number for each one. If you already talk to a courier API, the request will look familiar.
- Address checked and customs handled before the carrier is charged.
- A retry never books twice. A failed label is flagged, not hidden.
- Pick the carrier by your rules, or compare live rates and choose.
{
"shipment": {
"reference": "SO-48812",
"ship_from": "Bristol",
"ship_to": { "line1": "12 Milk St", "city": "Bath",
"postcode": "BA1 2LT", "country_code": "GB" },
"parcels": [{ "reference": "SO-48812-1", "weight_kg": 4.2 },
{ "reference": "SO-48812-2", "weight_kg": 6.0 }]
},
"carrier": { "name": "DPD Main", "service": "next_day" }
}{
"shipment": { "id": "…", "reference": "SO-48812" },
"document": { "url": "https://…/labels.pdf", "format": "pdf" },
"parcels": [
{ "reference": "SO-48812-1", "carrier_tracking_number": "1550…" },
{ "reference": "SO-48812-2", "carrier_tracking_number": "1550…" }
]
}Every order, on the screen, on the floor.
Each shipment becomes a consignment with its parcels, carrier, status and tracking. The office sees it in the list. The handhelds see it the moment it lands.
- Filter by status: pending, loading, loaded, failed.
- Cancel voids the labels at the carrier and closes the record.
- Nothing is edited in place. Every change is a new record you can trace.
| Reference | Carrier | Parcels | Status | Tracking | Expected | Created |
|---|---|---|---|---|---|---|
| SO-48812 | DPD Main | 12 | fully loaded | in transit | Thu 4 Sep | 09:12 |
| SO-48819 | Evri | 8 | partially loaded | awaiting | Thu 4 Sep | 09:14 |
| SO-48827 | Royal Mail | 11 | partially loaded | awaiting | Fri 5 Sep | 09:20 |
| SO-48830 | Royal Mail | 4 | fully loaded | delivered | Wed 3 Sep | 08:41 |
| SO-48836 | DPD Main | 3 | label failed | — | Thu 4 Sep | 09:31 |
| SO-48839 | DPD Main | 7 | pending loading | — | Thu 4 Sep | 09:33 |
| SO-48841 | DHL | 16 | pending loading | — | Fri 5 Sep | 09:40 |
Scan it on. Close the doors. Done.
Operators scan each parcel onto the trailer with a Zebra handheld or a phone. Closing the trailer freezes the manifest with who closed it and when. From there the carrier's tracking events take over, cleaned up into one set of statuses.
- Works offline. Scans queue on the device and catch up later.
- Unknown barcodes are held, not lost, and match up when the order arrives.
- Delivered means delivered. A late event never moves a parcel backwards.
| Tracking number | Shipment ref | Carrier account |
|---|---|---|
| PCL-778292-0 | SO-48812 | DPD Main |
| PCL-778292-1 | SO-48812 | DPD Main |
| PCL-778301-0 | SO-48819 | DPD Main |
| PCL-778340-0 | SO-48827 | DPD Main |
| PCL-778340-1 | SO-48827 | DPD Main |
And when the carrier gets it wrong, the proof is already there.
Raise the exception, build the case, send the dossier. The manifest and the scan trail come with it.