Skip to content

Status Model of Packages

This article provides a comprehensive overview of all package statuses throughout the delivery lifecycle, explaining what each status means and how packages transition between them.

Introduction

Every package in MotionTools progresses through different statuses during its lifecycle. It’s critical to understand the meaning of each status, as available actions and features, as well as the visibility, are directly related to or restricted by its status.

A package doesn’t necessarily go through all available statuses. Some statuses may be skipped during transitions.

Statuses Overview

This is a short overview of all available statuses. Continue with the next section for more detailed explanations and available status transitions.

StatusShort Description
CreatedPackage created
Awaiting pickupPackage scheduled for pickup
In transitPackage picked up by driver and in transit to hub
At hubPackage delivered to hub or created directly 'At hub'
Scheduled for deliveryPackage scheduled for drop-off
Out for deliveryPackage picked up by driver and in transit to destination
DeliveredPackage dropped off at destination
Ready for collectionPackage collection from Hub was requested by customer
CollectedPackage collected from Hub by customer
At customsPackage processed at customs
CancelledPackage delivery cancelled
FailedPackage couldn't be picked up or dropped off

Statuses in detail

INFO

If you are developing integration with MotionTools, note that the status names shown on the Dashboard may slightly differ from the names used in the API. To receive notifications for every status change, you can subscribe to the corresponding webhook event.

Created

created

A package was created with a customer’s Place as origin.

Available transitionsTransition name on APITrigger
Created → Awaiting pickupannouncePackage was scheduled for pickup
Created → At hubrelocateA Dispatcher/Admin relocated the package to a hub
Created → FailedmissA pickup or drop-off attempt failed right after creation (edge case)
Created → CancelledcancelAdmin cancelled the package

Awaiting pickup

awaiting_pickup

A package was scheduled for pickup

Available transitionsTransition name on APITrigger
Awaiting pickup → In transitpickupA driver picked up the package
Awaiting pickup → Out for deliverypickupA driver picked up the package
Awaiting pickup → At hubtour_cancelled tour_force_ended remove_from_tourThe tour was cancelled/force-ended or the package was removed from the tour after it had already reached a hub
Awaiting pickup → Createdtour_cancelled tour_force_ended remove_from_tourThe tour was cancelled/force-ended or the package was removed from the tour before pickup happened (package returns to initial state)
Awaiting pickup → FailedmissA pickup attempt failed (e.g., driver couldn’t pick up the package)

In transit

in_transit

A package was picked up by a driver and is in transit to a hub now.

Available transitionsTransition name on APITrigger
In transit → Awaiting pickupdropoffThe driver dropped off the package at the origin again (e.g., pickup was reverted)
In transit → At hubdropoff tour_force_endedThe driver dropped off the package at the hub (or the tour was force-ended after reaching the hub)
In transit → Deliveredtour_force_endedThe tour was force-ended and the package was marked as delivered
In transit → Failedmiss tour_cancelledA pickup/drop-off attempt failed or the tour was cancelled while the package was in transit

At hub

at_hub

A package was delivered to a hub or was created directly 'At hub' by mentioning an admin’s Place.

Available transitionsTransition name on APITrigger
At hub → At hubrelocate tour_cancelled tour_force_endedThe package was relocated to another hub, or a tour was cancelled/force-ended while the package remained at a hub
At hub → Awaiting pickupannouncePackage was scheduled for pickup from the hub
At hub → Scheduled for deliveryannouncePackage was scheduled for drop-off
At hub → Ready for collectionrequest_collectionA customer requested to collect the package from the hub
At hub → FailedmissA hub handover/pickup attempt failed
At hub → CancelledcancelA package delivery was cancelled
At hub → Deliveredforce_deliveryA Dispatcher/Admin force-delivered the package (marked delivered manually)

Scheduled for delivery

scheduled_for_delivery

A package was scheduled for drop-off.

Available transitionsTransition name on APITrigger
Scheduled for delivery → Out for deliverypickupA driver picked up the package at the hub to start the delivery tour
Scheduled for delivery → Ready for collectionrequest_collectionA customer requested hub collection instead of delivery
Scheduled for delivery → At hubtour_cancelled removed_from_tourThe delivery tour was cancelled or the package was removed from the tour (package stays at the hub)
Scheduled for delivery → Deliveredtour_force_endedThe delivery tour was force-ended and the package was marked as delivered
Scheduled for delivery → FailedmissA delivery attempt failed (e.g., driver couldn’t hand over the package)

Out for delivery

out_for_delivery

A package was picked up by a driver and is in transit to the destination now.

Available transitionsTransition name on APITrigger
Out for delivery → Delivereddropoff tour_force_endedThe driver dropped off the package at the destination (or the tour was force-ended after drop-off)
Out for delivery → Failedmiss tour_cancelledA delivery attempt failed or the tour was cancelled while delivering

Delivered

delivered

A package was dropped off at the destination.

Available transitionsTransition name on APITrigger
Delivered → Deliveredtour_cancelled tour_force_endedThe tour was cancelled/force-ended after delivery (package remains delivered)

Ready for collection

ready_for_collection

A package collection from a Hub was requested by a customer.

Available transitionsTransition name on APITrigger
Ready for collection → Ready for collectionremoved_from_tourA collection-related tour assignment was removed (package remains ready for collection)
Ready for collection → At hubrelocateThe package was relocated to another hub
Ready for collection → CollectedcollectThe customer collected the package from the hub
Ready for collection → CancelledcancelThe collection request was cancelled
Ready for collection → FailedmissA collection attempt failed (e.g., package couldn’t be handed over)

Collected

collected

A package was collected from a Hub by a customer

Available transitionsTransition name on APITrigger
Collected → FailedmissA post-collection issue was reported and the collection failed (edge case)

At customs

at_customs

A package was announced to customs, and the clearance process started. You can find the customs-specific statuses in the Status model of Packages in customs article.

Available transitionsTransition name on APITrigger
At customs → At customsrelocateThe package was relocated while remaining in customs processing
At customs → At hubcustoms_approvedCustoms clearance was approved (package released back to hub)
At customs → FailedmissCustoms clearance failed or the package couldn’t be processed at customs

Cancelled

cancelled

A package delivery was cancelled.

Available transitionsTransition name on APITrigger
Cancelled → Cancelledtour_cancelled tour_force_endedA related tour was cancelled/force-ended after the package was already cancelled

Failed

failed

A package couldn't be picked up or dropped off.

Available transitionsTransition name on APITrigger
Failed → Failedmiss tour_cancelled tour_force_endedA retry failed again, or the related tour was cancelled/force-ended while the package was already failed
Failed → CancelledcancelA Dispatcher/Admin cancelled the package after it had failed
Failed → Deliveredforce_deliveryA Dispatcher/Admin force-delivered the package (marked delivered manually)
Failed → CreatedrecoverA Dispatcher/Admin recovered the package back to its initial state
Failed → At hubrecoverA Dispatcher/Admin recovered the package back to a hub state