Skip to main content

Real Time Streaming Messages

This API provides real-time order & trade responses via a http://socket.io connection.

πŸ—οΈKey Points​

  • Only order and trade responses are streamed here.
  • All other operations like order placement, modification, portfolio info must use their respective APIs.
  • Connection requires fields received from the Login API.

πŸ—οΈ How to connect​

StepDescriptionSample Code / Details
  1. Connect | Establish a socket connection using messageSocketURL received from Login API response. | js const io = require("socket.io-client"); <br>let ioClient = io.connect(url, {transports:['websocket']}); | |
  2. Authenticate (Login) | Send your access_token(jToken) to authenticate the connection. | js ioClient.on("connect", () => { <br> let msgLogin = {"jToken": "your_access_token_here"}; <br> ioClient.emit('loginAPI', msgLogin); <br>}); | |
  3. Subscribe to Data | Listen to "MSG:DATA"event to receive real-time order and trade responses. | js ioClient.on("MSG:DATA", (response) => { <br> console.log('Received:', response); <br>}); | |
  4. Handle Disconnect | Detect disconnections and handle errors gracefully. | js ioClient.on("disconnect", (err) => { <br> console.log("Disconnected:", err); <br>}); |

⚠️Important Note​

  • Use "MessageType" in the response to differentiate message types:
    • "ORD_NRML" = Order Response
    • "TRD_MSG" = Trade Response

🧾Order Response Structure (Key Fields)​

ParameterTypeDescription
AMOOrderIDStringOrder ID for AMO/ EqGTD orders, else blank
Buy_SellString1 = Buy, 2 = Sell
CP_IDString
CliOrderNumberIntegerClient order number (system generated)
DQIntegerDisclose quantity. Specifies the quantity that has to be disclosed to the market e.g 2500
DQ RemainingIntegerDisclose quantity remaining
DaysStringNumber of Days
ExchangeStringExchange for which order is to be placed
ExpiryDateStringExpiry date (for Futures/Options)
GTD Order StatusIntegerGTD Order status
InititatedByStringInitiated from Application
InitiatedByUserIDStringInitiated from User id
InstrumentNameStringInstrument name provided in security information.Valid values are given bellowEquity = blankFuture Index = FUTIDXInterest Rate Future = FUTINTFuture Stock = FUTSTKOption Index = OPTIDXOption Stock = OPTSTKMCX/NCDEX Futures = FUTCOMMCXSpot = COMNCDEXSpot = COMDTYNSE Currency Future = FUTCUR, FUTIRD, FUTIRT, OPTCURNSE Currency Spot = INDEX, UNDCUR, UNDIRD, UNDIRT
LastModifiedTimeDate TimeTime when order was confirmed
LegIndicatorStringBlank Value
ManagerIDStringManager ID
MarketTypeIntegerNormal = 1Auction = 2PreOpen = 3
MessageSequenceNumberStringRunning Message Sequence Number. For order's latest status always consider max sequence number.
MessageTypeStringORD_NRML
ModifiedByStringModified by application
ModifiedByUserIDStringModified by user id
Option_TypeStringOption Type. Appicable for options only.
OrderEntryTimeDate TimeDate and Time will be in 24 Hour Format e.g.: 15Jun2019 15.25.15
OrderNumberStringFor order entry request must be 0. In case of Modification/Cancellation request, this needs to be filled before sending.
OrderOriginalQtyIntegerTotal quantity of the order
OrderPriceIntegerPrice in paise
OrderStatusIntegerCurrent Order Status
OrderTypeIntegerOrder type
OrderValidityStringOrder validity type
PartCodeStringParticipant ID
PendingQtyIntegerQuantity pending to be executed
ProCliString2 β†’ Pro1 β†’ Client
ProductStringProduct type
ReasonStringReason for rejection (if any)
ScripCodeStringScrip code
SeriesStringExchange provide security series
Spread FlagIntegerNormal Order = 0Spread Order = 1
SpreadPriceIntegerSpread Price
StrikePriceIntegerExchange provided Strike price (in multiples of 100). Applicable only for options.
SymbolStringSecurity symbol
TradedQTYStringQuantity traded so far
UCCStringAlias UCC Code
UniqueCodeStringAlphanumeric value with specia characters
UserIDStringExchange UserID
UserRemarksStringUser Remarks

Order response sample:

{
        "AMOOrderID":"",
        "Buy_Sell":"1",
        "CP_ID":"",
        "CliOrderNumber":3,
        "DQ":0,
        "DQRemaining":0,
        "Days":"0",
        "Exchange":"2",
        "ExpiryDate":"30Jun2022",
        "GTDOrderStatus":0,
        "InitiatedBy":"WAVE_MOBILE",
        "InitiatedByUserId":"DEMO31",
        "InstrumentName":"FUTIDX",
        "LastModifiedTime":"14-Jun-2022 11.54.30",
        "LegIndicator":"",
        "ManagerID":"6",
        "MarketType":1,
        "MessageSequenceNumber":"10221640000017828",
        "MessageType":"ORD_NRML",
        "Misc":"",
        "ModifiedBy":"WAVE_MOBILE",
        "ModifiedByUserId":"DEMO31",
        "Option_Type":"XX",
        "OrderEntryTime":"14-Jun-2022 11.54.30",
        "OrderNumber":"1000000000004051",
        "OrderOriginalQty":50,
        "OrderPrice":1583890,
        "OrderStatus":5,
        "OrderType":1,
        "OrderValidity":"1",
        "PartCode":"FTIL",
        "PendingQty":50,
        "ProCli":"1",
        "Product":"M",
        "Reason":"",
        "ScripCode":"56734",
        "Series":"XX",
        "SpreadFlag":0,
        "SpreadPrice":0,
        "StrikePrice":-1,
        "Symbol":"NIFTY",
        "TradedQTY":"0",
        "TriggerPrice":0,
        "UCC":"DEMO31",
        "UniqueCode":"NXWAD00003>6",
        "UserID":"46016",
        "UserRemarks":"1339674869"
}

