Nash integrates with hundreds of fleets, and we normalize all their statuses into a list of Nash Delivery Statuses. In this page, we explain these statuses and highlight a few things that are important to know when working on processing the Nash status updates.

Delivery Status List

For delivery status. The values are:

StatusDescription
CREATEDif you see this value in the DeliveryStatus object then this means that the delivery order has registered with the provider and is therefore “created”. In the frontend, currently a job status can also be created if its TaskStatus is Created (which happens before it’s sent to the provider).
SCHEDULEDthe provider has scheduled the order.
NOT_ASSIGNED_DRIVERprovider acknowledges the order but has not assigned a driver to it yet.
ASSIGNED_DRIVERa driver has been assigned to the order.
STARTEDthe delivery has started. This status is not that common.
PICKUP_ENROUTEthe driver is en route to the pickup point.
PICKUP_ARRIVEDthe driver has arrived at the pickup point.
PICKUP_COMPLETEthe driver has completed the pickup.
DROPOFF_ENROUTEthe driver is en route to the dropoff point.
DROPOFF_ARRIVEDthe driver has arrived at the dropoff point.
RETURN_IN_PROGRESSthe driver is en route to the pickup point with intentions to return the package (e.g., delivery containing alcohol cannot be delivered due to failed age verification and needs to be returned to the store)

Terminal Statuses

Once a delivery reaches this status, it will not change again

StatusDescription
DROPOFF_COMPLETEthe driver has dropped off the order.
CANCELED_BY_CUSTOMERthe order was canceled by the Nash customer via the portal or API.
CANCELED_BY_PROVIDERthe order was canceled by the provider.
CANCELED_BY_NASHthe order was canceled by a member of the Nash team or the Nash system.
CANCELED_BY_AUTO_REASSIGNthe order was canceled by the Nash auto-reassignment functionality.
RETURNEDthe provider has returned the order.
EXPIREDthe order has expired.
FAILEDthe provider marked the order as failed. You can check the task.failure_reason for more notes

Guaranteed Status Order

Nash guarantees the following path if the delivery is completed.
CREATED ->ASSIGNED_DRIVER -> PICKUP_ENROUTE -> PICKUP_ARRIVED -> DROPOFF_ENROUTE -> DROPOFF_ARRIVED -> DROPOFF_COMPLETE

This means if a delivery reaches DROPOFF_COMPLETE we guarantee the other statuses before that will exist in the same order presented. Note you can have more statuses than these, but they will preserve their relative order and will always exist.

We do this by inferring some statuses from providers, even if they do not provide them. For example, if a fleet doesn’t support the Dropoff Arrived status but they send us a Dropoff Complete one, then we will inject the Dropoff Arrived status right before adding Dropoff Complete. This helps our API partners build workflows on top of the Critical Path status.

Important to Know

  • Different providers will support different subsets of the statuses above. It’s important to know this when building workflows on top of the statuses above.
  • Nash does not guarantee the order in which providers will send us the statuses, outside of the Critical Delivery Status Path defined earlier.
  • Critical Path Delivery Statuses may be inferred by Nash.