Shipments
Shipment Statuses

Shipment Statuses

Every shipment has a status field that reflects the latest known state from the carrier. This page documents every possible status value, whether it triggers customer notifications, and how carrier-reported statuses map to notification events.

Active / Trackable Statuses

These statuses represent shipments that are in progress or have reached a terminal delivery state.

StatusLabelDescriptionTriggers Notification?
pendingWaitingShipment registered, waiting for first carrier scanNo
pre_transitLabel CreatedLabel created, not yet picked up by carrierEmail (in_transit trigger)
in_transitIn TransitCarrier has picked up and is transporting the packageEmail + SMS (if enabled)
available_for_pickupReady for PickupPackage at facility, ready for customer pickupEmail (in_transit trigger)
out_for_deliveryOut TodayPackage is on the delivery vehicle todayEmail + SMS (if enabled)
deliveredDeliveredSuccessfully delivered to recipientEmail + SMS (if enabled)
exceptionIssueDelivery problem: failed attempt, wrong address, etc.Email + SMS (if enabled)
on_holdOn HoldPackage paused at a carrier facilityEmail (if enabled)
failureFailedDelivery failed, return initiatedEmail (if enabled)
return_to_senderReturningPackage is being returned to the senderEmail (if enabled)

Terminal / System Statuses

These statuses indicate a non-trackable or error state. They do not trigger customer notifications.

StatusLabelDescription
unknownUnknownCarrier returned an unknown or unrecognized status
label_cancelledLabel CanceledShipping label was voided before pickup
deletedDeletedShipment has been removed from the system
expiredExpiredTracking number expired with no movement
invalid_trackingInvalid NumberTracking number not recognized by the carrier
invalid_carrierInvalid CarrierCarrier slug is not supported
carrier_unsupportedUnsupportedCarrier is not available in the tracking engine
cancelledCanceledShipment was cancelled

Notification Triggers

The Notification Service maps carrier-reported statuses to trigger events. Multiple raw statuses can map to the same notification trigger — for example, pre_transit, in_transit, and available_for_pickup all map to the shipment.in_transit trigger. The same notification is only sent once per trigger per shipment.

StatusesNotification Trigger
pre_transit, in_transit, available_for_pickupshipment.in_transit
out_for_deliveryshipment.out_for_delivery
deliveredshipment.delivered
exception, failure, on_holdshipment.exception
return_to_sendershipment.returned

Email Template Mapping

Email templates are grouped by status category. Configure templates in Dashboard → Stores → Email.

StatusesEmail Template Key
pre_transit, in_transitin_transit
available_for_pickupavailable_for_pickup
out_for_deliveryout_for_delivery
delivereddelivered
exceptionexception
failurefailure
return_to_senderreturn_to_sender
on_holdon_hold