Handle It docs

Lifecycle and outcomes

A task has a lifecycle and an outcome. The API reports one word: once there is an outcome, that is the status you get back. The raw lifecycle value stays available as lifecycle for debugging, so you never have to reconcile two words that disagree.

Lifecycle

StatusCan move to
receivedcancelled, failed, planned
plannedcancelled, failed, routing
routingawaiting_developer, cancelled, executing, failed
executingawaiting_business, awaiting_developer, cancelled, completed, failed
awaiting_businessawaiting_developer, cancelled, completed, executing, failed
awaiting_developerawaiting_business, cancelled, completed, executing, failed
completedterminal
cancelledterminal
failedterminal

Outcomes

OutcomeCarries evidence
alternative_offeredyesNot what you asked for, but they offered something else.
cancellednoYou cancelled it, or we did on your behalf.
confirmedyesThe business confirmed. Evidence carries their own words.
declinedyesThe business said no.
deliveredyesA structured order was fulfilled. The merchant sent the delivered event.
failednoWe could not complete it. The reason is in the event log.
no_responsenoNobody answered before the task went stale. Nothing to quote.
rejectedyesThe merchant rejected the order or booking outright.
waitlistedyesThey put you on a waiting list.

Merchant progress

While a structured order is in flight, merchant_status mirrors the merchant's own step (accepted, preparing, out_for_delivery, delivered) with merchant_status_at. That is what lets an agent say "your order is out for delivery" instead of "awaiting business".