Skip to content

Order Update WebSocket

Receive real-time order execution events — fills, rejections, modifications, and status changes — over a persistent WebSocket connection.

Connection

Order updates connect automatically when you call client.ws.connect():

ts
await client.ws.connect();

Listen for Updates

ts
client.ws.orders.on("order", (order) => {
  console.log(order.status, order.averageTradedPrice, order.tradedQty);
});

Order Tracking

The OrderTracker resolves a placed order to its fill using order-update events instead of polling:

ts
import { OrderTracker } from "@nemesis-oss/dhanhq-sdk";

const tracker = new OrderTracker();

client.ws.orders.on("order", (state) => tracker.onOrderUpdate(state));

// Register the waiter before placing
const correlationId = "entry-001";
const settled = tracker.waitFor(correlationId, { timeoutMs: 60_000 });

await client.orders.place({ correlationId, /* ... */ });

const fill = await settled;
console.log(fill.status, fill.filledQuantity, fill.averagePrice);

Full Example

See examples/ws-execution.ts for the complete order placement → fill tracking → exit signal loop.

Community project — not affiliated with Dhan. MIT License.