TP Fo Fix NNF Protocol 1.4

Download as pdf or txt
Download as pdf or txt
You are on page 1of 87

FIX Protocol for Non-NEAT Front End (NNF)

Futures and Options Trading System

Version 1.4

MARCH - 2018

National Stock Exchange of India Ltd


Exchange Plaza, Plot No. C/1, G Block,
Bandra-Kurla Complex, Bandra (E)
Mumbai - 400 051.

1
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Notice

© Copyright National Stock Exchange of India Ltd (NSEIL). All rights


reserved. Unpublished rights reserved under applicable copyright and
trades secret laws.

The contents, ideas and concepts presented herein are proprietary


and confidential. Duplication and disclosure to others in whole, or in
part is prohibited.

2
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Changes in This Issue

Version 1.4
MARCH 2018

Pages Description Version


Changed History
13 NSE custom field added for PAN and Algo ID changes
35,36 Order - Single [type 'D']
47,48 Execution Report [type '8']
58 Order Cancel/Replace Request [type 'G']
62 Order Cancel Request [type 'F']
64,65 Order Cancel Reject [type '9']
75 New Spread and Multileg Order Request [type 'U1']
78 Spread Order Cancel/Replace Request [type 'U2']
85 Order Mass Cancel Request[Type ‘U6’]

3
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Preface
Purpose

This document describes the protocol to be used for Financial Information Exchange FIX
based Non-NEAT Front end (NNF) to communicate with the Futures and Options
Trading System and thus serves as a development guide for the FIX users.

Target Audience
This document is written for system designers and programmers of user organizations
and third party software developers who are responsible for the development of software
to interact with NSE’s Futures and Options Trading System using FIX Protocol.

4
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Abbreviations and Acronyms Used

The abbreviations and acronyms used in this document are:

AON All Or None


ATO At The Opening
AU Auction
BM Branch Manager
CM Captial Market
DL Dealer
DQ Disclosed Quantity
FIX Financial Information eXchange
GTC Good Till Cancellation
GTD Good Till Date
IOC Immediate Or Cancel
LTP Last Traded Price
MF Minimum Fill
NEAT National Exchange for Automated Trading
NNF Non Neat Front End
NSE National Stock Exchange
NT Negotiated Trade
OL Odd Lot
RL Regular Lot
SL Stop Loss
ST Special Terms
TAP Trading Access Point
TCMS TAP Control and Monitoring System
TM Trading Member
TP Trigger Price
TWS Trader Workstation
VV.RR.SS Version. Release. Sub-release
COL Cancel On Logoff

5
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

CONTENTS

CHAPTER 1 - INTRODUCTION .............................................................................................................. 7


CHAPTER 2 - FIX GUIDELINES ............................................................................................................. 8
FIX VERSION .............................................................................................................................................. 8
FIX MESSAGES SUPPORTED ........................................................................................................................ 8
Sender CompID .....................................................................................................................................10
TargetCompID.......................................................................................................................................10
TAP Ports ..............................................................................................................................................10
Custom Fields as per NSE FIX ..............................................................................................................11
Custom Values as per NSE FIX .............................................................................................................13
Other customizations .............................................................................................................................14
Note .......................................................................................................................................................14
CHAPTER 3 - LOGON PROCESS ...........................................................................................................15
INTRODUCTION ...........................................................................................................................................15
ORDER OF EVENTS TO BE FOLLOWED DURING LOGON ..............................................................................15
MESSAGE SYNCHRONIZATION PROCESS .....................................................................................................16
CHAPTER 4 - NSE FIX STRUCTURES ..................................................................................................17
STANDARD HEADER ...................................................................................................................................17
LOGON [TYPE 'A'] .......................................................................................................................................21
TRADING SESSION STATUS REQUEST [TYPE 'G'] .........................................................................................24
TRADING SESSION STATUS [TYPE 'H'] .........................................................................................................25
ORDER - SINGLE [TYPE 'D'] ........................................................................................................................27
EXECUTION REPORT [TYPE '8'] ...................................................................................................................37
NOTES ON EXECUTION REPORT(MSGTYPE = 8) : .......................................................................................49
MAPPING OF CERTAIN FIELDS FOR DIFFERENT TYPES OF EXECUTION REPORT. ...........................................50
ORDER CANCEL/REPLACE REQUEST [TYPE 'G'] .........................................................................................52
ORDER CANCEL REQUEST [TYPE 'F'] ..........................................................................................................59
ORDER CANCEL REJECT [TYPE '9'] .............................................................................................................63
NEWS [TYPE 'B'] .........................................................................................................................................66
BUSINESS MESSAGE REJECT [TYPE 'J'] .......................................................................................................70
LOGOUT [TYPE '5']......................................................................................................................................72
NEW SPREAD AND MULTILEG ORDER REQUEST [TYPE 'U1'] ......................................................................73
SPREAD ORDER CANCEL/REPLACE REQUEST [TYPE 'U2'] ..........................................................................76
GIVEUP REPORT [TYPE 'U3'] ......................................................................................................................79
POSITION MAINTENANCE REQUEST [TYPE 'U4'] .........................................................................................81
POSITION MAINTENANCE REPORT [TYPE 'U5'] ...........................................................................................83
ORDER MASS CANCEL REQUEST [TYPE ‘U6’]............................................................................................85
ANNEXURE ................................................................................................................................................86
SUPPORTED ORDER TYPES .........................................................................................................................86
UNSUPPORTED FUNCTIONALITIES ..............................................................................................................86
IMPORTANT REFERENCES & READING .......................................................................................................87

6
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Chapter 1 - Introduction

The National Stock Exchange of India Ltd (NSEIL) provides a automated electronic
trading facility using NEAT front ends and Non NEAT Front ends(NNF). FIX protocol is
also now supported through TAP (Trading Access Point). This document is a
supplement to the “Protocol for Non-NEAT Front End (NNF) - Futures and Options
Trading System” and the FIX 4.2 Specifications as specified at www.fixprotocol.org .

Cash CTCL
NNF

TAP Cash Cash


Cash NEAT IP FIX Enabled IP
Segment

FIX IP
Cash CTCL
Network

F&O CTCL F&O


Segment
NNF

IP
TAP F&O
F&O NEAT IP FIX Enabled

FIX
F&O CTCL

7
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Chapter 2 - FIX Guidelines

FIX Version
NSE will support the FIX version 4.2 for Futures and Options

FIX Messages supported


MsgType(35) = Message Direction - Inbound Similar to NNF Transcode
/ Outbound / Both
Session
0 Heartbeat B NA
1 Test Request B NA
2 Resend Request B NA
3 Reject B NA
4 Sequence Reset B NA
5 Logout B 2320 / 2321
A Logon B 2300 / 2301
Application
8 Execution Report O 2012 / 2073 / 2074 /
2075 / 2222 / 7021 /
2231 / 2124 / 2154 /
2136 / 2130 / 2131 /
2132 / 2125 / 2126 /
2155 / 2156
9 Order Cancel Reject O 2072
D New Order Single I 2000
F Order Cancel Request I 2070
G Order Cancel/Replace Request I 2040
g Trading Session Status Request I 1600 + 7000
h Trading Session Status O 1601
j Business Message Reject O For Errors
B News O 5295 / 6501 / 6511 /
6521 / 6531 / 6571
H Order Status Request NA Not Supported
Application – Userdefined Messages
U1 New Spread And Multileg I 2100 / 2102 / 2104
Order Request
U2 Spread Order Cancel/replace I 2118 / 2106
Request
U3 Giveup Report O 4506 / 4507
U4 Position Maintenance Request I 4000 / 4005 / 4008

8
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

U5 Position Maintenance Report O 4002 / 4007 / 4010


U6 Order Mass Cancel Request I 2062

9
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Sender CompID
TCMS will have additional screen for the configuration of SenderCompID. Format will be
TraderID,MemberID,BranchID

TargetCompID
TargetCompID to connect to NSE through TAP will be NSE_TAP_FO for Futures and Options
Market

TAP Ports
TCP Port number 9652 will be used for Futures and Options Market. Necessary firewall entries
would need to be carried out for this port in case there is a firewall between FIX-CTCL and TAP.

10
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Custom Fields as per NSE FIX

Tag FIX Data type Field Name Descirption


Number

460 Int Product Indicates the type of product the


security is associated with.
554 String Password AlphaNumeric field for password.
Maximum length of 8 characters
925 String New Password AlphaNumeric field for password.
Maximum length of 8 characters
555 NumInGroup NoLegs Number of Order Leg repeating
group instances
564 Char LegPositionEffect OpenClose for leg of a multileg

565 Char LegCoveredOrUncovered CoveredUncovered for leg of a


multileg
566 Price LegPrice Price for leg of a multileg

600 String LegSymbol Symbol for leg of a multileg

602 String LegSecurityID SecurityID for leg of a multileg

607 Int LegProduct Product for leg of a multileg

609 String LegSecurityType SecurityType for leg of a multileg

611 LocalMktDate LegMaturityDate MaturityDate for leg of a multileg

612 Price LegStrikePrice StrikePrice for leg of a multileg

613 Char LegOptAttribute OptAttribute for leg of a multileg

624 Char LegSide Side for leg of a multileg

685 Qty LegOrderQty Qty for leg of a multileg

709 Int PosTransType Identifies the type of position


transaction
Valid values:
1 = Exercise
2 = Do Not Exercise
710 String PosReqID Unique number for each Request.

712 Int PosMaintAction Maintenance Action to be


performed.

11
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

714 String PosMaintRptRefID Reference to a PosMaintRptID


from a previous Position
Maintenance Report that is being
replaced or canceled.
721 String PosMaintRptID Identifier for this chain of position
maintainence request & responses.
722 Int PosMaintStatus Status of Position Maintenance
Request

