ODIN Rest API (10.0.5.0)

Download OpenAPI specification:Download

ODIN Rest API allows the developer to create a custom trading application for Web or Mobile communicating with ODIN Order Management System (OMS). This REST based API allows user to develop the following functionalities for Trading Application / Portal.

Salient Features:

  • User Authentication and Profile management
  • Order Management
  • Portfolio information management

This step-by- step guide will assist you through the entire flow of API implementation; right from authentication, to handle the request and response structure of the API.

Change History

The changes made in the document along with the version no. and release dates.

Version No. Description Revised Date
10.0.5.0API version updated to match with exchange approved version. No changes in the API.31-10-2025

Getting Started

ODIN API is a set of REST APIs that provide the platform along with required data to build a Trading Platform, the API specifications is used for communicating with ODIN API Gateway. API specifications are based on the REST protocol that covers the functionalities which are need to develop a trading application like Login / Logout, Order Management (Place Order, Modify Order, Cancel order), Reports like Order Book, Trade Book, Position, Holding & Limit, etc. The REST API supports JSON based request and responses along with data compression.

Basic Flow to Implement the APIs:

STEP 1:Make a Login API call using login credential to obtain the access token.
STEP 2: Use access token obtained from Login API in all the subsequent API calls.
STEP 3: Setting obtained access token and content-type is shown below.

Header:
Content-Type: application/json
Authorization: Bearer eyJ1c2VySUQiOiJSVVBFU0giLCJpYXQiOjE1NTIxMjIwOTEsImV4cCI6MTU1MjIwODQ5MX0

Response Structure

All GET and DELETE request parameters go as query parameters, and POST and PUT request parameters as json (application/json) parameters, responses from the API are always JSON. Any non-alphanumeric character should be URL encoded in query string and path parameters.

Successful Request

All responses from the API server are in JSON format with the content-type application/json unless explicitly stated otherwise. A successful 200 OK response always has a JSON response body with a status as success. The data key contains the full response payload.

HTTP/1.1 200 OK 
Content-Type: application/json
{
"status": "success",
"code": "",
"message": "",
"data": "{}"
}


Failed Request

A failed response is preceded by the corresponding 40x or 50x HTTP header. The status key in the response contains the value error. The message key contains a textual description of the error and code contains the unique error code. The errors key contains fields breakdown of validation errors for POST & Put requests.
HTTP/1.1 500 Server error 
Content-Type: application/json
{
"status": "error",
"code": "",
"message": "",
"errors": "[]"
}

Data types
Values in JSON responses are of types string, integer, number, or bool.
Timestamp (datetime) strings in the responses are represented in the default date format yyyy-mm-dd HH:mm:ss e.g., 2016-01-25 13:33:42.

Exceptions and Errors

The HTTP Status Codes used by the RESTful API.

HTTP Error CodeDescription
400Bad Request - Missing or bad request parameters or values. Error message will indicate which one and why.
401Unauthorized - The access token provided is expired, revoked, malformed, or invalid. Client should refresh relogin and then try again.
404Not Found - Request resource was not found.
405 Method Not Allowed - Request method (GET, POST etc.) is not allowed on the requested endpoint
500 Internal Server Error - API is not working as expected. The request is probably valid but needs to be requested again later.
503Service Unavailable - The API endpoint is down.

User

The User APIs allows to generate access token (sessionid) using the client’s Login credentials. Additionally, user API, has calls for knowing User profile and fund balance summary.

Send-otp

This call can be used in case if the client has forgotten the password or he wants to register TOTP and OTP is to be sent on the registered mobile number.

Request Body schema: application/json
user_id
required
string

User Id to be in CAPITALISED only

api_key
required
string

API key provided during subscription

source
required
string
Enum: "WEBAPI" "MOBILEAPI"

Login source of user

Responses

Request samples

Content type
application/json
{
  • "user_id": "TEST1",
  • "api_key": "aasdszzzzz11",
  • "source": "WEBAPI"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "OTP sent to reset Password"
}

Login

This API needs to be used for signing-in to the application using login credentials. A successful sign-in would return an ‘access token’ and a 'broadcast_access_token' in the response.
'access_token' needs to be included in all subsequent API invocations as part of http header 'Authorization' token.
'broadcast_access_token' would be required for establishing a connection with the feed endpoint ('broadCastSocket' received in the response). Kindly refer Price Feed API for further details.

