Skip to Main Content
WSt: 'om' (automatic on connect)

Order Update Feed

Real-time order and fill events pushed automatically over the WebSocket connection — the live counterpart to polling Order Book. No separate subscribe step is required.

Overview

Once the connect handshake in WebSocket Overview succeeds, order-lifecycle events for the logged-in account — acknowledgments, fills, rejections, cancellations — start arriving automatically as t: "om" messages. This should be the primary source of truth for order state in any live strategy; Order Book and Order History are for reconciliation, not the live path.

No subscribe frame neededUnlike touchline or depth, order updates aren't opt-in per instrument — there's nothing to send here beyond the initial connect. If you don't want to handle these messages, filter them client-side by checking t === "om" on incoming frames.

Update messages (t: 'om')

json
{
  "t": "om",
  "norenordno": "24121500001234",
  "uid": "AB1234", "actid": "AB1234",
  "exch": "NSE", "tsym": "RELIANCE-EQ",
  "qty": "1", "prc": "1272.30", "pcode": "C",
  "status": "COMPLETE",
  "reporttype": "Fill",
  "trantype": "B", "prctyp": "LMT", "ret": "DAY",
  "fillshares": "1", "avgprc": "1272.30",
  "fltm": "09:20:41 15-12-2024", "flid": "8841",
  "flqty": "1", "flprc": "1272.30",
  "exchordid": "250620000000343421",
  "remarks": "my_order_001"
}
FieldDescription
tom — represents an order update.
norenordnoNoren order number.
uid / actidUser ID / Account ID.
exch / tsymExchange and trading symbol.
qty / prcOrder quantity / order price.
pcodeProduct code (e.g. C for CNC, M for margin/NRML, I for intraday — see Product Type values).
statusOrder status: New, Replaced, Complete, Rejected, etc.
reporttypeThe specific lifecycle event this message represents — see Report Type values (Fill, Rejected, Canceled, and others).
trantypeBuy or sell.
prctypOrder price type: LMT, MKT, SL-LMT, SL-MKT.
retRetention type: DAY, EOS, IOC, etc.
fillsharesTotal filled shares for this order.
avgprcAverage fill price.
fltm / flid / flqty / flprcFill time / fill ID / fill quantity / fill price — present only when reporttype is Fill.

Best practices

  • Drive strategy state transitions off reporttype, not just status — two different events can leave an order in the same status while meaning very different things for your position tracking.
  • Process messages on a dedicated queue/thread separate from your order-placement logic, per the general WebSocket Overview guidance — a slow handler here should never block new order submissions.
  • Reconcile against Order Book on every reconnect — events that occurred while disconnected are not replayed, and there's no subscribe step to "catch up" with.

Notes

This is the same event history exposed via REST on Order History, pushed live instead of pulled — build primary logic on this feed and use the REST endpoint only for after-the-fact debugging.