6000 UTCTimestamp LastModificationTime Transaction Time from the last


successful
modification/transaction for the
given OrderID
6001 UTCTimestamp LastHostMessageTime Host Sending Time
[OriginalSendingTime] of the last
message received from NSE-TAP
without Poss Resend Flag
6002 Char BrokerStatus Contains the status of the Broker
(a.k.a Member).
6003 String BrokerName Contains name of Broker (a.k.a
Member).
6004 String TraderName Contains name of User.

6005 Char BrokerType Trading Member only or


Trading and Clearing Member
or Clearing Member only
6006 Char ClearingStatus The Clearing status of the member.

6007 String FillID NSE provided Fill(Trade) Number

6008 Int MultilegOrdType Indicator of Type of Multileg order


Valid Values:
1 = Spread Order
2 = Two Leg Order
3 = Three Leg Order
6009 Int LegPutOrCall Valid values:
'0' Put
'1' Call
6010 Qty LegLeavesQty Volume remaining for the leg.

6011 Qty LegCumQty Volume filled for the leg.

6012 Int GiveUpStatus Valid Values:


1-Approved
2-Rejected

12
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

6013 Char CancelRemainingQty Valid Values :


Y = Yes
N = No
6014 Int MaxOnBehalfOfLocationID Contains maximum number of
OnBehalfOfLocationId
6015 Int NoOnBehalfOfLocationID Specifies no. of
OnBehalfOfLocationId in the
repeating groups.
530 Char MassCancelRequestType Specifies scope of Order Mass
Cancel Request

6016 String PAN Max 10 Char AlphaNumeric value.


This field shall contain the PAN
(Permanent Account Number)
For Client order(CLI) this field shall
have the PAN of the respective
client For PRO order this field shall
be blank
6017 Int AlgoID For Algo order this field shall
contain the Algo ID issued by the
exchange. For Non-Algo order this
field shall be blank
6018 Int AlgoCategory For Algo order this field shall
contain the Algo Category as
provided by the Exchange. For
Non-Algo order this field shall be
blank
6019 String OldPAN In case of modification, this field
shall contain the Old PAN
For Client order (CLI) this field will
have the PAN of the respective
Client. For PRO order this field will
be blank
6020 string NanoTimestamp This field is popoulated by Trading
system. Time in this field will be
populated in nanoseceonds (from
01-Jan-1980 00:00:00).

Custom Values as per NSE FIX

Tag Field Name New values Descirption


Number
39 OrdStatus U U – Unchanged (from
previously reported status)
150 ExecType T T - Stop Loss Triggered

13
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

378 ExecRestatementReason 50, 51, 52 50 = Control User Activity


51 = Corp.Mgr Activity
52 = Branch.Mgr Activity
54 Side L L – As mentioned in the Legs

Other customizations
There are other customization in the FIX Protocol to be used for connecting to NSE TAP
mentioned in each structure in Chapter 4 below.
Field additions to different FIX Messages
Certain fields are made Mandatory Fields which are not required by FIX 4.2.

Note
Encryption is NOT supported.
If a Tag is not explicitly supported, it will be ignored without considering the value of the
tag.

14
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Chapter 3 - Logon Process

Introduction
This section describes how a trader logs on to the trading system. The process by which
a trader logs on to the trading system is called Logon Process. The trader, after issuing a
Logon request, waits for the system response. The response could be a successful logon
or an error message.

Order of Events to Be Followed During Logon

Message (Transcode) Direction FIX MsgType (35=) Remarks


Logon Request (2300) Inbound A
Logon Response (2301) Outbound A Sent on successful
logon
Logon Response Outbound 5 In case of
unsuccessful logon
Trading Session Status Inbound g FIX Client should send
Request(1600) with immediately after
Embedded Jounrnal Custom field logon response.
Download(7000)from LastHostMessageTime
each LocationId will be populated with Must NOT be sent
Time for Journal anytime during the
Download for each Host session.
LocationId
Multiple Messages Outbound 8 Multiple execution
Order Entry, reports will be sent to
Modification, Cancel, Each message will have the Client for
Trade etc. PosResend Flag set as ‘Y’ synchronization of
for indicating Journal databases. Each
Download message contains
Host LocationID in
the
OnBehalfOfLocationId
field of message
header.
Trading Session Status Outbound h Trading status will be
Response (1601) informed to the
Client.
Logoff Outbound 5 If the user is not
allowed through FIX
path.
Order transactions will be allowed from this point onwards.

15
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Message Synchronization Process

Message synchronization is the process in which user synchronizes message with him to
the Trading Host. In order to have synchronization between itself and a User, Trading
Host logs all the responses sent to the User. Synchronization process starts upon
receiving request from the user.

Trading Host uses various LocationID to perform synchronization. Maximum number of


such LocationID is communicated to the user in the Logon message (35 = A) in
MaxOnBehalfOnLocationID (Tag Number 6014) Field. User has to specify the
synchronizing point from where messages are to be synchronized. Message
synchronization is initiated immediately after user sends
TradingSessionStatusRequest (Message type=g). User must send LastHostMessageTime
(Tag Number 6001) for every LocationID in the TradingSessionStatusRequest (35 = g).
Value in the LastHostMessageTime (Tag Number 6001) suggests to the Trading Host that
it has to synchronize all the messages after this time. OnBehalfOfSendingTime (Tag
Number 370) received from the Host for a particular LocationID will be used to initiate
synchronization. LocationID of each message will be sent in OnBehalfOfLocationID (Tag
Number 144) in Message header. OnBehalfOfLocationID (Tag Number 144) will not be
sent for logon response (35=A) and Trading Session Status (Message type=h). User may
receive multiple execution report containing all the transactions of user and important
broadcast with PosResend flag=’Y’ for synchronization of their databases. After sending
all the synchronizing messages, TAP will send TradingSessionStatus (type 'h') to the
client. This indicates the end of Message Synchronization process.

16
Chapter 4 - NSE FIX Structures

Standard Header

Tag Field Name Req'd FIX Protocol Comments NSE Comments NSE Comments
In Bound Out Bound
8 BeginString Yes FIX.4.2 (Always unencrypted, must FIX.4.2 FIX.4.2
be first field in message)
9 BodyLength Yes (Always unencrypted, must be
second field in message)
35 MsgType Yes (Always unencrypted, must be third
field in message)
49 SenderCompID Yes (Always unencrypted) TraderID,MemberID,BranchID NSE_TAP_FO

56 TargetCompID Yes (Always unencrypted) NSE_TAP_FO TraderID,MemberID,BranchID

115 OnBehalfOfCompID

128 DeliverToCompID

90 SecureDataLen Required to identify length of


encrypted section of message.

17
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

(Always unencrypted)
91 SecureData Required when message body is
encrypted. Always immediately
follows SecureDataLen field.
34 MsgSeqNum

50 SenderSubID

142 SenderLocationID

57 TargetSubID

143 TargetLocationID
116 OnBehalfOfSubID

144 OnBehalfOfLocationID Trading partner LocationID (i.e. Will contain Host LocationId
geographic location and/or desk) used of the message.
when delivering messages via a third
party. (Can be embedded within
encrypted data section.)

129 DeliverToSubID

145 DeliverToLocationID

18
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

43 PossDupFlag Always required for retransmitted


messages, whether prompted by
the sending system or as the result
of a resend request.

97 PossResend Required when message may be Will be set to ‘Y’ for the
duplicate of another message sent synchronization message
under a different sequence number. during the logon process.

52 SendingTime Yes FIX Client Sending Time TAP Sending Time

122 OrigSendingTime Required for message resent as a


result of a ResendRequest. If data is
not available set to same value as
SendingTime (Can be embedded
within encrypted data section.)

212 XmlDataLen

213 XmlData

19
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