πŸ“‘Trade Response Structure (Key Fields)​

ParameterTypeDescription
Buy_SellStringOrder side: 1= Buy, 2= Sell
CP_IDStringClient Partner ID (if applicable)
CliOrderNumberIntegerClient/Gateway Order Number (system-generated)
DQStringDisclosed quantity sent to market (e.g., 2500)
DQRemainingStringRemaining disclosed quantity
DaysIntegerNumber of days for GTD/Validity
ExchangeIntegerExchange ID: e.g., 1for NSE, 2for BSE, etc.
ExpiryDateStringContract expiry (for F&O). Format: DDMMMYYYYe.g., 24JUN2024
InitiatedByStringSource of trade (e.g., WAVE_MOBILE, API)
InitiatedByUserIdStringUser ID that initiated the order
InstrumentNameStringInstrument type (e.g., FUTIDX, OPTSTK, COM, etc.)
LegIndicatorStringIndicates leg of strategy orders. Usually blank
ManagerIDIntegerManager/Broker ID
MessageSequenceNumberIntegerSequence number for streaming messages
MessageTypeStringMessage type = "TRD_MSG"(Trade Message)
MiscStringOrder type context (e.g., PO-LMT, SPO-MKT, etc.)
ModifiedByStringApp or platform that last modified the order
ModifiedByUserIdStringUser ID that last modified the order
Option_TypeStringOption type: CE/PE(if applicable)
OrderLastModifiedTimeDateTimeLast time the order was modified
OrderNumberStringUnique order number (used for tracking)
OrderOriginalQtyIntegerOriginal order quantity
OrderPriceIntegerOrder price in paise(e.g., 146000= β‚Ή1460.00)
OrderTimeDateTimeOrder placement time
OrderTypeIntegerType of order (1 = Regular, 2 = SL, etc.)
PartCodeStringParticipant/Broker ID
PendingQtyStringQuantity still pending in the order
ProCliString1= Client, 2= Pro
ProductStringProduct type
QuantityTradedTodayIntegerTotal traded quantity today (including this one)
ScripCodeIntegerScrip code (used internally or by exchange)
SeriesStringSecurity series (e.g., EQ, BE)
SpreadFlagInteger0= Normal order, 1= Spread order
SpreadPriceIntegerSpread price value
StrikePriceIntegerStrike price (for options), in multiples of 100
SymbolStringSecurity symbol (e.g., INFY, NIFTY)
TradeNumberStringUnique trade ID
TradeQtyStringQuantity executed in this trade
TradeTimeDateTimeTime of execution (24-hour format)
TradedPriceStringTrade price in paise(e.g., 146000= β‚Ή1460.00)
UCCStringUser's UCC (Unique Client Code)
UniqueCodeStringUnique internal reference (alphanumeric)
UserIDStringExchange/OMS User ID
UserRemarksStringRemarks added by user or system
  • Prices are in paise (multiply by 0.01 to get INR).
  • Option types and strike price fields are applicable only for options.
  • InstrumentName tells you what kind of security was traded.

🧭Trade Response Sample:​

{
        Buy_Sell":"2",
        "CP_ID":"",
        "CliOrderNumber":11,
        "DQ":"0",
        "DQRemaining":"0",
        "Days":0,
        "Exchange":1,
        "ExpiryDate":"",
        "InitiatedBy":"WAVE_MOBILE",
        "InitiatedByUserId":"DEMO31",
        "InstrumentName":"",
        "LegIndicator":"",
        "ManagerID":6,
        "MessageSequenceNumber":10221640000024290,
        "MessageType":"TRD_MSG",
        "Misc":"",
        "ModifiedBy":"WAVE_MOBILE",
        "ModifiedByUserId":"DEMO31",
        "Option_Type":"",
        "OrderLastModifiedTime":"14-Jun-2022 14.03.58",
        "OrderNumber":"1100000000085242",
        "OrderOriginalQty":1,
        "OrderPrice":146000,
        "OrderTime":"14-Jun-2022 14.03.58",
        "OrderType":1,
        "PartCode":"FTIL",
        "PendingQty":"0",
        "ProCli":"1",
        "Product":"M",
        "QuantityTradedToday":1,
        "ScripCode":1594,
        "Series":"EQ",
        "SpreadFlag":0,
        "SpreadPrice":0,
        "StrikePrice":0,
        "Symbol":"INFY",
        "TradeNumber":"50024851",
        "TradeQty":"1",
        "TradeTime":"14-Jun-2022 14.03.58",
        "TradedPrice":"146000",
        "UCC":"DEMO31",
        "UniqueCode":"NXWAD00011>6",
        "UserID":"37652",
        "UserRemarks":"1339682638"
}