login_typepasswordsecond_auth_typesecond_auth
PASSWORDpasswordREGISTERNot Required
TOKENregister_tokenOTP/TOTP/FINGERPRINTOTP value/TOTP value/Registered UDID
PASSWORDpasswordOTP/TOTP/FINGERPRINTOTP value/TOTP value/Registered UDID
MPINMPIN RegisteredOTP/TOTP/FINGERPRINTOTP value/TOTP value/Registered UDID
To get second factor authentication details of user, "REGISTER" can be used in second_auth_type field, which validates password field and return register_token that can be used as "TOKEN" login type with second factor after registration.
Request Body schema: application/json
user_id
required
string

User Id to be in CAPITALISED only

login_type
string
Default: "PASSWORD"
Enum: "PASSWORD" "MPIN" "FINGERPRINT"

Login type, whether user is login with password, MPIN or fingerprint and respectively need to pass value in password field.

password
required
string

Password/MPIN/Fingerprint to validate

second_auth_type
string
Enum: "OTP" "TOTP" "FINGERPRINT" "REGISTER"

Second factor authentication type, and need to pass value in second_auth field.

second_auth
required
string

Two factor authentication credentials

api_key
required
string

API key provided during subscription

source
required
string
Enum: "WEBAPI" "MOBILEAPI"

Login source of user

Responses

Request samples

Content type
application/json
{
  • "user_id": "TEST1",
  • "login_type": "PASSWORD",
  • "password": "Xyz@123",
  • "second_auth_type": "TOTP",
  • "second_auth": "222396",
  • "api_key": "aasdszzzzz11",
  • "source": "WEBAPI"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success message",
  • "data": {
    }
}

Logout

The Logout call terminal session with Gateway. Thus, API session is destroyed.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success message"
}

Validate Session

This call would validate the access token.

header Parameters
Authorization
string
Example: {{access_token}}

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Session verified.",
  • "data": "{\"status\":\"false\",\"message\":\"TRUE\",\"dropped\":\"true\"}"
}

Balance

This API can be used to retrieve the latest balance with broker for allowed segments.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success message",
  • "data": {
    }
}

Profile

Use this API to retrieve User details such as name, email, mobile no and other relevant details. The data will be in encrypted format. The methodology to decrypt and decryption key will be same as shared on mail.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "User profile data successfully fetched",
  • "data": "AXRQK4JIN1OYG1+TiFsG0n1lPbic96bfhaLYs1kTNpi2EqJVoxQ+g/roX4m3kxhE7fHJjrp1rEXxNEh51xCdxDnjg7dDl5m93XADPQkm+iMsLTP33absjCfgp+rM1nise7peEgAlCq0hA5mDN4QesmMvGjOVkbfoDxz8IoY4okM="
}

Order

This section provided to information of API calls to do the order management i.e. place fresh order, modify or cancel already submitted valid orders. Retrieve the order and trade book.
Using Order API, various type of orders Intraday, Delivery, Bracket Order, Cover order, etc. can be placed. Order type here is used as Product Type in System. Kindly refer to the respective API call for more detail.

Global Constants
Here are some of the constants enum values used for placing order.

ParamsValuesDescription
product_typeINTRADAYIt consists of one leg only. Open orders will be squared off automatically before market close.
DELIVERYOrder position will be carried over to next day under holding.
BTSTBuy today sell tomorrow. It will be squared off automatically before next day market close.
COVERIt consists of two legs. MAIN_LEG which is market order and SL_LEG which will be square off stop loss order of MAIN_LEG. Open orders will be squared off automatically before market close.
BRACKETIt consists of three leg order. MAIN_LEG which is placed as Market or Limit, SL_LEG which is square off stop loss order and PROFIT_LEG which is square off order.
Open orders will be squared of automatically before market close.
MTF Margin Trading or Margin Trading Facility (MTF) is a facility provided by brokers to their clients in which the client does not have to pay full amount for carrying overnight positions.
order_typeRLRegular limit order.
RL-MKTRegular market order.
SLStoploss limit order.
SL-MKTStoploss market order.
validityDAYOrder valid for the same day.
IOCOrder valid only for immediate execution else cancelled.
GTDOrder valid for specified number of days.
GTCOrder valid until user cancels the order.
EOSOrder valid for the specific session.
order_statusPENDINGOrder is pending or partially executed at exchange.
EXECUTEDOrder is fully executed at exchange.
CANCELLEDOrder is cancelled at exchange.
OMS_XMITTED/ OMSXMITTEDOrder is received by OMS but not submitted to exchange.
OMS_REJECT/ OMSREJECTOrder is rejected by OMS.
ORDER_ERROR/ ORDERERROROrder is not valid, rejected by exchange.
ADMIN_REJECT/ ADMINREJECTOrder is rejected by OMS Admin.
EXCHANGE_XMITTED/ EXXMITTEDOrder is submitted to exchange, but confirmation is not received.
AMO_SUBMITTED/ AMOACCEPTEDAMO order is received by OMS.
AMO_CANCELLED/ AMOWITHDRAWNAMO order is cancelled.

