Skip to main content
Each order carries a status. Over the API and in webhooks, the status is the lowercase value in the API value column below (for example in_transit). Statuses progress as the parcel is printed, scanned, and delivered — with separate branches for returns and exceptions.

Happy path

1

draft

The order was created and accepted. No label scanned yet.
2

expected

A label has been printed. Sparqle is expecting the parcel to enter the network.
3

in_transit

The parcel has had its first carrier scan and is moving through the network.
4

out_for_delivery

In the bike, en route from the local depot to the recipient.
5

completed

Delivered. This is the terminal success state.

All statuses

API valueMeaning
draftOrder created and accepted.
expectedLabel printed; parcel expected in the network.
in_transitFirst scan received; moving through the middle mile.
out_for_deliveryEn route from the local depot to the recipient.
awaiting_next_attemptA delivery attempt was made; another is scheduled.
at_pickup_pointAvailable for collection at a pickup point.
completedDelivered. Terminal success state.
failedDelivery failed, including after second attempts.
in_return_transitBeing returned to sender.
returnedReturned and received back at the origin address.
cancelledCancelled before dispatch.
rejectedRejected (for example, not serviceable).
address_not_foundThe delivery address could not be resolved.
inactiveLabel printed but never scanned within a reasonable window.
missingPreviously scanned but cannot currently be located.
lostA missing parcel confirmed lost. Terminal.
errorAn internal processing error occurred.

Cancelling an order

You can cancel an order using PATCH /orders/cancel/{orderId}. Succesfull cancellation depends on the order status. Up until in_transit every order can be cancelled. Once a parcel is out_for_delivery or beyond, it may depend on the specific order if it can be cancelled. This can not be inferred from the API.
Terminal states (completed, returned, lost, cancelled) won’t change again.