347 MessageEncoding Type of message encoding (non-


ASCII characters) used in a
message’s “Encoded” fields.
Required if any “Encoding” fields
are used.
369 LastMsgSeqNumProcessed The last MsgSeqNum value received
and processed. Can be specified on
every message sent. Useful for
detecting a backlog with a
counterparty.
370 OnBehalfOfSendingTime Used when a message is sent via a NSE Host Sending Time in
“hub” or “service bureau”. If A UTC
sends to Q (the hub) who then
sends to B via a separate FIX
session, then when Q sends to B the
value of this field should represent
the SendingTime on the message A
sent to Q. (always expressed in UTC
(Universal Time Coordinated, also
known as “GMT”)

20
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Logon [type 'A']

Tag or Component Field Name Req'd FIX Protocol Comments NSE Comments

Component Standard Header Yes MsgType = A


98 Encrypted Method (Always unencrypted) Valid Values: 0 = No Ecryption
108 HeartBtInt Note same value used by both Valid Value: 30 (seconds)
sides
95 RawDataLength Yes

96 RawData Yes FIX Client to populate NSE Version


number in this.
Example version 9.0.5 will be
populated as 090500
141 ResetSeqNumFlag Indicates both sides of a FIX Valid Value: Y = Yes, reset
session should reset sequence sequence numbers
numbers
383 MaxMessageSize Can be used to specify the Not Used
maximum number of bytes
supported for messages
received
sequence 384 NoMsgTypes Specifies the number of Not Used
repeating MsgTypes specified
372 RefMsgType Specifies a specific, supported Not Used
MsgType. Required if
NoMsgTypes is > 0. Should be
specified from the point of view
of the sender of the Logon

21
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

message

385 MsgDirection Indicates direction (send vs. Not Used


receive) of a supported
MsgType. Required if
NoMsgTypes is > 0. Should be
specified from the point of view
of the sender of the Logon
message
end sequence
554 Password Yes Data type: String, Custom field, Password
Max 8 Char ‘Password’
925 New Password No Data type: String, Custom field, In case Password change is to be
Max 8 Char ‘New Password’ carried out.
6002 BrokerStatus No Data type: Char, Custom field. Contains the current status of the
broker in logon response.
Valid Values :
‘S’ for Suspended
‘A’ for Active
‘D’ for Deactivated
‘C’ for Closeout
‘V’ for Voluntary Close Out
6003 BrokerName No Data type: String, Custom field. Contains the name of the Broker
in logon response.
6004 TraderName No Data type: String, Custom field. Contains the name of the User in
logon response.
6005 BrokerType No Data type: Char, Custom field. This field contains the type of

22
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

member. The values are as


follows:
‘1’ - Trading Member only
‘2’ - Trading and Clearing Member
‘3’ - Clearing Member only
6006 ClearingStatus No Data type: Char, Custom field. This field contains the Clearing
status of the member.
Valid values:
‘A’ - Active
‘S’ - Suspended
‘D’ - Deactivated
‘V’ - Voluntary Close Out
6014 MaxOnBehalfOnLocationID No Data type: Int, Custom Field. Contains maximum number of
LocationId
Component Standard Trailer Yes

23
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Trading Session Status Request [type 'g']

Tag or Field Name Req'd FIX Protocol Comments NSE Comments


Component
Component Standard Header Yes MsgType = g (lowercase)
335 TradSesReqID Yes Must be unique, or the ID of previous Not Used.
Market Data Request to disable if
SubscriptionRequestType = Disable
previous Snapshot + Updates Request (2).

336 TradingSessionID Trading Session for which status is being Not Used.
requested
338 TradSesMethod Method of trading Not Used.
Always 1 = Electronic
339 TradSesMode Trading Session Mode Not Used.
263 SubscriptionRequestType Yes Not Used.
sequence 6015 NoOnBehalfOfLocationID Yes NSE Custom Field Specifies no. of OnBehalfOfLocationId
Data type: Int in the repeating groups. This number
should be same as
MaxOnBehindOfLocationID.
6001 LastHostMessageTime Yes NSE Custom Field Must be poplated with Host Sending
end sequence Data type: UTC Timestamp Time send in OnBehalfOfSendingTime
(Tag = 370) of the last message
received from NSE-TAP for each of the
NSE LocationId.
Component Standard Trailer Yes

24
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Trading Session Status [type 'h']

Tag or Field Name Req'd FIX Protocol Comments NSE Comments


Component
Component StandardHeader Yes MsgType = h (lowercase)
335 TradSesReqID Provided for a response to a specific Not Supported
Trading Session Status Request message
(snapshot).
336 TradingSessionID Yes Identifier for Trading Session Login Count of Trading Day for the
User ID
338 TradSesMethod Method of trading: Not Supported
339 TradSesMode Trading Session Mode Not Supported
325 UnsolicitedIndicator ‘Y’ if message is sent unsolicited as a result Not Supported
of a previous subscription request.
340 TradSesStatus Yes State of the trading session State of the trading session.
Valid values:
1 = Halted
2 = Open
3 = Closed
4 = Pre-Open
5 = Pre-Close

341 TradSesStartTime Starting time of the trading session Not Supported


342 TradSesOpenTime Time of the opening of the trading session Not Supported

343 TradSesPreCloseTime Time of the pre-close of the trading session Not Supported

344 TradSesCloseTime Closing time of the trading session Not Supported


345 TradSesEndTime End time of the trading session Not Supported

25
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

387 TotalVolumeTraded Not Supported


58 Text Not Supported
354 EncodedTextLen Must be set if EncodedText field is specified Not Supported
and must immediately precede it.

Encoded (non-ASCII characters) Not Supported


355 Encoded Text representation of the Text field in the
encoded format specified via the
MessageEncoding field.
Component StandardTrailer Yes

26
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Order - Single [type 'D']


Tag or Field Name Req'd FIX Protocol Comments NSE Comments
Component
Component StandardHeader Yes MsgType = D
11 ClOrdID Yes Unique identifier of the order as Unique number for each Transaction
assigned by institution. Request.
Must not cross 2,000,000,000
109 ClientID Used for firm identification in third- Not Used
party transactions (should not be a
substitute for
OnBehalfOfCompID/DeliverToCompID).
76 ExecBroker Used for firm identification in third- Not Used
party transactions (should not be a
substitute for
OnBehalfOfCompID/DeliverToCompID).
1 Account Yes Max 10 Char AlphaNumeric value.
If the order is entered on behalf of a
trader, the trader account number
should be specified in this field. For
broker’s own order, this field should
be set to the broker code.

sequence 78 NoAllocs Number of repeating groups for pre- Not Used


trade allocation
79 AllocAccount Required if NoAllocs > 0. Must be first Not Used
field in repeating group.
80 AllocShares Not Used
end sequence
63 SettlmntTyp Absence of this field is interpreted as Not Used
Regular.

27
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

64 FutSettDate Required when SettlmntTyp = 6 Not Used


(Future) or SettlmntTyp = 8 (Sellers
Option)
21 HandlInst Yes Valid Values
1 = Automated execution order
18 ExecInst Can contain multiple instructions, Not Used
space delimited. If OrdType=P, exactly
one of the following values (ExecInst =
L, R, M, P, O, T, or W) must be
specified.
110 MinQty Not Used
111 MaxFloor This field should specify the quantity
that has to be disclosed to the
market. It is not applicable if the
order has either the All Or None or
the Immediate Or Cancel attribute
set. It should not be greater than the
volume of the order and not less than
the Minimum Fill quantity if the
Minimum Fill attribute is set. In
either case, it cannot be less than the
Minimum Disclosed Quantity
allowed. It should be a multiple of
the Regular lot.

100 ExDestination Not Used


sequence 386 NoTradingSessions Specifies the number of repeating Not Used
TradingSessionIDs
336 TradingSessionID Required if NoTradingSessions is > 0. Not Used
end sequence
81 ProcessCode Used to identify soft trades at order Not used

28
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

entry.
55 Symbol Yes Symbol as per NSE Security/Contract
Masters
65 SymbolSfx No Series as per NSE Security/Contract
Master.
Compulsory for Equity[CM].
Not Required for Derivatives[F & O] &
Currency[CD].
48 SecurityID Yes Token Number as per NSE
Security/Contract Masters

22 IDSource Not used.


Always 8= Exchange Symbol
167 SecurityType Yes Must be specified if a Future or Option. Mandatory for Derivatives [F & O]
If a Future: Symbol, SecurityType, and FUT = Future
MaturityMonthYear are required. If an OPT = Option
Option: Symbol, SecurityType,
MaturityMonthYear, PutOrCall, and
StrikePrice are required.
460 Product Yes Data type: Int, Custom field Valid Values:
5 = EQUITY
7 = INDEX
21 = INDIAVIX

200 MaturityMonthYear Yes Specifiesthe month and year of Mandatory for Derivatives [F & O]
maturity. Required if MaturityDay is
specified.
205 MaturityDay Yes Can be used in conjunction with Mandatory for Derivatives [F & O]
MaturityMonthYear to specify a
particular maturity date.

29
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

201 PutOrCall For Options. Mandatory For Options.


Valid values:
'0' Put
'1' Call

202 StrikePrice For Options. Mandatory For Options.


206 OptAttribute For Options. Mandatory For Options.
Valid values:
L = Long (a.k.a. 'American')
S = Short (a.k.a. 'European')
231 ContractMultiplier For Fixed Income, Convertible Bonds, Not Used
Derivatives, etc. Note: If used,
quantities should be expressed in the
"nominal" (e.g. contracts vs. shares)
amount.
223 CouponRate For Fixed Income. Not Used
207 SecurityExchange Can be used to identify the security. Not Used
106 Issuer Not Used
348 EncodedIssuerLen Must be set if EncodedIssuer field is Not Used
specified and must immediately
precede it.
349 EncodedIssuer Encoded (non-ASCII characters) Not Used
representation of the Issuer field in the
encoded format specified via the
MessageEncoding field.
107 SecurityDesc Not Used
350 EncodedSecurityDescLen Must be set if EncodedSecurityDesc Not Used
field is specified and must immediately
precede it.

30
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

351 EncodedSecurityDesc Encoded (non-ASCII characters) Not Used


representation of the SecurityDesc
field in the encoded format specified
via the MessageEncoding field.
140 PrevClosePx Useful for verifying security Not Used
identification
54 Side Yes Valid values:
1 = Buy
2 = Sell
114 LocateReqd Required for short sell orders Not Used
60 TransactTime Time this order request was Not Used for New Single Order.
initiated/released by the trader or
trading system.
38 OrderQty Yes Either CashOrderQty or OrderQty is Order Quantity
required. Note that either, but not
both, CashOrderQty or OrderQty
should be specified.
152 CashOrderQty Either CashOrderQty or OrderQty is Not Used
required. Note that either, but not
both, CashOrderQty or OrderQty
should be specified. Specifies the
approximate “monetary quantity” for
the order. Broker is responsible for
converting and calculating OrderQty in
shares for subsequent messages.
40 OrdType Yes Valid values:
1 = Market
2 = Limit
3 = Stop
4 = Stop limit

31
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

44 Price Required for limit OrdTypes. For F/X


orders, should be the “all-in” rate (spot
rate adjusted for forward points). Can
be used to specify a limit price for a
pegged order, previously indicated,
etc.
99 StopPx Required for OrdType = “Stop” or Mandatory for OrdType 3 & 4.
OrdType = “Stop limit”.
15 Currency Not Used

32
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

376 ComplianceID Yes This field should contain information


of the NNF users First 6 digits will
contain the pin code of the dealer.
Next 3 digits will contain the Branch
Number
Next 3 digits will contain the terminal
number.
These should match with the details
provided by the member to The
Exchange. For internet trading the
entire above mentioned 12-digits are
to be populated as “111111111111”
The 13th digit will bear bear a code
to identify program “0” for
automated trading and “1” for non-
automated trading.
The 14th digit will bear a code to
identify the vendor. For members
developing inhouse software it has to
be populated with”0”
The 15th digit is reserved for the use
of Exchange and is to be populated as
“0”.
377 SolicitedFlag Not Used
23 IOIid Required for Previously Indicated Not Used
Orders (OrdType=E)
117 QuoteID Required for Previously Quoted Orders Not Used
(OrdType=D)
59 TimeInForce Absence of this field indicates Day Valid values:
order 0 = Day
3 = Immediate or Cancel (IOC)

33
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

168 EffectiveTime Can specify the time at which the order Not Used
should be considered valid
432 ExpireDate Conditionally required if TimeInForce = Not Used
GTD and ExpireTime is not specified.
126 ExpireTime Conditionally required if TimeInForce = Not Used
GTD and ExpireDate is not specified.
427 GTBookingInst States whether executions are booked Not Used
out or accumulated on a partially filled
GT order
12 Commission Not Used
13 CommType Not Used
47 Rule80A(aka Not Used
OrderCapacity)
121 ForexReq Indicates that broker is requested to Not Used
execute a Forex accommodation trade
in conjunction with the security trade.
120 SettlCurrency Required if ForexReq = Y. Not Used
58 Text Not Used
354 EncodedTextLen Must be set if EncodedText field is Not Used
specified and must immediately
precede it.
EncodedText Encoded (non-ASCII characters) Not Used
355 representation of the Text field in the
encoded format specified via the
MessageEncoding field.
193 FutSettDate2 Can be used with OrdType = “Forex - Not Used
Swap” to specify the “value date” for
the future portion of a F/X swap.
192 OrderQty2 Can be used with OrdType = “Forex - Not Used
Swap” to specify the order quantity for
the future portion of a F/X swap.

34
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

77 OpenClose No For options Not Used


Default Value : O=Open
Close is not allowed
203 CoveredOrUncovered No For COL purpose. Default value is 0 Valid Values :
(Not COL). 0 = Order is Not COL
1 = Order is COL
204 CustomerOrFirm Yes For options when delivering the order Valid values:
to execution system/exchange. '0' Customer
'1' Firm
210 MaxShow Not Used.
211 PegDifference Amount (signed) added to the price of Not Used.
the peg
388 DiscretionInst Code to identify the price a Not Used.
DiscretionOffset is related to and
should be mathematically added to.
Required if DiscretionOffset is
specified.
389 DiscretionOffset Amount (signed) added to the “related Not Used.
to” price specified via DiscretionInst.
439 ClearingFirm Not Used
440 ClearingAccount Yes Maximum 12 Char as defined in
Participant master (participant.txt)
This field contains the ID of the
participants who are responsible for
settling the trades through the
custodians. By default, all orders are
treated as broker’s own orders and
this field defaults to the Broker Code.

6016 PAN Yes NSE custom field Max 10 Char AlphaNumeric value.

35
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

This field shall contain the PAN


(Permanent Account Number)
For Client order (CLI) this field shall
have the PAN of the respective client
For PRO order this field shall be blank
6017 AlgoID NSE custom field For Algo order this field shall contain
the Algo ID issued by the exchange.
For Non-Algo order this field shall be
blank
6018 AlgoCategory NSE custom field For Algo order this field shall contain
the Algo Category as provided by the
Exchange. For Non-Algo order this
field shall be blank
Component Standard Trailer Yes

36
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Execution Report [type '8']

Tag or Field Name Req'd FIX Protocol Comments NSE Comments


Component
Component StandardHeader Yes MsgType = 8
37 OrderID Yes OrderID is required to be unique for NSE provided Order Number
each chain of orders.

198 SecondaryOrderID Can be used to provide order id used Not Used


by exchange or executing system.
11 ClOrdID Required for executions against Will be returned Order Entry
electronically submitted orders which Confirmation, Not always for
were assigned an ID by the institution. Order Modification/ Cancellation
Not required for orders manually responses.
entered by the broker. Not retured in Trade messages
41 OrigClOrdID Conditionally required for response to Not Used
an electronic Cancel or Cancel/Replace
request (ExecType=PendingCancel,
Replaced, or Canceled). ClOrdID of the
previous order (NOT the initial order of
the day) when canceling or replacing
an order.
109 ClientID Used for firm identification in third- Not Used
party transactions (should not be a
substitute for
OnBehalfOfCompID/DeliverToCompID).

37
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

76 ExecBroker Used for firm identification in third- Not Used


party transactions (should not be a
substitute for
OnBehalfOfCompID/DeliverToCompID).
sequence 382 NoContraBrokers Number of ContraBrokers repeating Not Used
group instances.
375 ContraBroker First field in repeating group. Required Not Used
if NoContraBrokers > 0.
337 ContraTrader Not Used
437 ContraTradeQty Not Used
438 ContraTradeTime Not Used
end sequence

66 ListID Required for executions against orders Not Used


which were submitted as part of a list.
17 ExecID Must be unique for each Execution This field will have a string of
Report message length of 32 characters.

04 char – Transaction Code


02 char – Transaction Indicator
16 char – Order/Trade Number
10 char – Transaction ID

This field may not be unique for


each Execution Report.

20 ExecTransType Yes Refer Table


Required for Cancel and Correct Not Used
19 ExecRefID ExecTransType messages

38
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

150 ExecType Yes Describes the type of execution report. Refer Table
Same possible values as OrdStatus.
39 OrdStatus Yes Describes the current state of a CHAIN Refer Table
of orders, same scope as OrderQty,
CumQty, LeavesQty, and AvgPx

103 OrdRejReason For optional use with ExecType = 8 Not Used. Error (if any) will be
(Rejected) reported in Text (Tag=58)
378 ExecRestatementReason Required for ExecType = D (Restated). Refer Table
1 Account Required for executions against Same as MsgType ‘D’
electronically submitted orders which
were assigned an account by the
institution
63 SettlmntTyp Absence of this field is interpreted as Not Used
Regular.
Required when SettlmntTyp = 6 Not Used
64 FutSettDate (Future) or SettlmntTyp = 8 (Sellers
Option)
55 Symbol Yes Same as MsgType ‘D’.
Refer Note after the structure.
65 SymbolSfx Same as MsgType ‘D’
48 SecurityID Same as MsgType ‘D’
22 IDSource Same as MsgType ‘D’
167 SecurityType Must be specified if a Future or Option. Same as MsgType ‘D’
If a Future: Symbol, SecurityType, and
MaturityMonthYear are required. If an
Option: Symbol, SecurityType,
MaturityMonthYear, PutOrCall, and
StrikePrice are required.

39
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

200 MaturityMonthYear Specifiesthe month and year of Same as MsgType ‘D’


maturity. Required if MaturityDay is
specified.

205 MaturityDay Can be used in conjunction with Same as MsgType ‘D’


MaturityMonthYear to specify a
particular maturity date.

460 Product Same as MsgType ‘D’


201 PutOrCall For Options. Same as MsgType ‘D’
202 StrikePrice For Options. Same as MsgType ‘D’
206 OptAttribute For Options. Same as MsgType ‘D’

231 ContractMultiplier For Fixed Income, Convertible Bonds, Not Used


Derivatives, etc. Note: If used,
quantities should be expressed in the
"nominal" (e.g. contracts vs. shares)
amount.
223 CouponRate For Fixed Income. Not Used
207 SecurityExchange Can be used to identify the security. Not Used
106 Issuer Not Used
348 EncodedIssuerLen Must be set if EncodedIssuer field is Not Used
specified and must immediately
precede it.
349 EncodedIssuer Encoded (non-ASCII characters) Not Used
representation of the Issuer field in the
encoded format specified via the
MessageEncoding field.
107 SecurityDesc Not Used

40
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

350 EncodedSecurityDescLen Must be set if EncodedSecurityDesc Not Used


field is specified and must immediately
precede it.
351 EncodedSecurityDesc Encoded (non-ASCII characters) Not Used
representation of the SecurityDesc
field in the encoded format specified
via the MessageEncoding field.
54 Side Yes Side of order
Valid values:
1 = Buy
2 = Sell
L= As mentioned in the Legs
38 OrderQty Either CashOrderQty or OrderQty is Same as MsgType ‘D’
required. Not required for a rejected
cash order or an order ack for a cash
order.
152 CashOrderQty Either CashOrderQty or OrderQty is Not Supported
required. Specifies the approximate
“monetary quantity” conveyed on the
order. Broker is responsible for
converting and calculating OrderQty in
shares for subsequent messages
involving fills.
40 OrdType Same as MsgType ‘D’
44 Price Required if specified on the order Same as MsgType ‘D’
99 StopPx Required if specified on the order Same as MsgType ‘D’
388 DiscretionInst Code to identify the price a Not Supported
DiscretionOffset is related to and
should be mathematically added to.
Required if DiscretionOffset is
specified.

41
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

389 DiscretionOffset Amount (signed) added to the “related Not Supported


to” price specified via DiscretionInst.
15 Currency Not Supported.
Always INR.
376 ComplianceID Same as MsgType ‘D’
377 SolicitedFlag Not Supported

59 TimeInForce Absence of this field indicates Day Same as MsgType ‘D’


order
168 EffectiveTime Time specified on the order at which Not Supported
the order should be considered valid
432 ExpireDate Conditionally required if TimeInForce = Not Supported
GTD and ExpireTime is not specified.
126 ExpireTime Conditionally required if TimeInForce = Not Supported
GTD and ExpireDate is not specified.
47 Rule80A(aka OrderCapacity) Not Supported

32 LastShares Quantity of shares bought/sold on this Not Supported


(last) fill. Not required ExecTransType =
3 (Status). When required, should be
"0" for non-fills ("fill" defined as
ExecTransType=New and
ExecType=Partial Fill or Fill) unless
noted below. If ExecType=Stopped,
represents the quantity
stopped/guaranteed/protected for.
31 LastPx Not Supported

194 LastSpotRate Applicable for F/X orders Not Supported

42
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

195 LastForwardPoints Applicable for F/X orders Not Supported


30 LastMkt Not Supported
336 TradingSessionID Not Supported
29 LastCapacity Not Supported
151 LeavesQty Yes Amount of shares open for further TotalVolumeRemaining.
execution. If the OrdStatus is Canceled, Refer Note after the structure.
DoneForTheDay, Expired, Calculated,
or Rejected (in which case the order is
no longer active) then LeavesQty could
be 0, otherwise LeavesQty = OrderQty -
CumQty.
14 CumQty Yes Currently executed shares for chain of VolumeFilledToday.
orders. Refer Note after the structure.
6 AvgPx Yes Not Supported. Will be set to
0.00
424 DayOrderQty For GT orders on days following the Not Supported
day of the first trade.
425 DayCumQty For GT orders on days following the Not Supported
day of the first trade.
426 DayAvgPx For GT orders on days following the Not Supported
day of the first trade.
427 GTBookingInst States whether executions are booked Not Supported
out or accumulated on a partially filled
GT order
75 TradeDate Used when reporting other than Not Supported
current day trades.
60 TransactTime Yes Time the transaction represented by
this ExecutionReport occurred
113 ReportToExch Not Supported

43
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

12 Commission On a fill/partial fill messages, it Not Supported


represents value for that fill/partial fill,
on ExecType=Calculated, it represents
cumulative value for the order.
Monetary commission values are
expressed in the currency reflected by
the Currency field.
13 CommType Not Supported
381 GrossTradeAmt Not Supported

119 SettlCurrAmt Used to report results of forex Not Supported


accommodation trade
120 SettlCurrency Used to report results of forex Not Supported
accommodation trade
155 SettlCurrFxRate Foreign exchange rate used to Not Supported
compute SettlCurrAmt from Currency
to SettlCurrency
156 SettlCurrFxRateCalc Specifies whether the SettlCurrFxRate Not Supported
should be multiplied or divided
21 HandlInst Not Used.

110 MinQty Not Supported

111 MaxFloor Same as MsgType ‘D’

77 OpenClose For options Same as MsgType ‘D’


210 MaxShow Not Supported

44
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

58 Text Used only in case of reporting


Error code.

For List of error codes and


meaning, refer NNF
specifications document.

354 EncodedTextLen Must be set if EncodedText field is Not Supported


specified and must immediately
precede it.
355 EncodedText Encoded (non-ASCII characters) Not Supported
representation of the Text field in the
encoded format specified via the
MessageEncoding field.
193 FutSettDate2 Can be used with OrdType = “Forex - Not Supported
Swap” to specify the “value date” for
the future portion of a F/X swap.
192 OrderQty2 Can be used with OrdType = “Forex - Not Supported
Swap” to specify the order quantity for
the future portion of a F/X swap.
211 PegDifference Not Used.
439 ClearingFirm Not Used.
440 ClearingAccount Same as MsgType ‘D’
204 CustomerOrFirm Yes 0 = Customer Same as MsgType ‘D’
1 = Firm
326 SecurityTradingStatus No Identifies the security trading status Valid values:
applicable to the transaction. Absense 2 = Trading Halt
of this field means that the security is
Ready for Trading.
6002 BrokerStatus No When the broker is in Closeout

45
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

this field will contain ‘C’


18 ExecInst Can contain multiple instructions, Only used for Spread and Multi
space delimited. leg orders.
Valid values:
G = All or none – AON

442 MultiLegReportingType Default is a single security if not Not Used.


specified.
6007 FillID NSE Custom Field. Datatype String. NSE provided Fill(Trade) Number
6008 MultilegOrdType NSE Custom Field. Data type Int. Same as in MsgType ‘U1’
sequence 555 NoLegs Number of Order Leg repeating
group instances
600 LegSymbol Symbol as per NSE Contract
Masters. Must be same for each
Leg.
602 LegSecurityID Token No as per NSE Contract
Masters
607 LegProduct Same as Product(Tag 460)
609 LegSecurityType Valid Values:
FUT = Future
OPT = Option
611 LegMaturityDate For Derivatives [F & O]
612 LegStrikePrice For Options.
613 LegOptAttribute For Options.
Valid values:
L = Long (a.k.a. 'American')
S = Short (a.k.a. 'European')
6009 LegPutOrCall NSE Custom Field. Datatype Int. For Options.
Valid values:
'0' Put

46
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

'1' Call
624 LegSide Valid values:
1 = Buy
2 = Sell
566 LegPrice Price per unit of quantity (e.g.
per share)

Note for Spread Order :


The difference between the
prices at which leg2 and leg1
should trade must be available
in Price field of Leg1 and it
should be less than 9999999.9
Must be zero in other leg.
685 LegOrderQty Order Quantity
6010 LegLeavesQty NSE Custom Field. Datatype Qty. Volume remaining for the leg.
6011 LegCumQty NSE Custom Field. Datatype Qty. Volume filled for the leg.
564 LegPositionEffect Not Used.
Default Value : O=Open
Close is not allowed
565 LegCoveredOrUncovered Not Used.
end sequence Default Value : '1' Uncovered
Covered is not allowed
6016 PAN Yes NSE custom field Same as MsgType ‘D’
6019 OldPAN NSE custom field In case of modification, this field
will have the Old PAN
For Client order (CLI) this field
will have the PAN of the
respective Client. For PRO order
this field will be blank

47
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

6017 AlgoID NSE custom field Same as MsgType ‘D’


6018 AlgoCategory NSE custom field Same as MsgType ‘D’
6020 NanoTimestamp NSE custom field This field is popoulated by
Trading system. Time in this
field will be populated in
nanoseceonds (from 01-Jan-
1980 00:00:00).
Component StandardTrailer Yes

48
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Notes on Execution Report(MsgType = 8) :


1. For Spread & Multileg related execution reports (except for fill reports)
a. Symbol field will be ‘XXXXXXXXXX’
b. Side will be ‘L’ (Custom value) indicating ‘As mentioned in the legs’
c. LeavesQty & CumQty will be Zero. Tags LegLeavesQty & LegCumQty in the repeating group will be used instead.
1. CumQty field value will be zero in case of StopLoss trigger(ExecType = T) even if there were any fills for that chain of orders.
2. Price and OrderQty fields wont be available in Stop Loss trigger(ExecType = T) execution report.

49
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Mapping of certain fields for different types of Execution Report.

[Transcode] Field Name ExecTransType ExecRefID ExecType OrdStatus ExecRestatementReason


Transaction Tag Number 20 19 150 39 378
Type
[2073] 0 = New Not Used 0 = New 0 = New Not Used
Order Confirm

[2074] 0 = New Not Used 5 = Replace 5 = Replace or 50 = [NSE Defined]


Order Modification Confirm D = Restated [Mod by 1 = Partial fill Control User Activity
Corp.Mgr / Br.Mgr /
Control User] 51 = [NSE Defined]
[2075] 0 = New Not Used 4 = Canceled 4 = Canceled Corp.Mgr Activity
Ord Cancel Confirm D = Restated [Cxl by
Corp.Mgr / Br.Mgr / 52 = [NSE Defined]
Control User] Branch.Mgr Activity
[2170] 0 = New Not Used 7 = Stopped (Freeze) 7 = Stopped Not Used
Freeze to Control (Freeze)
[2222] 0 = New Not Used 1 = Partial fill 1 = Partial fill Not Used
Trade Confirm 2 = Fill 2 = Fill
[2212] 0 = New Not Used T = [NSE Defined] 0 = New Not Used
Stop loss Trigger Stop Loss Triggered
[9002, 9004] 0 = New Not Used C = Expired 3 = Done for day Not Used
End of day cancels in Batches
[2231] 0 = New Not Used 8 = Rejected 3 = Done for day Not Used
Order Rejects. Including
Freeze Rejects.
[2154]Spread Order Error
[2155]2L Order Error

50
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

[2156]3L Order Error

[2012] 0 = New Not Used D = Restated 0 = New 3 = Repricing of order


Price Confirmation for
Market Orders
[2124]Spread Order 0 = New Not Used 0 = New 0 = New Not Used
Confirmation
[2125]2L Order Confirmation
[2126]3L Order Confirmation
[2136]Spread Order Mod 0 = New Not Used 5 = Replace 5 = Replace or 50,51,52
Confirmation D = Restated [Mod by 1 = Partial fill
Corp.Mgr / Br.Mgr /
Control User]
[2130]Spread Order 0 = New Not Used 4 = Canceled 4 = Canceled 50,51,52
Cancellation D = Restated [Cxl by
Corp.Mgr / Br.Mgr /
Control User]
[2131]2L Order Cancellation 0 = New Not Used 4 = Canceled 4 = Canceled Not Used
[2132]3L Order Cancellation

51
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Order Cancel/Replace Request [type 'G']

Tag or Field Name Req'd FIX Protocol Comments NSE Comments


Component
Component Standard Header Yes MsgType = G
37 OrderID Yes Unique identifier of most recent order NSE provided Order Number
as assigned by broker.
109 ClientID Used for firm identification in third- Not Used
party transactions (should not be a
substitute for
OnBehalfOfCompID/DeliverToCompID).

76 ExecBoker Used for firm identification in third- Not Used


party transactions (should not be a
substitute for
OnBehalfOfCompID/DeliverToCompID).

41 OrigClOrdID Yes ClOrdID of the previous order (NOT the Not Used
initial order of the day) when canceling
or replacing an order.

11 ClOrdID Yes Unique identifier of replacement order Unique number for each
as assigned by institution. Note that this Transaction Request.
identifier will be used in ClOrdID field of Must not cross 2,000,000,000
the Cancel Reject message if the
replacement request is rejected.
66 ListID Required for List Orders Not Used
1 Account Yes Same as MsgType ‘D’
sequence 78 NoAllocs Number of repeating groups for pre- Not Used
trade allocation

52
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

79 AllocAccount Required if NoAllocs > 0. Must be first Not Used


field in repeating group.
80 AllocShares Not Used
end sequence
63 SettlmntTyp Absence of this field is interpreted as Not Used
Regular.
64 FutSettDate Required when SettlmntTyp = 6 (Future) Not Used
or SettlmntTyp = 8 (Sellers Option)
21 HandlInst Yes Same as MsgType ‘D’
18 ExecInst Not Used
110 MinQty Not Used
111 MaxFloor Same as MsgType ‘D’
100 ExDestination Not Used
sequence 386 NoTradingSessions Specifies the number of repeating Not Used
TradingSessionIDs
336 TradingSessionID Required if NoTradingSessions is > 0. Not Used

end sequence
55 Symbol Yes Must match original order Same as MsgType ‘D’
65 SymbolSfx Same as MsgType ‘D’
48 SecurityID Yes Must match original order Same as MsgType ‘D’
22 IDSource Must match original order Same as MsgType ‘D’
167 SecurityType Yes Same as MsgType ‘D’
460 Product Yes Same as MsgType ‘D’

200 MaturityMonthYear Yes Same as MsgType ‘D’


205 MaturityDay Yes Same as MsgType ‘D’
201 PutOrCall For Options. Same as MsgType ‘D’
202 StrikePrice For Options. Same as MsgType ‘D’

53
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

206 OptAttribute For Options. Same as MsgType ‘D’


231 ContractMultiplier For Fixed Income, Convertible Bonds, Not Used
Derivatives, etc. Note: If used,
quantities should be expressed in the
"nominal" (e.g. contracts vs. shares)
amount.
223 CouponRate For Fixed Income. Not Used
207 SecurityExchange Can be used to identify the security. Not Used

106 Issuer Not Used


348 EncodedIssuerLen Must be set if EncodedIssuer field is Not Used
specified and must immediately
precede it.
349 EncodedIssuer Encoded (non-ASCII characters) Not Used
representation of the Issuer field in the
encoded format specified via the
MessageEncoding field.

107 SecurityDesc Not Used


350 EncodedSecurityDescLen Must be set if EncodedSecurityDesc Not Used
field is specified and must immediately
precede it.

351 EncodedSecurityDesc Encoded (non-ASCII characters) Not Used


representation of the SecurityDesc field
in the encoded format specified via the
MessageEncoding field.

54 Side Yes Must match original side, however, Buy Same as MsgType ‘D’
and Buy Minus can be interchanged as
well as Sell and Sell Plus

54
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

60 TransactTime Yes Time this order request was Not Used


initiated/released by the trader or
trading system.
38 OrderQty Either CashOrderQty or OrderQty is Same as MsgType ‘D’
required. Note that either, but not both,
CashOrderQty or OrderQty should be
specified. Should be the “Total Intended
Order Quantity” (including the amount
already executed for this chain of
orders)

152 CashOrderQty Either CashOrderQty or OrderQty is Not Used


required. Note that either, but not both,
CashOrderQty or OrderQty should be
specified. Specifies the approximate
“monetary quantity” for the order.
Broker is responsible for converting and
calculating OrderQty in shares for
subsequent messages.

40 OrdType Yes Same as MsgType ‘D’


44 Price Required for limit OrdTypes. For F/X Same as MsgType ‘D’
orders, should be the “all-in” rate (spot
rate adjusted for forward points). Can
be used to specify a limit price for a
pegged order, previously indicated, etc.

99 StopPx Required for OrdType = “Stop” or Same as MsgType ‘D’


OrdType = “Stop limit”.
211 PegDifference Amount (signed) added to the price of Not Used
the peg

55
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

388 DiscretionInst Code to identify the price a Not Used


DiscretionOffset is related to and should
be mathematically added to. Required if
DiscretionOffset is specified.

389 DiscretionOffset Amount (signed) added to the “related Not Used


to” price specified via DiscretionInst.

376 ComplianceID Yes Same as MsgType ‘D’


377 SolicitedFlag Not Used
15 Currency Must match original order. Not Used
59 TimeInForce Absence of this field indicates Day order Same as MsgType ‘D’

168 EffectiveTime Can specify the time at which the order Not Used
should be considered valid

432 ExpireDate Conditionally required if TimeInForce = Not Used


GTD and ExpireTime is not specified.

126 ExpireTime Conditionally required if TimeInForce = Not Used


GTD and ExpireDate is not specified.

427 GTBookingInst States whether executions are booked Not Used


out or accumulated on a partially filled
GT order
12 Commission Not Used
13 CommType Not Used
47 Rule80A(aka OrderCapacity) Must match original order Not Used

56
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

121 ForexReq Indicates that broker is requested to Not Used


execute a Forex accommodation trade
in conjunction with the security trade.

120 SettlCurrency Required if ForexReq = Y. Not Used


58 Text Same as MsgType ‘D’
354 EncodedTextLen Must be set if EncodedText field is Not Used
specified and must immediately
precede it.
355 EncodedText Encoded (non-ASCII characters) Not Used
representation of the Text field in the
encoded format specified via the
MessageEncoding field.

193 FutSettDate2 Can be used with OrdType = “Forex - Not Used


Swap” to specify the “value date” for
the future portion of a F/X swap.

192 OrderQty2 Can be used with OrdType = “Forex - Not Used


Swap” to specify the order quantity for
the future portion of a F/X swap.

77 OpenClose For options Same as MsgType ‘D’


203 CoveredOrUncovered No Same as MsgType ‘D’ Same as MsgType ‘D’
204 CustomerOrFirm Yes For options when delivering the order Same as MsgType ‘D’
to execution system/exchange.

210 MaxShow Not Used


114 LocateReqd Not Used
439 ClearingFirm Not Used

57
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

440 ClearingAccount Yes Same as MsgType ‘D’


14 CumQty Yes Currently executed shares for chain of 0.0 if the order doesn’t have
orders. any fills.
Total Filled quantify in case
of part filled order.
Yes NSE custom field TransactTime (Tag=60) from
6000 LastModificationTime the last succesful
modification for the OrderID
6016 PAN Yes NSE custom field Same as MsgType ‘D’

6017 AlgoID NSE custom field Same as MsgType ‘D’

6018 AlgoCategory NSE custom field Same as MsgType ‘D’

Component StandardTrailer Yes

58
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Order Cancel Request [type 'F']

Tag or Field Name Req'd FIX Protocol Comments NSE Comments


Component
Component StandardHeader Yes MsgType = F
41 OrigClOrdID Yes ClOrdID of the previous order (NOT the Not Used
initial order of the day) when canceling
or replacing an order.

37 OrderID Yes Must be NSE provided Order


Number
11 ClOrdID Yes Unique ID of cancel request as assigned Unique number for each
by the institution. Transaction Request.
Must not cross 2,000,000,000
66 ListID Required for List Orders Not Used
1 Account Same as MsgType ‘D’
109 ClientID Used for firm identification in third- Not Used
party transactions (should not be a
substitute for
OnBehalfOfCompID/DeliverToCompID).

76 ExecBroker Used for firm identification in third- Not Used


party transactions (should not be a
substitute for
OnBehalfOfCompID/DeliverToCompID).

55 Symbol Yes Same as MsgType ‘D’

65 SymbolSfx Same as MsgType ‘D’


48 SecurityID Yes Same as MsgType ‘D’. For

59
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Spread Order Cancel this filed


must be of first Leg.
22 IDSource Same as MsgType ‘D’
167 SecurityType Yes Same as MsgType ‘D’
460 Product Yes Same as MsgType ‘D’

200 MaturityMonthYear Yes Specifiesthe month and year of Same as MsgType ‘D’
maturity. Required if MaturityDay is
specified.
205 MaturityDay Yes Can be used in conjunction with Same as MsgType ‘D’
MaturityMonthYear to specify a
particular maturity date.
201 PutOrCall For Options. Same as MsgType ‘D’
202 StrikePrice For Options. Same as MsgType ‘D’
206 OptAttribute For Options. Same as MsgType ‘D’
231 ContractMultiplier For Fixed Income, Convertible Bonds, Not Used
Derivatives, etc. Note: If used,
quantities should be expressed in the
"nominal" (e.g. contracts vs. shares)
amount.
223 CouponRate For Fixed Income. Not Used
207 SecurityExchange Can be used to identify the security. Not Used

106 Issuer Not Used


348 EncodedIssuerLen Must be set if EncodedIssuer field is Not Used
specified and must immediately
precede it.
349 EncodedIssuer Encoded (non-ASCII characters) Not Used
representation of the Issuer field in the
encoded format specified via the
MessageEncoding field.

60
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

107 SecurityDesc Not Used


350 EncodedSecurityDescLen Must be set if EncodedSecurityDesc Not Used
field is specified and must immediately
precede it.

351 EncodedSecurityDesc Encoded (non-ASCII characters) Not Used


representation of the SecurityDesc field
in the encoded format specified via the
MessageEncoding field.

54 Side Yes Same as MsgType ‘D’


60 TransactTime Yes Time this order request was Not Used
initiated/released by the trader or
trading system.
38 OrderQty Either CashOrderQty or OrderQty is Same as MsgType ‘D’
required. OrderQty = CumQty +
LeavesQty (see exceptions above)

152 CashOrderQty Either CashOrderQty or OrderQty is Not Used


required. Specifies the approximate
“monetary quantity” for the order.
Broker is responsible for converting and
calculating OrderQty in shares for
subsequent messages.

376 ComplianceID Yes Same as MsgType ‘D’


377 SolicitedFlag Not Used
58 Text Not Used
354 EncodedTextLen Must be set if EncodedText field is Not Used
specified and must immediately
precede it.

61
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

355 EncodedText Encoded (non-ASCII characters) Not Used


representation of the Text field in the
encoded format specified via the
MessageEncoding field.
40 OrderType Same as MsgType ‘D’

6016 PAN Yes NSE custom field Same as MsgType ‘D’

6017 AlgoID NSE custom field Same as MsgType ‘D’

6018 AlgoCategory NSE custom field Same as MsgType ‘D’

Component StandardTrailer Yes

62
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Order Cancel Reject [type '9']

Tag or Component Field Name Req'd FIX Protocol Comments NSE Comments

Component StandardHeader Yes MsgType = 9


37 OrderID Yes If CxlRejReason=”Unknown order”, specify NSE provided Order Number
“NONE”.
198 SecondaryOrderID Can be used to provide order id used by Not Used
exchange or executing system.

11 ClOrdID Yes Unique order id assigned by institution to


the cancel request or to the replacement
order.
41 OrigClOrdID Yes ClOrdID which could not be Not Used. Will be set to “0”
canceled/replaced. ClOrdID of the previous
order (NOT the initial order of the day)
when canceling or replacing an order.

39 OrdStatus Yes OrdStatus value after this cancel reject is Set value : U
applied. Status will not change from
what it was prior to this reject.

109 ClientID Used for firm identification in third-party Not Used


transactions (should not be a substitute for
OnBehalfOfCompID/DeliverToCompID).
76 ExecBroker Used for firm identification in third-party Not Used
transactions (should not be a substitute for
OnBehalfOfCompID/DeliverToCompID).

63
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

66 ListID Required for rejects against orders which Not Used


were submitted as part of a list.
1 Account Same as MsgType ‘D’
60 TransactTime
434 CxlRejResponseTo Yes 1 - Order Cancel Request
2 - Order Cancel/Replace
Request
102 CxlRejReason Not Used
58 Text Error code
354 EncodedTextLen Must be set if EncodedText field is Not Used
specified and must immediately precede it.

355 EncodedText Encoded (non-ASCII characters) Not Used


representation of the Text field in the
encoded format specified via the
MessageEncoding field.
326 SecurityTradingStatus No Identifies the security trading status Valid values:
applicable to the transaction. Absense of 2 = Trading Halt
this field means that the security is Ready
for Trading.
6002 BrokerStatus No When the broker is in Closeout
this field will contain ‘C’
6008 MultilegOrdType NSE Custom Field. Data type Int. Same as in MsgType ‘U1’
6016 PAN Yes NSE custom field Same as MsgType ‘D’
6017 AlgoID NSE custom field Same as MsgType ‘D’
6018 AlgoCategory NSE custom field Same as MsgType ‘D’
6020 NanoTimestamp NSE custom field This field is popoulated by
Trading system. Time in this
field will be populated in

64
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

nanoseceonds (from 01-Jan-


1980 00:00:00).
Component StandardTrailer Yes

65
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

News [type 'B']

Tag or Field Name Req'd FIX Protocol Comments NSE Comments


Component
Component Standard Header Yes MsgType = B
42 OrigTime
61 Urgency
148 Headline Yes Specifies the headline text Possible headlines :
Message from Control User
General Broadcast
Market Open
Market Close
Preopen Begins
Preopen Ends
358 EncodedHeadlineLen Must be set if EncodedHeadline field is Not Used
specified and must immediately precede
it.
359 EncodedHeadline Encoded (non-ASCII characters) Not Used
representation of the Headline field in
the encoded format specified via the
MessageEncoding field.
sequence 215 NoRoutingIDs Required if any RoutingType and Not Used. Do not Route the Control
RoutingIDs are specified. Indicates the User messages
number within repeating group.
216 RoutingType Indicates type of RoutingID. Required if Not Used
NoRoutingIDs is > 0.
217 RoutingID Identifies routing destination. Required if Not Used
NoRoutingIDs is > 0.
end sequence

66
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

sequence 146 NoRelatedSym Specifies the number of repeating Not Used


symbols specified
46 RelatdSym Can be repeated multiple times if Not Used
message is related to multiple symbols.

65 SymbolSfx Can be repeated multiple times if Not Used


message is related to multiple symbols.

48 SecurityID Can be repeated multiple times if Not Used


message is related to multiple symbols.

22 IDSource Can be repeated multiple times if Not Used


message is related to multiple symbols.

167 SecurityType Must be specified if a Future or Option. If Not Used


a Future: RelatdSym, SecurityType, and
MaturityMonthYear are required. If an
Option: RelatdSym, SecurityType,
MaturityMonthYear, PutOrCall, and
StrikePrice are required.

200 MaturityMonthYear Specifiesthe month and year of maturity. Not Used


Required if MaturityDay is specified.

205 MaturityDay Can be used in conjunction with Not Used


MaturityMonthYear to specify a
particular maturity date.
201 PutOrCall For Options. Not Used
202 StrikePrice For Options. Not Used
206 OptAttribute For Options. Not Used

67
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

231 ContractMultiplier For Fixed Income, Convertible Bonds, Not Used


Derivatives, etc. Note: If used, quantities
should be expressed in the "nominal"
(e.g. contracts vs. shares) amount.

223 CouponRate For Fixed Income. Not Used


207 SecurityExchange Can be used to identify the security. Not Used

106 Issuer Can be repeated multiple times if Not Used


message is related to multiple symbols.

348 EncodedIssuerLen Must be set if EncodedIssuer field is Not Used


specified and must immediately precede
it.
349 EncodedIssuer Encoded (non-ASCII characters) Not Used
representation of the Issuer field in the
encoded format specified via the
MessageEncoding field.
107 SecurityDesc Can be repeated multiple times if Not Used
message is related to multiple symbols.

350 EncodedSecurityDescLen Must be set if EncodedSecurityDesc field Not Used


is specified and must immediately
precede it.

351 EncodedSecurityDesc Encoded (non-ASCII characters) Not Used


representation of the SecurityDesc field
in the encoded format specified via the
MessageEncoding field.

end sequence Not Used

68
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

sequence 33 LinesOfText Yes Specifies the number of repeating lines


of text specified
58 Text Yes Repeating field, number of instances Message
defined in LinesOfText
354 EncodedTextLen Must be set if EncodedText field is
specified and must immediately precede
it.
355 EncodedText Encoded (non-ASCII characters)
representation of the Text field in the
encoded format specified via the
MessageEncoding field.
end sequence
149 URLLink A URL (Uniform Resource Locator) link to Not Used
additional information (i.e.
http://www.XYZ.com/research.html)

95 RawDataLength Not Used


96 RawData Not Used
Component StandardTrailer Yes

69
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Business Message Reject [type 'j']

Tag or Field Name Req'd FIX Protocol Comments NSE Comments


Component

Component StandardHeader Yes MsgType = j (lowercase)


45 RefSeqNum MsgSeqNum of rejected message
372 RefMsgType Yes The MsgType of the FIX message being
referenced.
379 BusinessRejectRefID The value of the business-level “ID” field
on the message being referenced.
Required unless the corresponding ID
field (see list above) was not specified.

380 BusinessRejectReason Yes Code to identify reason for a Business Valid values:
Message Reject message. 0 = Other
1 = Unkown ID
2 = Unknown Security
3 = Unsupported Message Type
4 = Application not available
5 = Conditionally Required Field
Missing
58 Text Where possible, message to explain Error string
reason for rejection
354 EncodedTextLen Must be set if EncodedText field is
specified and must immediately
precede it.

70
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

355 EncodedText Encoded (non-ASCII characters)


representation of the Text field in the
encoded format specified via the
MessageEncoding field.
Component StandardTrailer Yes

71
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Logout [type '5']

Tag or Field Name Req'd FIX Protocol Comments NSE Comments


Component
Component StandardHeader Yes MsgType = 5
58 Text Error Code(if any)
354 EncodedTextLen Must be set if EncodedText
field is specified and must
immediately precede it.

355 EncodedText Encoded (non-ASCII


characters) representation
of the Text field in the
encoded format specified
via the MessageEncoding
field.
Component StandardTrailer Yes

72
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

New Spread and Multileg Order Request [type 'U1']

Tag or Component Field Name Req'd Comments

Component StandardHeader Yes MsgType = U1


11 ClOrdID Yes Unique number for each Transaction Request.
Must not cross 2,000,000,000
1 Account Yes Same as MsgType ‘D’
6008 MultilegOrdType Yes Indicates the type of MultiLeg order.
Valid values:
1 = Spread Order
2 = Two Leg Order
3 = Three Leg Order
sequence 555 NoLegs Yes Number of Order Leg repeating group instances
600 LegSymbol Yes Same as Symbol(Tag 55)

602 LegSecurityID Yes Same as SecurityID(Tag 48)


607 LegProduct Yes Same as Product(Tag 460)
609 LegSecurityType Yes Same as SecurityType(Tag 167)

611 LegMaturityDate Yes Mandatory for Derivatives [F & O]

612 LegStrikePrice Mandatory For Options.


613 LegOptAttribute Mandatory For Options.
Valid values:
L = Long (a.k.a. 'American')
S = Short (a.k.a. 'European')

73
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

6009 LegPutOrCall Mandatory For Options.


Valid values:
'0' Put
'1' Call
624 LegSide Yes Valid values:
1 = Buy
2 = Sell

685 LegOrderQty Yes Order Quantity for the leg


566 LegPrice Yes Price per unit of quantity (e.g. per share)

Note for Spread Order :


The difference between the prices at which leg2
and leg1 should trade must be available in Price
field of Leg1 and it should be less than 9999999.9
Must be zero in other leg.
564 LegPositionEffect Not Used.
Default Value : O=Open
Close is not allowed
565 LegCoveredOrUncovered NO Valid Values :
end sequence Default Value : 0 = order is not COL
1 = order is COL
Same value must be present in all the legs.
18 ExecInst Valid values:
G = All or none - AON
40 OrdType Default & Valid values:
2 = Limit

74
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

59 TimeInForce Default Value : 0 = Day


Valid values:
0 = Day
3 = Immediate or Cancel (IOC)
Note : Day order not allowed in 2L/3L Order

204 CustomerOrFirm Yes Same as MsgType ‘D’


440 ClearingAccount Yes Same as MsgType ‘D’
376 ComplianceID Yes Same as MsgType ‘D’

6016 PAN Yes Same as MsgType ‘D’

6017 AlgoID Same as MsgType ‘D’

6018 AlgoCategory Same as MsgType ‘D’

Component StandardTrailer Yes

75
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Spread Order Cancel/Replace Request [type 'U2']

Tag or Field Name Req'd Comments


Component
Component StandardHeader Yes MsgType = U2

11 ClOrdID Yes Same as MsgType ‘D’

1 Account Yes Same as MsgType ‘D’


37 OrderID Yes NSE provided Order Number
sequence 555 NoLegs Yes Number of Order Leg repeating group instances

600 LegSymbol Yes Same as Symbol(Tag 55)


602 LegSecurityID Yes Same as SecurityID(Tag 48)
607 LegProduct Yes Same as Product(Tag 460)
609 LegSecurityType Yes Same as SecurityType(Tag 167)

611 LegMaturityDate Yes Mandatory for Derivatives [F & O]


612 LegStrikePrice Mandatory For Options.
613 LegOptAttribute Mandatory For Options.
Valid values:
L = Long (a.k.a. 'American')
S = Short (a.k.a. 'European')

76
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

6009 LegPutOrCall Mandatory For Options.


Valid values:
'0' Put
'1' Call

624 LegSide Yes Valid values:


1 = Buy
2 = Sell
685 LegOrderQty Yes Order Quantity
566 LegPrice Yes Price per unit of quantity (e.g. per share)

Note for Spread Order :


The difference between the prices at which leg2 and
leg1 should trade must be available in Price field of
Leg1 and it should be less than 9999999.9
Must be zero in other leg.
6011 LegCumQty Yes Volume filled for the leg.
564 LegPositionEffect Not Used.
Default Value : O=Open
Close is not allowed
565 LegCoveredOrUncovered No Valid Values :
end sequence Default Value : 0 = order is not COL
1 = order is COL
Same value must be present in all the legs.
18 ExecInst Valid values:
G = All or none - AON

40 OrdType Default & Valid values:


2 = Limit

77
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

59 TimeInForce Default Value : 0 = Day


Valid values:
0 = Day
3 = Immediate or Cancel (IOC)
204 CustomerOrFirm Yes Same as MsgType ‘D’

440 ClearingAccount Yes Same as MsgType ‘D’


376 ComplianceID Yes Same as MsgType ‘D’

6000 LastModifiedTime Yes Transaction Time from the last successful


modification/transaction for the given OrderID
6013 CancelRemainingQty Mandatory in case of Cancelling All the Remaining
Quantity.

Default Value : N = No
Valid values :
Y = Yes
N = No
6016 PAN Yes Same as MsgType ‘D’

6017 AlgoID Same as MsgType ‘D’

6018 AlgoCategory Same as MsgType ‘D’

Component StandardTrailer Yes

78
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

GiveUp Report [type 'U3']

Tag or Field Name Req'd Comments


Component
Component StandardHeader Yes MsgType = U3
GiveUp Report
37 OrderID NSE provided Order Number
6007 FillID NSE provided Fill Number
6012 GiveUpStatus Valid Values:
1-Approved
2-Rejected
55 Symbol Yes Same as MsgType ‘D’.
48 SecurityID Same as MsgType ‘D’.
167 SecurityType Yes Same as MsgType ‘D’.
460 Product Yes Same as MsgType ‘D’.
200 MaturityMonthYear Yes Same as MsgType ‘D’.
205 MaturityDay Yes Same as MsgType ‘D’.
201 PutOrCall Same as MsgType ‘D’.
202 StrikePrice Same as MsgType ‘D’.
206 OptAttribute Same as MsgType ‘D’.
54 Side Yes Valid values:
1 = Buy
2 = Sell
31 LastPx Price of the fill.
32 LastShares Quantity of shares bought/sold on the fill.
77 OpenClose
203 CoveredOrUncovered

79
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

6000 LastModificationTime Transaction Time from the last successful


modification/transaction for the given OrderID

440 ClearingAccount Same as MsgType ‘D’.


Component StandardTrailer Yes

80
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Position Maintenance Request [type 'U4']

Tag or Field Name Req'd Comments


Component
Component StandardHeader Yes MsgType = U4

712 PosMaintAction Yes 1 = New


2 = Replace
3 = Cancel
710 PosReqID Yes Same as MsgType ‘D’

709 PosTransType Yes Identifies the type of position transaction


Valid values:
1 = Exercise
2 = Do Not Exercise

714 PosMaintRptRefID Reference to a PosMaintRptID from a previous Position


Maintenance Report that is being replaced or canceled.
Mandatory in case of Replace or Cancel request.
55 Symbol Yes Same as MsgType ‘D’
48 SecurityID Yes Same as MsgType ‘D’
167 SecurityType Yes Same as MsgType ‘D’
460 Product Yes Same as MsgType ‘D’
200 MaturityMonthYear Yes Same as MsgType ‘D’
205 MaturityDay Yes Same as MsgType ‘D’
201 PutOrCall Same as MsgType ‘D’
202 StrikePrice Same as MsgType ‘D’

81
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

206 OptAttribute Same as MsgType ‘D’


1 Account Yes Same as MsgType ‘D’
60 TransactTime Yes Time this order request was released by NSE trading
system.
53 Shares Yes This field should contain the number of contracts for
which the request is being made.
204 CustomerOrFirm Yes Same as MsgType ‘D’
440 ClearingAccount Yes Same as MsgType ‘D’
6000 LastModifiedTime Transaction Time from the last successful
modification/transaction for the given PosMaintRptID
from a previous Position Maintenance Report that is
being replaced or canceled.
Mandatory in case of Replace or Cancel request.
Component StandardTrailer Yes

82
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Position Maintenance Report [type 'U5']

Tag or Field Name Req'd Comments


Component
Component StandardHeader Yes MsgType = U5

712 PosMaintAction Yes 1 = New


2 = Replace
3 = Cancel
710 PosReqID Unique identifier for the position maintenance request
associated with this report
709 PosTransType Identifies the type of position transaction
Valid values:
1 = Exercise
2 = Do Not Exercise

721 PosMaintRptID Yes Identifier for this chain of position maintainence request
& responses.
722 PosMaintStatus Yes Status of Position Maintenance Request
Valid values:
0 = Accepted
2 = Rejected

55 Symbol Same as MsgType ‘D’


48 SecurityID Yes Same as MsgType ‘D’
167 SecurityType Same as MsgType ‘D’
460 Product Same as MsgType ‘D’

83
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

200 MaturityMonthYear Same as MsgType ‘D’


205 MaturityDay Same as MsgType ‘D’
201 PutOrCall Same as MsgType ‘D’
202 StrikePrice Same as MsgType ‘D’
206 OptAttribute Same as MsgType ‘D’
1 Account Yes Same as MsgType ‘D’

60 TransactTime Yes Time this request was released by NSE trading system.

53 Shares Yes This field should contain the number of contracts for
which the request is being made.

204 CustomerOrFirm Same as MsgType ‘D’


440 ClearingAccount Same as MsgType ‘D’
58 Text Error Code
Component StandardTrailer Yes

84
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Order Mass Cancel Request [Type ‘U6’]


This message type is used for Kill Switch functionality. This functionality provides a facility to traders to cancel all of their orders at the same
time.

Tag or Field Name Req'd Comments


Component
Component StandardHeader Yes MsgType = U6

11 ClOrdID Yes Unique ID of Order Mass Cancel Request as


assigned by the institution.
Must not cross 2,000,000,000
530 MassCancelRequestType Yes Specifies the type of cancellation requested
7 = Cancel all orders

60 TransactTime Yes Time this order request was


initiated/released by the trader or trading
system
6016 PAN Yes Same as MsgType ‘D’

6017 AlgoID Same as MsgType ‘D’

6018 AlgoCategory Same as MsgType ‘D’

Component StandardTrailer Yes

The response for Order Mass Cancel Request [Type ‘U6’] will be execution with order cancel confirmation or the rejection of request with error
code.

85
Annexure

Supported Order Types


1. Market order
2. Limit Order
3. Stop Loss Market
4. Stop Loss Limit
5. Time in Force of Immediate or Cancel as per NNF rules.
6. Spread Orders
7. Multileg (2L & 3L) orders
8. Exercise Request
9. Giveup Reports

Unsupported Functionalities
Certain functionalities that wont be supported through the FIX path are as below
1. Negotiated booktype
2. Auction booktype
3. Odd Lot booktype
4. Spot booktype
5. Time in Force and Order types
a. ATO – At the Opening
b. MF – Minimum Fill
c. FOK – Fill or Kill
d. MIT – Market if Touched
e. GTC – Good Till Cancel
f. GTD – Good Till Date
6. Position Liquidation
7. Trade Modification
8. Trade Cancellation
9. Market Data will be available in non-FIX format.

86
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End

Important References & Reading


1 Protocol for Non-NEAT Front End (NNF) - Futures and Options Trading System
a) List of Error Codes
b) Reason Codes
c) Pipe Delimited File Structures
i) Security File Structure
ii) Contract File Structure
iii) Participant Structure
2 FIX version 4.2 Protocol Specifications – www.fixprotocol.org

87

You might also like