status— the state of the Shipment record: is Perform.AI tracking it, and how did tracking end?current_phase— the stage of the delivery journey the latest event maps to.
status for record-keeping logic (is this done? did tracking ever start?), and phases for customer-facing journey displays and milestone logic.
Statuses
A
pending Shipment becomes active, delivered, or undeliverable as soon as its first event lands — whether retrieved from the carrier or created manually.
Phases
Every event is mapped, where possible, to a standard phase of the delivery journey — from order events through handover, transit, customs, out-for-delivery, and delivery. Each phase has a displayname and a stable key (for example G — Out for delivery, H — Delivery); the Shipment’s current_phase reflects its most recent mapped event:
phase_key) and power the current_phase filter in List Shipments. Events that can’t be mapped carry null phase fields — your logic should treat unmapped events as “no phase information”, not as an error.
Build logic on the keys, not the display names — names can be reworded; keys are stable. Resolve human terms to keys with the List Event Types API or ask your account team for the full standard event and phase catalogue.
Related dimensions
issue_state(no_issue/current_issue/past_issue) tracks whether the Shipment has hit delivery issues — a separate axis from status and phase.- Return Shipments additionally carry a
return_statuslifecycle (pending approval → approved → shipping → completed, among others) — see Returns.