Skip to main content

order

privatechannel: orderwss://api.staging.sphx.io/v1/ws

The authenticated account's order lifecycle (0.11.0): accepted (fully filled / rested / IOC-canceled), rejected, canceled, and cancel_rejected, straight off the engine egress. Fills still arrive on fill. Requires bearer auth on the upgrade. No subscribe params (auto-scoped).

Subscribe​

{ "op": "subscribe", "channel": "order" }

No params — the channel auto-scopes to the authenticated account.

Requires a bearer token on the upgrade request.

Events​

order​

FieldTypeRequiredDescription
order_idinteger · uint64✓
statusaccepted_fully_filled · accepted_rested · accepted_ioc_canceled · rejected · canceled · cancel_rejected · pending_approval · approval_approved · approval_rejected✓The lifecycle transition. Unknown values must fail safe — consult the order-by-id REST lookup. The three approval values (0.14.0) are edge-originated frames for orders parked by require_human credentials; they carry pending_id, order_id 0 (or the submitted order's id on approval), and event_seq 0.
instrument_idinteger · int64—Present on accepted_* and rejected (OrderCanceled carries no instrument on the wire).
filled_countinteger—accepted_* only.
resting_countinteger—accepted_* only.
reject_reasonstring—rejected — the POST /v1/orders reject vocabulary; cancel_rejected — unknown_order_id | wrong_account; approval_approved — the engine's reject when the approved order was refused.
pending_idinteger · int64—Approval frames (0.14.0) — the parked order's id (GET /v1/orders/pending).
credential_idinteger · int64—Approval frames — the agent credential that parked the order.
agentstring—pending_approval — the agent descriptor name, when set.
notional_uusdcinteger · int64—pending_approval — the scope's notional for the order.
expires_at_nsinteger · int64—pending_approval — when the undecided row lapses.
outcomestring—approval_approved — the submitted order's engine status.
event_seqinteger · int64✓Cluster sequence number — monotonic; drives gap detection and REST/WS joins.
ts_nsinteger · int64✓Aeron Cluster timestamp — MILLISECONDS despite the name.
sequencer_correlation_idinteger · int64✓
Example frame
{
"channel": "order",
"event": "order",
"data": {
"order_id": 91,
"instrument_id": 1011,
"status": "accepted_rested",
"filled_count": 3,
"resting_count": 7,
"event_seq": 4211,
"ts_ns": 1779111582959,
"sequencer_correlation_id": 42
}
}