TP Fo Fix NNF Protocol 1.4
TP Fo Fix NNF Protocol 1.4
TP Fo Fix NNF Protocol 1.4
Version 1.4
MARCH - 2018
1
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
Notice
2
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
Version 1.4
MARCH 2018
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
5
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
CONTENTS
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
FIX IP
Cash CTCL
Network
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
FIX Version
NSE will support the FIX version 4.2 for Futures and Options
8
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
11
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
12
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
13
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
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.
15
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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.
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
115 OnBehalfOfCompID
128 DeliverToCompID
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
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.
212 XmlDataLen
213 XmlData
19
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
20
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
Tag or Component Field Name Req'd FIX Protocol Comments NSE Comments
21
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
message
22
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
23
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
343 TradSesPreCloseTime Time of the pre-close of the trading session Not Supported
25
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
26
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
27
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
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
30
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
31
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
32
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
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
36
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
37
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
40
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
41
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
42
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
43
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
44
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
45
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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)
47
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
48
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
49
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
50
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
51
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
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’
53
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
55
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
56
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
57
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
58
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
59
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
60
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
61
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
62
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
Tag or Component Field Name Req'd FIX Protocol Comments NSE Comments
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.
63
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
64
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
65
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
66
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
67
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
68
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
69
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
71
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
72
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
73
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
74
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
75
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
76
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
77
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
Default Value : N = No
Valid values :
Y = Yes
N = No
6016 PAN Yes Same as MsgType ‘D’
78
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
79
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
80
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
81
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
82
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
83
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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.
84
NSEIL - Futures and Options Trading System FIX Protocol for Non-NEAT Front End
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
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
87