Place Order

The Place order API lets you place a new order.

Request Body schema: application/json
required
object

Scrip information can be sent in 2 ways. either by sending exchange and scrip token or by sending scrip details i.e. exchange, symbol, series, expiry, strike price & option type.

transaction_type
required
string

Order is BUY or SELL.

product_type
required
string

Product type of the order.

order_type
required
string

Type of order.

quantity
required
integer

Number of quantity to transact.

price
number
Default: 0

Price at which order will be placed

trigger_price
number

Price at which order will be triggered applicable for Order Type as Stop Loss Limit or Stop Loss Market.

disclosed_quantity
integer

Number of quantity to be disclosed to the market.

validity
string
Default: "DAY"

Order validity

validity_days
integer

Number of days order needs to be carried ahead for validity GTD orders.

is_amo
boolean
Default: false

Whether order is an AMO order or not?

order_identifier
string <= 8 characters

An optional field to apply to an order to track it.

part_code
string

Participant code

algo_id
string

Algo id for strategry generated orders

strategy_id
string

Strategy id for strategry generated orders

vender_code
string

Vender code for inhouse application

Responses

Request samples

Content type
application/json
{
  • "scrip_info": {
    },
  • "transaction_type": "BUY",
  • "product_type": "DELIVERY",
  • "order_type": "RL",
  • "quantity": 50,
  • "price": 100,
  • "trigger_price": 0,
  • "disclosed_quantity": 25,
  • "validity": "DAY",
  • "is_amo": false,
  • "order_identifier": "108108108"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success Message"
}

Modify Order

The Modify order API lets you modify a pending order.

path Parameters
exchange
required
string

Exchange segment

order_id
required
string

Order id. It must be URL encoded as it contains special characters.

Request Body schema: application/json
order_type
required
string

Type of order.

quantity
required
integer

Number of quantity to transact.

traded_quantity
required
integer

Cumulative traded quantity of the order. Data to be passed in this field is available in order book response.

price
number
Default: 0

Price at which order will be placed

trigger_price
number

Price at which order will be triggered applicable for Order Type as Stop Loss Limit or Stop Loss Market.

disclosed_quantity
integer

Number of quantity to be disclosed to the market.

validity
string
Default: "DAY"

Order validity

validity_days
integer

Number of days order needs to be carried ahead for validity GTD orders.

Responses

Request samples

Content type
application/json
{
  • "order_type": "RL",
  • "quantity": 50,
  • "traded_quantity": 50,
  • "price": 0,
  • "trigger_price": 0,
  • "disclosed_quantity": 25,
  • "validity": "DAY"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success Message"
}

Cancel Order

The Cancel order API lets you cancel a pending order.

path Parameters
exchange
required
string

Exchange segment

order_id
required
string

Order id. It must be URL encoded as it contains special characters.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success Message"
}

Place Cover Order

A cover order is a two-legged order. First leg is market order and second leg is stop loss order.

Request Body schema: application/json
required
object

Scrip information can be sent in 2 ways. either by sending exchange and scrip token or by sending scrip details i.e. exchange, symbol, series, expiry, strike price & option type.

transaction_type
required
string

Order is BUY or SELL.

object
object
order_identifier
string <= 8 characters

An optional field to apply to an order to track it.

part_code
string

Participant code

algo_id
string

Algo id for strategry generated orders

strategy_id
string

Strategy id for strategry generated orders

vender_Code
string

Vender code for inhouse application

Responses

Request samples

Content type
application/json
{
  • "scrip_info": {
    },
  • "main_leg": {
    },
  • "stoploss_leg": {
    },
  • "order_identifier": "108108108"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success Message"
}

Modify Cover Order

The Modify cover order API lets you modify a pending cover order.

path Parameters
exchange
required
string

Exchange segment

order_id
required
string

order id, It must be URL encoded as it contains special characters.

Request Body schema: application/json
object
object

Responses

Request samples

