← Back to product·Simulmedia Switchboard Docs · v1 draft·Concepts / The state machine
Concepts

The state machine

Every order moves through one canonical lifecycle. Wire values: order statuses.

draft submitted validating needs_confirmation confirmed negotiating seller_review placed completed rejected canceled failed document or proposal negotiated or proposal counter partial completes, never stalls from any non-terminal state your gate

What each state means

  • needs_confirmation is where you confirm an artifact before it books. Two workflows park here: the document workflow (the seller parsed your file, confirm its interpretation) and a proposal (the seller returned a plan, confirm it to book). Catalog orders skip it: you ordered exactly what was published. Confirm with POST /orders/{id}/confirm; a satisfied acceptance band confirms a plan for you.
  • negotiating appears on the negotiated workflow and on proposal counters: see Negotiation.
  • seller_review means the seller is approving: a person, or the standing rules that person set (auto-approve thresholds satisfy the same gate and land in the same audit trail, which is what makes instant book possible). Nothing airs without that signature. It can take minutes or hours; silence during the pause is normal.
  • placed means the order is booked: the seller approved it and wrote it into their traffic system, daylocked, with a placement_receipt (the booking receipt) carrying the seller's order ID. The schedule is committed, and the price locked at order time travels with every unit. Booked is not cleared: whether a preemptible unit actually clears is a post-air outcome, covered below.
  • completed is the successful terminal: the flight has run and the order's record is closed. An order that ends with a mixed unit set completes as partial, never a stall; see partial acceptance.

Between placed and completed

Air happens between placed and completed, and results attach to the order as they land: delivery posts in the declared currency, and per-unit outcomes. On preemptible buys, whether a unit actually cleared is only knowable after its air date; the posts and unit results carry that answer, and audience guarantees reconcile against them.

Finer-grained post-air statuses (cleared vs preempted per unit, aired vs delivered) are being refined with design partners. Today the per-unit results and delivery_post artifacts carry those outcomes; switch on status and artifact.name, and treat new substatus values as additive.