Skip to main content

Real-time Order Updates

Submission lifecycle events push on your private account:fills#<accountId> channel — the same subscription that carries fills — as kind: "order" payloads. One arrives on every status change: rest, amend, cancel, expiry, and each settlement-driven transition. Connection and auth are covered in Realtime Socket.

{
"kind": "order",
"orderId": "77a083a9-ad84-4191-837b-630f3da9ea86",
"status": "RESTING",
"action": "UPDATED",
"reason": "AMENDED",
"direction": "BUY",
"orderType": "LIMIT",
"timeInForce": "GTC",
"qty": 2,
"allInPriceCents": 450,
"bookPricesCents": [439],
"filledQuantity": 0,
"remainingQuantity": 2,
"assetConfigurationIds": ["315bc6db-3f16-49ec-b649-8be3b8753fb7"],
"keyIds": ["4a9a2cca-c05f-5474-9979-428dc6f41107"],
"marketIds": ["2406c582-64f0-4192-a7f2-f2cb70e5d652"],
"externalReferenceId": "docs-demo-single",
"updatedAt": "2026-09-12T18:04:37.551Z"
}
FieldDescription
orderIdThe submission id — matches submission.id on the API
statusThe new OrderSubmissionStatus
actionCREATED, UPDATED, CANCELLED, or EXPIRED
reasonWhy — CREATED, EXECUTION_STARTED (matching), EXECUTION_ROLLUP (matched: rested, crossed, or cancelled per time in force), MAKER_FILL, SETTLEMENT_ROLLUP, AMENDED, USER_CANCELLED, BULK_CANCELLED, REJECTED, FOK_UNFILLABLE, MARKET_HALTED, MARKET_CONFIG_REPRICED, …
errorCodePresent when reason is REJECTED
bookPricesCentsThe base prices the order rests at, as the book shows them — distinct from the fee-inclusive allInPriceCents
filledQuantity / remainingQuantityRunning matched counters, as on getOrderSubmission
settledQuantityUnits delivered — on SETTLEMENT_ROLLUP events; trails filledQuantity while a leg is in flight

Events can arrive out of order — a RESTING roll-up can land before the EXECUTING that preceded it. Apply events by updatedAt per orderId and discard anything older than what you hold. Reconcile by reading listOrderSubmissions after subscribing and after any reconnect.

The channel also carries an occasional kind: "order" message with reason: "BOOK_POSITION" and no orderId — a hint that your top-of-book standing on a leaf may have changed. Ignore it unless you render isTopOfBook, in which case re-read.