Content type
application/json
{
  • "main_leg": {
    },
  • "stoploss_leg": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success Message"
}

Cancel Cover Order

The Cancel cover order API lets you cancel a pending cover order.

path Parameters
exchange
required
string

Exchange segment

order_id
required
string

Order id. It must be URL encoded as it contains special characters.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success Message"
}

Place Bracket Order

Bracket order is three-legged order. Along with the execution of main leg order, the system places two more orders i.e. profit leg and stoploss leg. It allows traders to place an order along with Stop loss and Profit order in single request.

Request Body schema: application/json
required
object

Scrip information can be sent in 2 ways. either by sending exchange and scrip token or by sending scrip details i.e. exchange, symbol, series, expiry, strike price & option type.

transaction_type
required
string

Order is BUY or SELL.

object
object
object
order_identifier
string <= 8 characters

An optional field to apply to an order to track it.

part_code
string

Participant code

algo_id
string

Algo id for strategry generated orders

strategy_id
string

Strategy id for strategry generated orders

vender_Code
string

Vender code for inhouse application

Responses

Request samples

Content type
application/json
{
  • "scrip_info": {
    },
  • "transaction_type": "BUY",
  • "main_leg": {
    },
  • "stoploss_leg": {
    },
  • "profit_leg": {
    },
  • "order_identifier": "108108108"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success Message"
}

Modify Bracket Order

The Modify bracket order API lets you modify a pending bracket order. The expected parameter in the API order_id should be the main leg order id (as received in response from place bracket order API).

path Parameters
exchange
required
string

Exchange segment

order_id
required
string

Order id. It must be URL encoded as it contains special characters.

Request Body schema: application/json
object
object
object
object

Responses

Request samples

Content type
application/json
{
  • "main_leg": {
    },
  • "stoploss_leg": {
    },
  • "profit_leg": {
    },
  • "fields_modified": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success Message"
}

Exit Bracket Order

The exit bracket order API lets you exit the that particular order of a user.

path Parameters
exchange
required
string

Exchange segment

order_id
required
string

Order id

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success Message"
}

Trade book

The Trade Book API lets you fetch list of trades executed of current day by the user

query Parameters
offset
required
integer

Specifies the page number of the collection to be displayed

limit
required
integer

Limits the number of items on a page

order_id
string

Pass order id to filter records based on order id. It must be URL encoded as it contains special characters.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success message",
  • "data": {
    },
  • "metadata": {
    }
}

Order Book

The Order book API lets you fetch all orders of a user along with the latest status.

query Parameters
offset
required
integer

Specifies the page number of the collection to be displayed

limit
required
integer

Limits the number of items on a page

order_id
string

Pass order id to filter records based on order id. It must be URL encoded as it contains special characters.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success message",
  • "data": [
    ],
  • "metadata": {
    }
}

Order history

Order history keeps audit trail (modifications/changes) of an order. It will provide track of a particular order along with its activities done.

path Parameters
order_id
required
string

order id, It must be URL encoded as it contains special characters.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success message",
  • "data": [
    ],
  • "metadata": {
    }
}

Portfolio

This section provided to information of API calls to fetch open position and holding detail of user as uploaded by member in System.

Positions

Positions contain the user open position across exchange segments. The Equity positions which are passed overnight are transferred to the holdings portfolio the following day. The positions API provides two sets of positions i.e. Daily and Expiry where position tagged as ‘Expiry’ is the carryforwarded positions and position tagged as ‘Daily’ is today's created positions.

path Parameters
type
required
integer
Default: "daily"
Enum: "daily" "expiry"

Type of position to fetch daily or expiry

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success message",
  • "data": {
    }
}

Position Conversion

Position Conversion API enable users to convert their open positions from source product to target product i.e. Intraday to Delivery or vice versa.

Request Body schema: application/json
exchange
required
string

Exchange segment.

scrip_token
required
integer

Exchange token number of the scrip or instrument.

transaction_type
required
string

Order is BUY or SELL.

quantity
required
integer

Number of quantity to convert.

old_product_type
required
string

Old product type.

new_product_type
required
string

New product type.

bo_order_id
string

Bracket order id, Bracket order position conversion is allowed individual bracket order wise only. bo_order_id need to pass here. This number is available in order book.

Responses

Request samples

Content type
application/json
{
  • "exchange": "NSE_EQ",
  • "scrip_token": 22,
  • "transaction_type": "BUY",
  • "quantity": 50,
  • "old_product_type": "INTRADAY",
  • "new_product_type": "DELIVERY",
  • "bo_order_id": ""
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success Message"
}

