Order Status
Order and session status values and their meanings.
Order Status
const OrderStatus = {
SESSION_CREATED: 'SESSION_CREATED',
SIGNAL_SENT: 'SIGNAL_SENT',
SIGNAL_MINED: 'SIGNAL_MINED',
PAYMENT_SENT: 'PAYMENT_SENT',
PROOF_VERIFIED: 'PROOF_VERIFIED',
PROOF_SUBMITTED: 'PROOF_SUBMITTED',
FULFILL_SUBMITTED: 'FULFILL_SUBMITTED',
FULFILLED: 'FULFILLED',
CANCELLED: 'CANCELLED',
EXPIRED: 'EXPIRED',
FAILED: 'FAILED',
} as const;
Status Descriptions
| Status | Description |
|---|---|
SESSION_CREATED | Initial state when order is created |
SIGNAL_SENT | Intent transaction submitted to blockchain |
SIGNAL_MINED | Intent confirmed on-chain, awaiting payment |
PAYMENT_SENT | User indicated they sent fiat payment |
PROOF_VERIFIED | Payment proof verified off-chain |
PROOF_SUBMITTED | Proof submitted to blockchain |
FULFILL_SUBMITTED | Fulfillment transaction submitted |
FULFILLED | Payment complete, USDC transferred |
CANCELLED | Order cancelled by user or system |
EXPIRED | Order expired before completion |
FAILED | Order failed (verification or tx error) |
Status Flow
┌─────────────────┐
│ SESSION_CREATED │
└────────┬────────┘
↓
┌─────────────────┐
│ SIGNAL_SENT │
└────────┬────────┘
↓
┌─────────────────┐
┌─────│ SIGNAL_MINED │─────┐
│ └────────┬────────┘ │
↓ ↓ ↓
┌─────────┐ ┌─────────────┐ ┌─────────┐
│ EXPIRED │ │ PAYMENT_SENT│ │CANCELLED│
└─────────┘ └──────┬──────┘ └─────────┘
↓
┌─────────────────┐
│ PROOF_VERIFIED │
└────────┬────────┘
↓
┌─────────────────┐
│ PROOF_SUBMITTED │
└────────┬────────┘
↓
┌──────────────────┐
┌─────│FULFILL_SUBMITTED │─────┐
│ └────────┬─────────┘ │
↓ ↓ ↓
┌─────────┐ ┌───────────┐ ┌─────────┐
│ FAILED │ │ FULFILLED │ │ FAILED │
└─────────┘ └───────────┘ └─────────┘
Terminal States
| Status | Is Terminal | Description |
|---|---|---|
FULFILLED | Yes | Success - payment complete |
CANCELLED | Yes | User or system cancelled |
EXPIRED | Yes | Timed out |
FAILED | Yes | Error occurred |
Session Status
const SessionStatus = {
CREATED: 'CREATED',
ACTIVE: 'ACTIVE',
COMPLETED: 'COMPLETED',
EXPIRED: 'EXPIRED',
CANCELLED: 'CANCELLED',
} as const;
Status Descriptions
| Status | Description |
|---|---|
CREATED | Session created, awaiting user |
ACTIVE | User started checkout, order in progress |
COMPLETED | Payment successful |
EXPIRED | Session expired (24 hours) |
CANCELLED | User cancelled checkout |
Proof Attempt Status
const ProofAttemptStatus = {
PENDING: 'PENDING',
VERIFYING: 'VERIFYING',
VERIFIED: 'VERIFIED',
REJECTED: 'REJECTED',
SUBMITTED: 'SUBMITTED',
FULFILLED: 'FULFILLED',
TX_FAILED: 'TX_FAILED',
} as const;
Status Descriptions
| Status | Description |
|---|---|
PENDING | Proof received, awaiting processing |
VERIFYING | Proof being verified |
VERIFIED | Proof verified successfully |
REJECTED | Proof verification failed |
SUBMITTED | Proof submitted to blockchain |
FULFILLED | Transaction confirmed, complete |
TX_FAILED | Blockchain transaction failed |
Webhook Delivery Status
const WebhookDeliveryStatus = {
PENDING: 'PENDING',
DELIVERED: 'DELIVERED',
FAILED: 'FAILED',
} as const;
| Status | Description |
|---|---|
PENDING | Awaiting delivery or retry |
DELIVERED | Successfully delivered (2xx response) |
FAILED | All retry attempts exhausted |