Skip to main content

Request lifecycle

The commercial pilot persists one fail-closed state machine per request.

awaiting_approvals -> approved -> authorized -> executed
| |
+-> rejected +-> expired

validation_completed may be appended as an evidence event while the request remains authorized. It proves an external validation receipt was produced; it does not claim that a transaction was constructed, broadcast, or confirmed.

Transition ownership

TransitionRequired roleMain checks
SubmitInitiatorExact policy scope, amount, decimals, destination, idempotency
ApproveEligible approverActor eligibility, no duplicate, initiator separation
RejectEligible approverNon-terminal request and recorded reason
AuthorizeSecurity administratorApproval threshold, exact policy and evidence binding
ExecuteExecutorValid certificate, validity window, adapter idempotency
Inspect/exportAuditor or authenticated operatorNo state mutation

Retry and idempotency

  • The request ID is derived from tenant and idempotency context.
  • An exact retry returns the existing record.
  • Changed business fields under the same idempotency key fail with conflict.
  • External adapters must reconcile by stable request ID before submitting again.
  • Terminal states cannot be approved, rejected, authorized, or executed again.

Failure model

ClassTypical API resultOperator response
Invalid or out-of-policy input400Correct the request; do not retry unchanged
Missing or invalid credential401Re-authenticate with the correct private credential
Wrong role or ineligible actor403Route to the role named by the policy
Unknown request404Confirm request ID and environment
Idempotency or state conflict409Fetch the existing record and reconcile
Provider uncertaintyRequest remains reconcilableQuery provider/chain state before any resubmission
Authorization expiryTerminal expired evidenceStart a new request under current policy

Exact error response stability is not yet guaranteed across release candidates. Partner integrations should branch on HTTP class and stable request state, then record the bounded diagnostic message for review.