Holdings

The Holding API provide the detail of user's holding as uploaded by broker. Stock bought under Delivery Product earlier which payout is pending with exchange is show under holding i.e. User bought 10 shares of reliance on Monday then on Tuesday it will be shown under Holding.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "code": "s-101",
  • "message": "Success message",
  • "data": {
    }
}

Price Feed

The Price Feed API allows to get price feed from broadcast server.

Basic Flow to Implement the APIs:

STEP 1: Make a Login API call using login credential to obtain the broadcast socket server endpoint and broadcast access token.
STEP 2: Use broadcast access token in login request to broadcast server.

Click here to know how to connect or download API documentation.

Real-time streaming messages

System provides real-time streaming data to receive order & trade responses. This feature is exposed via socket.io. You need to use the standard socket.io library (for more information, kindly refer https://socket.io/).

This streaming feature is only meant for receiving real-time “Order & Trade responses”. All other features (order placement, order modification, portfolio details, etc.) need to be implemented using their respective APIs covered in the previous sections.

To use this feature, a client needs to establish a socket connection with the streaming server and subscribe to the events. Establishing the connectivity requires a couple of fields that are received in the Login API response (refer the User -> Login section to know how to login):
    a. “others”:”messageSocket” – Streaming server’s endpoint that is used in the Connect section below.
    b. “access_token” – A unique token that is issued to you for the purpose of authentication and is used in the Login section below.

Given below are the detailed steps, with a sample NodeJS code, describing the various events and how to subscribe to these events:

1. Connect: This step comprises of establishing the socket connection with the streaming server.
    const io = require("socket.io-client"); // NPM package for socket.io
    let ioClient = io.connect(url, {transports:['websocket']}); // url will be received in the Login API response -> “others”:“messageSocket”

2. Login: Here, you need to get authenticated before subscribing to events from the streaming server.
    ioClient.on("connect", () => {
    let msgLogin = {“jToken”:"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0b2tlbiIsImlhdCI6MTU5MzQ5.j80QyIeFOCJzNQk "}; // jToken will be received in Login API response -> “access_token”
    ioClient.emit('loginAPI', msgLogin); // the socket will get disconnected if the authentication check is unsuccessful
})

3. Order/ Trade response: You need to subscribe to the MSG:DATA event to receive order & trade responses from the streaming server.
    ioClient.on("MSG:DATA", (response) => {
    console.log(' Received response : ' + JSON.stringify(response)) ;
    })

We have provided the order & trade response structures as well as sample responses after the Disconnect section below. It will help you understand the JSON response structure and the fields that are returned.

4. Disconnect: You need to disconnect the socket to close the connection with the streaming server. Moreover, you also need to subscribe to the “disconnect” event in case the server disconnects the connection.
    ioClient.on("disconnect", (err) => {
    console.log("Disconnected: Error: "+ err );
    })

Note: To differentiate order and trade response, kindly refer "MessageType" in the response. For order response, the value will be "ORD_NRML" and for trade response, it will be "TRD_MSG".


Order response structure:

Parameter (Key)Data TypeDescription
AMOOrderIDStringOrder id for AMO/ EqGTD orders otherwise blank
Buy_SellString1 -> Buy
2 -> Sell
CP_IDString
CliOrderNumberIntegerGateway/Client order number [System Generated]
DQIntegerDisclose quantity. Specifies the quantity that has to be disclosed to the market e.g 2500
DQRemainingIntegerDisclose quantity remaining
DaysStringNumber of days
ExchangeStringExchange for which order is to be placed
ExpiryDateStringExpiry Date. Ddmmmyyyy e.g 24JUN2004. Applicable for Future and option segment only
GTDOrderStatusIntegerGTDOrderStatus
InitiatedByStringInitiated from application
InitiatedByUserIdStringInitiated from user id
InstrumentNameStringInstrument name provided in security information.
Valid values are given bellow
Equity = blank
Future Index = FUTIDX
Interest Rate Future = FUTINT
Future Stock = FUTSTK
Option Index = OPTIDX
Option Stock = OPTSTK
MCX/NCDEX Futures = FUTCOM
MCXSpot = COM
NCDEXSpot = COMDTY
NSE Currency Future = FUTCUR, FUTIRD, FUTIRT, OPTCUR
NSE Currency Spot = INDEX, UNDCUR, UNDIRD, UNDIRT
LastModifiedTimeDate TimeTime when order was confirmed
LegIndicatorStringBlank value
ManagerIDStringManager Id
MarketTypeIntegerNormal = 1
Auction = 2
PreOpen = 3
MessageSequenceNumberStringRunning Message Sequence Number. For order’s latest status always consider max sequence number.
MessageTypeStringORD_NRML
MiscStringValues will be: SPO-LMT, SPO-MKT, PO-MKT, PO-LMT
ModifiedByStringModified by application
ModifiedByUserIdStringModified by user id
Option_TypeStringOption Type. Applicable 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 an Order
OrderPriceIntegerSpecifies the price in paise at which the order is placed.
OrderStatusIntegerOrder Status
OrderTypeIntegerOrder Type
OrderValidityStringValidity
PartCodeStringParticipant ID
PendingQtyIntegerPending quantity
ProCliString2 -> PRO
1 -> Client
ProductStringProductType of the order
ReasonStringRejection Reason
ScripCodeStringScrip Code
SeriesStringExchange provided Security Series
SpreadFlagIntegerNormal order = 0
Spread order = 1
SpreadPriceIntegerSpread Price
StrikePriceIntegerExchange provided Strike price (in multiples of 100). Applicable only for options.
SymbolStringExchange provided Security symbol
TradedQTYStringTraded Quantity
TriggerPriceIntegerTrigger Price at which Stop loss Order should be active in market. This field is applicable only for a Stop loss order.
UCCStringAlias UCC Code
UniqueCodeStringAlphanumeric value with special characters
UserIDStringExchange User ID
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:
Parameter (Key)Data TypeDescription
Buy_SellString1 -> Buy
2 -> Sell
CP_IDString
CliOrderNumberIntegerGateway/Client order number [System Generated]
DQStringDisclose quantity. Specifies the quantity that has to be disclosed to the market e.g 2500
DQRemainingStringDisclose quantity remaining
DaysIntegerNumber of days
ExchangeIntegerExchange
ExpiryDateStringExpiry Date. Ddmmmyyyy e.g 24JUN2004. Applicable for Future and option segment only
InitiatedByStringInitiated from application
InitiatedByUserIdStringInitiated from user id
InstrumentNameStringInstrument name provided in security information.
Valid values are given bellow
Equity = blank
Future Index = FUTIDX
Interest Rate Future = FUTINT
Future Stock = FUTSTK
Option Index = OPTIDX
Option Stock = OPTSTK
MCX/NCDEX Futures = FUTCOM
MCXSpot = COM
NCDEXSpot = COMDTY
NSE Currency Future = FUTCUR, FUTIRD, FUTIRT, OPTCUR
NSE Currency Spot = INDEX, UNDCUR, UNDIRD, UNDIRT
LegIndicatorStringBlank value
ManagerIDIntegerManager Id
MessageSequenceNumberIntegerRunning Message Sequence Number
MessageTypeStringTRD_MSG
MiscStringValues will be: SPO-LMT, SPO-MKT, PO-MKT, PO-LMT
ModifiedByStringModified by application
ModifiedByUserIdStringModified by user id
Option_TypeStringOption Type. Applicable for options only.
OrderLastModifiedTimeDate TimeTime when order was confirmed. Date 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 an Order
OrderPriceIntegerOrder Price (Fresh order/ Modified order) in paisa
OrderTimeDate TimeDate and Time will be 24 Hour format like: 15Jun2019 15.25.15
OrderTypeIntegerOrder Type
PartCodeStringParticipant ID
PendingQtyStringPending quantity
ProCliString2 -> PRO
1 -> Client
ProductStringProductType of the order
QuantityTradedTodayIntegerTotal no. of quantity traded inclusive of the current trade quantity
ScripCodeIntegerScrip Code
SeriesStringExchange provided Security Series
SpreadFlagIntegerNormal order = 0
Spread order = 1
SpreadPriceIntegerSpread Price
StrikePriceIntegerExchange provided Strike price (in multiples of 100). Applicable only for options.
SymbolStringExchange provided Security symbol
TradeNumberStringTrade no.
TradeQtyStringTraded Quantity
TradeTimeDate TimeDate and Time will be 24 Hour format like: 15Jun2019 15.25.15
TradedPriceStringTrade price in paisa. e.g. 45065 (in multiples of 100)
UCCStringAlias UCC Code
UniqueCodeStringAlphanumeric value with special characters
UserIDStringExchange User ID
UserRemarksStringUser Remarks

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"
    }