Skip to main content
Every transaction submitted to Qustody flows through a deterministic state machine with 14 states. The machine is enforced server-side: only legal transitions are accepted, and every transition emits a webhook event you can subscribe to.

State diagram

All 14 states

SUBMITTED

Accepted by the API; awaiting policy and screening evaluation.

QUEUED

Held briefly because of an idempotency conflict or rate limit.

PENDING_AUTHORIZATION

A policy rule of type REQUIRE_APPROVAL matched. A human approver must decide.

PENDING_AML_SCREENING

Compliance screening is in flight; the transaction is paused.

APPROVED

Authorization granted; about to enter signing.

PENDING_SIGNATURE

Awaiting an external post-quantum signature over the signing payload.

SIGNED

Signature received and verified against the registered wallet’s public key.

BROADCASTING

Raw transaction assembled and being broadcast to Quantum Chain nodes.

CONFIRMING

Included on-chain; counting confirmations to the configured depth.

COMPLETED

Confirmed with sufficient depth. Terminal.

FAILED

Permanent failure during signing, broadcast, or confirmation. Terminal.

REJECTED

Denied by the policy engine or by an approver. Terminal.

CANCELLED

Cancelled by the caller before broadcast. Terminal.

BLOCKED

Compliance screening flagged or blocked the transaction. Terminal.

Active vs terminal

  • Active (9): SUBMITTED, QUEUED, PENDING_AUTHORIZATION, PENDING_AML_SCREENING, APPROVED, PENDING_SIGNATURE, SIGNED, BROADCASTING, CONFIRMING.
  • Terminal (5): COMPLETED, FAILED, REJECTED, CANCELLED, BLOCKED. Once a transaction reaches a terminal state it never changes again.

Transition table

POST /v1/transactions/{id}/cancel is only valid from SUBMITTED, PENDING_AUTHORIZATION, APPROVED, or PENDING_SIGNATURE. Once a transaction is SIGNED, BROADCASTING, or CONFIRMING, it cannot be cancelled.

Webhook events per state

The full list of 12 webhook event types is documented in Webhooks.

Integration pattern

Use transaction.status_changed to track all intermediate transitions, transaction.completed / transaction.failed for final outcomes, approval.required to drive approver UIs, and screening.* to surface compliance state in your dashboards.