When you're shipping with multiple carriers, you’ve likely noticed how confusing tracking updates can be. Each carrier uses its own language, style, and level of detail — some updates are vague (“in transit”), some overly technical, and others in a different language entirely. This makes it hard to quickly understand what’s really happening with your shipments, especially when trying to support your customers or monitor performance.
That’s exactly why ShippyPro has built a standardized tracking mapping system: to unify these messages into clear, consistent categories — without losing important details. Thanks to our granular sub-statuses, you still get all the specific insights (like whether a parcel is delayed due to customs, a wrong address, or damage), but in a way that’s easy to read, analyze, and act on — no matter which carrier you use.
Summary:
1. The first level: Core tracking statuses
3. Where can I currently use this mapping?
1. The first level: Core tracking statuses
To make tracking easier and more intuitive, we’ve grouped all shipment events into six main categories, each represented by a clear numeric code:
Code |
Category Name |
Definition |
---|---|---|
|
Information Received |
The carrier has confirmed the booking for pick-up or shared shipment details. |
|
In Transit |
The parcel has been picked up and is en route to its destination, including all movements between facilities. |
|
Out for Delivery |
The shipment is out for final delivery or available at a pickup location (locker, PUDO, etc.). |
|
Failed Attempt |
The carrier tried to deliver the parcel, but the attempt was unsuccessful. |
|
Exception |
A general error occurred, not assigned to a specific cause. |
|
Delivered |
The parcel has been successfully delivered to the recipient or collected from a designated location such as a pickup point, locker, or PUDO. |
These top-level codes give you a quick snapshot of where your parcel stands in the delivery journey. But we know that when something goes wrong, a generic “exception” status isn’t enough — you need to know why.
2. Exception Categories
That’s why we’ve expanded the Exception category (5000
) into a comprehensive set of granular sub-statuses (e.g., 5110
, 5220
, 5330
, etc.). These allow you to understand — and act on — specific problems without needing to decipher vague carrier messages.
For example:
-
If a parcel is delayed because of weather conditions, it will be categorized under
5120 – External Causes
. -
If it’s misrouted, you’ll see
5210 – Misrouted
. -
If it’s lost, the status will be clearly labeled as
5330 – Lost
.
This level of granularity helps you:
-
Improve customer communication by giving precise, transparent updates.
-
Speed up issue resolution by identifying the root cause instantly.
-
Gain insightful analytics with Optimizer to improve carrier performance and prevent repeat issues.
Code | Category Name | Definition |
1000 | Information Received | The carrier has confirmed the booking for pick-up, has sent some sort of notification to one of the parties, or adds information about the shipment's details |
2000 | In Transit | The shipment has been picked-up and it's on its way to the destination. This includes all phases after the initial pickup, such as movements between hubs or facilities. |
3000 | Out for Delivery | The parcel is out for delivery or already available for collection at pickup points, lockers, PUDOs, or parcel shops. |
4000 | Failed Attempt | The carrier attempted to deliver the parcel, but the attempt was unsuccessful. |
5000 | Generic Exception | A general status used when the issue is not clearly defined or does not fall into a more specific exception category. |
5100 | Transit Disruptions | Indicates generic delays or disruptions during transit. |
5110 | Delayed | The shipment is delayed due to issues in the transport process. A specific reason isn't explicited in the tracking message. |
5120 | External Causes (Force Majeure & Other Exceptions) | The delivery has been affected by uncontrollable external events such as natural disasters, extreme weather, road closures, or public disturbances. |
5200 | Operational Issues | The shipment has faced disruptions caused by internal operational problems within the carrier’s network or routing process. |
5210 | Misrouted | The parcel has been incorrectly routed to the wrong facility or destination due to handling errors by the carrier. |
5220 | Pickup Not Possible | The carrier could not collect the parcel from the sender, either due to internal issues or because the shipment was not ready at the scheduled time. |
5230 | On Hold | The parcel is temporarily held by the carrier due to pending actions, such as awaiting additional information, instructions, or internal processing. |
5300 | Parcel Exception | The shipment has encountered issues related to its condition or characteristics, such as physical damage or exceeding size/weight limits. |
5310 | Exceeded Dimensions or Weight | The parcel surpasses the carrier’s allowed size or weight restrictions, affecting delivery. |
5320 | Damaged | The carrier has reported that the parcel is physically damaged. |
5330 | Lost | The carrier is unable to locate the parcel, and it is considered lost at this stage. |
5340 | Destroyed | The parcel has been reported as destroyed and cannot be recovered. |
5400 | Address Discrepancies | The parcel cannot be delivered due to issues with the provided address, such as missing or incorrect details. |
5410 | Insufficient Address Information | The shipping address lacks essential details that prevent successful delivery. |
5420 | Wrong Address Information | The address provided is incorrect or invalid, hindering the delivery process. |
5500 | Customs & Documentation | The shipment is facing delays due to customs clearance procedures or missing/incomplete documentation. |
5510 | Customs-Related Issues | The parcel is held at customs due to issues with customs procedures or import restrictions. |
5520 | Missing Documents | The required shipping or customs documents (e.g., invoice, declaration) are missing. |
5600 | Sender/Recipient-Related Events | The issue originates from the sender or recipient, such as a delivery cancellation, refusal, or return request. |
5610 | Recipient Exception | The shipment encountered an issue due to an action or inaction by the recipient. |
5620 | Sender Exception | The sender is responsible for the failure, often due to a cancellation request. |
5630 | Returning to Sender | The parcel is being returned to the sender, often after failed delivery attempts or other issues like refusal or incorrect information. |
5700 | Carrier Actions | The carrier has taken an action or made a request that affects the delivery process, such as asking for contact or rescheduling. |
5710 | Carrier Requests Contact | The carrier is asking to be contacted for additional details or instructions related to the delivery. |
5720 | Change to Delivery | The carrier has changed the delivery terms, such as the delivery address or estimated delivery time. |
5730 | Other Carrier Exception | A general status for exceptions raised by the carrier that do not fall into any of the predefined categories. |
6000 | Delivered | The parcel has been successfully delivered to the recipient or collected from a designated location such as a pickup point, locker, or PUDO. |
3. Where can I currently use this mapping?
-
GetTracking API: Check for
StatusCode
andExtendedStatusCode
fields in the response (See API documentation) -
Tracking update webhook: You can expect the
code
andextendedCode
properties (See API documentation) -
Optimizer: the Exceptions board breaks down your shipments by exception sub-statuses, helping you quickly identify delivery issues like delays, address errors, or damaged parcels. This lets you spot bottlenecks, track patterns by carrier or destination, and take action to resolve problems efficiently. (see How Optimizer works)