All Statuses

ID Code Label Terminal
1 NEW New No
2 IN_PROCESS In Process No
3 SENT_TO_FACILITY Sent To Facility No
4 IN_TRANSIT In Transit No
5 HOLD Hold No
6 DELAYED Delayed No
7 DELIVERED Delivered ✓ Yes
8 FAILED Failed ✓ Yes
New Consignment has been received and registered in the system.
In Process The order is being processed and pickup is being arranged.
Sent To Facility Package has been picked up and sent to the sorting facility.
In Transit Package is in transit towards the delivery destination.
Hold Package is temporarily on hold. Could be customs, address issue, or facility hold.
Delayed Delivery has been delayed beyond the expected delivery date.
Delivered Package successfully delivered to the consignee. Terminal status.
Failed Delivery attempt failed. Could be wrong address, consignee unavailable, or returned.

Status Hierarchy

NEW
↓
IN_PROCESS
↓
SENT_TO_FACILITY
↓
IN_TRANSIT
↓ (or branch below)
HOLD
↓ (returns to IN_TRANSIT)
DELAYED
↓ (can return to IN_TRANSIT)
↓
DELIVERED or FAILED
↓ (FAILED can retry to IN_TRANSIT)
Forward only. Status can only move forward in the hierarchy. You cannot go from IN_TRANSIT back to NEW.
DELAYED exception. From DELAYED, the status can go back to IN_TRANSIT (re-dispatch scenario).
FAILED exception. From FAILED, the status can go back to IN_TRANSIT (re-attempt scenario).
Terminal statuses. DELIVERED is truly final. Once delivered, no further updates are made.
{
  "StatusId": 4,
  "StatusCode": "IN_TRANSIT",
  "StatusLabel": "In Transit",
  "IsTerminal": false,
  "IsDelay": false,
  "DelayReason": null
}

Map StatusId or StatusCode to your OutSystems entity. Store both for display and logic use.