Skip to main content
An Errand moves through a sequence of states as the agent qualifies the intent, searches, validates candidates, waits for approval, optionally monitors conditions, and executes. On the wire an Errand is the IPA (Intelligent Purchase Authorisation) lifecycle — the routes, states, and events below use the IPA identifiers unchanged. This page is the state-machine reference. For the API surface and request/response shape, see the Errand guide; for the concept and composition model, see Errands. An Errand has three product phases that map onto the underlying states: Terminal states (completed, failed, cancelled, expired) close the Errand out of whichever phase it was in.

State diagram

Status reference

How transitions map to the public API

The following response fields are populated as the Errand advances: The _links map on every response declares which actions the current state allows:

Event stream

Every state change is recorded as an event. Fetch them with GET /v0/user/ipa/{ipa_id}/events, or embed them via expand=events. Event types include ipa.status_change, ipa.clarification_sent, ipa.clarification_received, ipa.approval_requested, ipa.approval_received, ipa.workflow_started, ipa.workflow_completed, ipa.workflow_failed, ipa.cancelled, ipa.workflow_resumed, ipa.monitor_started, and ipa.price_checked.