Status Codes
The status field in webhook notifications and the last_status field of a
subscription use the platform’s numeric delivery status.
| Code | status_description | Meaning |
|---|---|---|
0 | In Lavorazione | Processing — the shipment has been registered and is being prepared |
1 | Da spedire | Ready to ship — waiting to be handed to the network |
2 | Spedita | Shipped — collected and in the network |
3 | In transito | In transit between depots or hubs |
4 | In Consegna | Out for delivery — with the courier on the final leg |
5 | Consegnata | Delivered — terminal status |
6 | In Giacenza | Held in storage — delivery failed, the shipment is waiting at a depot |
status may be null and status_description may be null when a tracking event does not map to
a known status. Treat description in the tracking.events array as the authoritative label in
that case.
Terminal Statuses
Status 5 (Consegnata) is terminal — no further notifications follow. When it is reached:
delivered_atis stamped on the subscription.- The subscription is deleted automatically 30 days later.
Status 6 (In Giacenza) is not terminal. A held shipment usually moves back to 4 on a new
delivery attempt, or to 5 once delivered.
Statuses vs Tracking Events
The two are related but distinct:
| Statuses | Tracking events | |
|---|---|---|
| Where | status / last_status | tracking.events[] |
| Granularity | 7 coarse states | Every operational scan |
| Cardinality | One current value | Full chronological list |
| Triggers a notification | Yes, on change | Only when it changes the status |
A shipment can accumulate several events under the same status (multiple depot scans while
In transito, for instance). You get one notification for the status change; the complete event
list rides along in the tracking object of every payload.