Direct Edge XPRS API Manual V 1.30

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 49

Edge XPRS Specifications
(High Performance API)
Version 1.30
June 10, 2013
Produced by:
Direct Edge
545 Washington Blvd, Jersey City NJ 07310
www.directedge.com
Direct Edge API Specifications for Equities 3
Direct Edge API Specifications for Equities
4
Table of contents
Chapter 1
About this Document............................................................................................... 5
1.1
Summary of Changes ....................................................................................................... 5
Chapter 2.
Overview ................................................................................................................... 9
2.1
Hours of Operation ........................................................................................................... 9
2.2.
Contact Information ........................................................................................................... 9
2.3.
Connectivity and Testing ................................................................................................... 9
Chapter 3.
Message Exchange Protocol ................................................................................ 10
3.1
Packages......................................................................................................................... 10
3.2.
Login ................................................................................................................................ 10
3.3.
Package Sequence ......................................................................................................... 10
3.4.
Heartbeats ....................................................................................................................... 11
3.5.
End of Session ................................................................................................................ 11
3.6.
Data Types ...................................................................................................................... 11
3.7.
Summary of MEP Messages........................................................................................... 11
3.8.
MEP Message Formats ................................................................................................... 12
Chapter 4.
Order Types Supported by the API ...................................................................... 15
4.1.
Enter Order –Short and Extended Format ...................................................................... 15
Chapter 5
Direct Edge Order API ........................................................................................... 17
5.1
API Architecture .............................................................................................................. 17
5.2
Data Types ...................................................................................................................... 17
5.3
Supported Messages ...................................................................................................... 17
5.4
Message Formats ........................................................................................................... 22
Chapter 6
Appendices ............................................................................................................. 49
6.1
Appendix A: Direct Edge Symbology .............................................................................. 49
6.2
Appendix B: Lock/Cross Re-Pricing Options .................................................................. 50
Direct Edge API Specifications for Equities 5
Chapter 1 About this Document
This document provides guidelines for accessing all of the Direct Edge Stock Exchange
platforms. It contains information regarding API connectivity and provides formats for submitting
orders to the EDGX Exchange and EDGA Exchange.
1.1 Summary of Changes
A history of significant changes to this template is described in the table below.
Issue Prepared By Date Changes
1.0 Bill
Ciabattoni
Sept 22,
2009
First Version
1.1 Bill
Ciabattoni
Oct 8, 2009 Section 3.8:
Login Request – Increased Requested
Sequence Number message length to 20
from 12.
Login Accepted - Increased Sequence
Number message length to 20 from 12.
Section 5.4:
Reject reason code “P” added.
Added Super Aggressive and Aggressive
options to Routing Instructions field.
1.2 Bill Ciabattoni Jan 22, 2010 Change made to End of Session message in
Sections 3.5, 3.7, and 3.8.
1.3 Bill Ciabattoni Feb 12, 2010 Section 5.4: Corrected inaccurate offset values in
“Replaced Message”.
1.4 Bill Ciabattoni March 25,
2010
Section 3.8: Removed “A message with zero
length is a special end of session marker” from
Sequenced and Un-Sequenced Data message
descriptions.
Section 5.4: Removed reference to fee schedule
and added actual liquidity flags in the Liquidity
Flag field for the Executed Order message
description.
1.5 Bill Ciabattoni April 16, 2010 Section 3.2: Updated to stateAuthentication of the
Login Request message only requires Username.
The password will be ignored at this time.”
Section 4.1: Updated list of functionality
supported and not supported by High
Performance API.
Section 5.4:
Corrected Liquidity Flag field in Execution
Message to Alpha-numeric.
Added IOC to all Directed ISO strategy
descriptions in Enter Order-Extended Format
and Accepted Message- Extended Format.
Direct Edge API Specifications for Equities
6
1.6 Bill Ciabattoni April 26, 2010 Section 5.4: Added “For all Directed ISO strategies
Inter-market Sweep Eligibility must equal “Y” and
Time in Force must equal “0” (IOC), or the order will
be rejected” to Route Strategy description in Enter
Order – Extended Format message.
1.7 Bill Ciabattoni July 6, 2010 Section 5.4: Added new “Z” value to “Display” field in
Accepted Message – Short and Extended Formats.
1.8 Bill Ciabattoni Sept 1, 2010 Auction process named Competition for Price
Improvement
SM
(CPI)
Dark Ping process named Comprehensive
Liquidity Check
SM
(CLC)
Section 5.4:
o Updated description on Max Floor field
to indicate the zero may be entered
when not sending a Reserve Order.
o Updated Discretionary Offset to
indicate that sign will be ignored.
1.9 Bill Ciabattoni Oct 1, 2010 Sell Short Exempt added. Effective upon launch
of new SS Circuit Breakers on November 10,
2010.
Directed ISO Strategy (ISBY) added for BATS
“Y” Exchange. Effective upon launch of BYX.
1.10 Bill Ciabattoni Jan 3, 2011 Section 5.4:
Added Anti-Internalization Modifier Message
Added AI Additional Info Message
Please note that above changes will be live on EDGA
on 1/10/2011 and EDGX on 1/18/2011.
1.11 Bill Ciabattoni Jan 20, 2011 Section 5.4:
Added SWPA, SWPB, IOCM, and ICMT
strategies to Extended Order Enter Message and
Accepted Extended Order Message.
Added “SW” Liquidity Flag to Executed Order
Message.
1.12 Bill Ciabattoni Feb 1, 2011 Section 5.4:
Added “RT” and “RX” Liquidity Flags to Executed
Order Message.
Updated description of “K” Liquidity Flag in
Executed Order Message.
Updated description of “Z” Liquidity Flag in
Executed Order Message.
1.13 Bill Ciabattoni Feb 3, 2011 Section 5.4:
Added ROOC and ROBY strategies to Extended
Order Enter Message and Accepted Extended
Order Message.
Added 8, 9, BY, CL, and DM Liquidity Flags to
Executed Order Message.
Added “D” value to Special Order Type field in
for Midpoint Discretionary Order
1.14 Bill Ciabattoni Feb 24, 2011 Section 5.4:
CPI removed from all routing strategies.
1.15 Bill Ciabattoni Mar 29, 2011 Section 5.4:
Direct Edge API Specifications for Equities 7
ROUT, ROUD, ROUZ, ROUE, ROOC, and
RDOT strategies updated to include Select CLCs
and/or Low Cost venues as possible
destinations.
1.16 Bill Ciabattoni May 9, 2011 Section 5.4:
ROBB, ROCO, and SWPC strategies added to
Extended Order Enter Message and Accepted
Extended Order Message.
1.17 Bill Ciabattoni June 28, 2011 Updated Route Out Eligibility field in Order Enter
and Extended Order Enter message to state that
Post Only orders marked HideNotSlide or Hidden
may be executed as a Taker if price improved on
EDGX; Post Only instructions may not be
included on Hidden orders or Odd Lot orders on
EDGA; Post Only Discretionary orders executed
in their discretionary range will be charged the
Hidden order rate on EDGA. Live date August 1,
2011.
1.18 Bill Ciabattoni July 12, 2011 Updated Route Out Eligibility field in Order Enter
and Extended Order Enter message descriptions
to reflect changes for 15c3-5 compliance.
1.19 Bill Ciabattoni July 22, 2011 Updated Route Out Eligibility field in Order Enter
and Extended Order Enter messages to state
that Post Only may not be included on
Discretionary Orders on EDGA. Live date
August 1, 2011.
1.20 Bill Ciabattoni Sept 29, 2011 Added PI and RR Liquidity Flags in the Executed
Order Message
1.21 Bill Ciabattoni Jan 30, 2012 Reject Message can now be sent in response to
a Cancel Message.
Added new value “b” (Post to EDGX for orders
originating on EDGA) to Route Out Eligibility field
in Enter Order Message.
1.22 Bill Ciabattoni Feb 29, 2012 Added several new Liquidity Flags in the
Executed Order Message
1.23 Bill Ciabattoni Mar 20, 2012 Added RMPT Routing Strategy to Enter Order
Messages.
Added Post to Away Destinations to Route Out
Eligibility field in Enter Order Messages.
1.24 Bill Ciabattoni May 1, 2012 Added BB Liquidity Flag in the Executed Order
Message.
1.25 Bill Ciabattoni June 26, 2012 Added new value in Special Order Type field for
Midpoint Discretionary Order.
Added RQ, DM, and DT Liquidity Flags to the
Executed Order Message.
Added new “Displayed with Attribution” value to
Displayed field. Expected live date is Sept 2012.
1.26 Bill Ciabattoni June 28, 2012 Added new Reject Reason Codes A, H, and I.
1.27 Bill Ciabattoni Sept 4, 2012 Added value in Special Order Type field for
Route Peg Order.
Added “RP” liquidity flag for Route Peg Orders to
Executed Order Message.
Direct Edge API Specifications for Equities
8
Removed Post to CHX option from Route Out
Eligibility field.
Removed “RM” liquidity flag from Executed
Order Message.
1.28 Bill Ciabattoni Dec 6, 2012 Added new Reject Reason Code R.
1.29 Bill Ciabattoni April 15, 2013 Added optional Extended Reject Message format
1.30 Bill Ciabattoni June 10, 2013 Added new value in Special Order Type field for
NBBO Offset Peg (Market Maker Peg)
Updated “Replace Order” description to state
that decrementing quantity will not generate a
new timestamp.
Updated Liquidity Flag field to include ZA and ZR
flags.
Direct Edge API Specifications for Equities 9
Chapter 2. Overview
2.1 Hours of Operation
EDGX and EDGA Exchanges
Session
Start Time
End Time
Begin Order Acceptance – Pre-Market Orders
(Pre-Market orders will be accepted but will not
begin trading until 8:00 AM.)
6:00 AM 8:00 AM
Begin Order Acceptance – Regular Session Orders
(Regular Session orders will be accepted but will not
begin trading until 9:30 AM.)
6:00 AM 9:30 AM
Pre-Market Session 8:00 AM 9:30 AM
Regular Trading Session 9:30 AM 4:00 PM
Post Market Session 4:00 PM 8:00 PM
MidPoint Match Dark Pool
Session
Start Time
End Time
Begin Order Acceptance
(MidPoint Match orders will be accepted but will not
begin trading until 9:30 AM.)
6:00 AM 9:30 AM
Regular Trading Session 9:30 AM 4:00 PM
2.2. Contact Information
Department Email Address Phone
Market Operations/FIX Support decs@directedge.com 201-942-8220
Sales sales@directedge.com 866-472-5267
Finance and Billing billing@directedge.com 201-942-8247
2.3. Connectivity and Testing
New order routing connections must pass certification testing before they are permitted to
enter the production marketplace. Please call 201-942-8220 for more information.
Direct Edge API Specifications for Equities
10
Chapter 3. Message Exchange Protocol
Direct Edge has developed a lightweight point-to-point protocol, built on top of TCP/IP
sockets. It is identified as the Message Exchange Protocol (MEP). The MEP is used in
systems when a server needs to deliver a logical stream of sequenced messages to a client
application. MEP also supports the sending of unsequenced messages. Sequenced
messages are recoverable after a socket disruption but unsequenced messages are not.
The MEP itself has no true business functionality. It is a session level protocol and transport
built to carry higher-level application messages.
The MEP client and server communicate by exchanging a series of logical packages.
3.1 Packages
Each MEP logical package has:
Two byte big-endian length that indicates the length of the rest of the packet
(meaning the length of the payload plus the length of the packet type – which is 1)
Single byte header which indicates the package type.
Variable length payload.
3.2. Login
The MEP also includes a simple scheme that allows the server to authenticate the client
upon login. Authentication of the Login Request message only requires Username. The
password will be ignored at this time.
3.3. Package Sequence
A MEP connection begins with the client opening a TCP/IP socket to the server and sending
a Login Request Package. If the Login Request is valid, the server responds with a Login
Accepted Package and begins sending Sequenced Data Packages. The connection
continues until the TCP/IP socket is broken.
Each Sequenced Data Package carries a single, higher-level protocol message.
Sequenced Data Packages do not contain an explicit sequence number; instead both client
and server compute the sequence number locally by counting messages as they go. The
sequence number of the first sequenced message in each session is always 1.
Typically, when initially logging into a server, the client will set the Requested Sequence
Number field to 1 and leave the Requested Session field blank in the Login Request
Package. The client will then inspect the Login Accepted Package to determine the currently
active session. Starting at 1, the client begins incrementing its local sequence number each
time a Sequenced Data Package is received. If the TCP/IP connection is ever broken, the
client can then re-log into the server indicating the current session and its next expected
sequence number.
Clients send messages to the server using Unsequenced Data Packages. Messages may
be sent at any time after the Login Accepted Package is received. These messages may be
Direct Edge API Specifications for Equities 11
lost during TCP/IP socket connection failures. The higher level application protocol must
handle this.
3.4. Heartbeats
MEP uses logical heartbeat packages to quickly detect link failures. The server must send a
Server Heartbeat Package anytime more than 1 second has passed since the server last
sent any data. This ensures that the client will receive data on a regular basis. If the client
does not receive anything (neither data nor heartbeats) for an extended period of time, it
can assume that the link is down and attempt to reconnect using a new TCP/IP socket.
Similarly, once logged in, the client must send a Client Heartbeat Package anytime more
than 1 second has passed since the client last sent anything. If the server doesn't receive
anything from the client for an extended period of time, it can close the existing socket and
listen for a new connection. Direct Edge waits for 15 missed heartbeats (15 seconds)
before it drops the connection.
3.5. End of Session
The server indicates that the current session has terminated by sending the End of Session
message. This indicates that there will be no more messages contained in this session.
The client will have to reconnect and re-login with a new Session ID to begin receiving
messages for the next available session.
3.6. Data Types
The data types are:
o Character and Alphanumeric data fields are standard ASCII bytes padded on the
right with spaces.
o Integer fields are binary in big-endian format.
o Non applicable Alpha fields should be filled with spaces to match the proper field
length.
o Non applicable Integer fields should be filled with zeros to match the proper field
length.
3.7. Summary of MEP Messages
The table below shows the origin and sequence of packages.
Message Notes
From Client From Server
Login Request The MEP client must send a Login Request Package immediately
upon establishing a new TCP/IP socket connection to the server.
The server can terminate an incoming TCP/IP socket if it does not
receive a Login Request Package within a reasonable period of time
(typically 30 seconds).
Login
Accepted
The MEP server sends a Login Accepted Package in response to
receiving a valid Login Request from the client.
This package will always be the first non-debug package sent by the
server after a successful Login Request.
Direct Edge API Specifications for Equities
12
Login Reject The MEP server sends this package in response to an invalid Login
Request Package from the client. The server closes the socket
connection after sending the Login Reject Package.
This is the only non-Debug Package sent by the server in the case
of an unsuccessful login attempt.
Unsequenced
Data
This package is a container that carries the higher level application
messages from the client to the server. Up to 100 messages may be
included in a single, unsequenced package. These messages are
not sequenced and may be lost in the event of a socket failure.
The higher-level protocol must be able to handle these lost
messages in the case of a TCP/IP socket connection failure.
Sequenced
Data
This package is a container that carries the higher level application
messages from the server to the client. The sequence number of
each message is implied; the initial sequence number of the first
Sequenced Data Package for a given TCP/IP connection is
specified in the Login Accepted Package and the sequence number
increments by 1 for each Sequenced Data Package transmitted.
Since MEP logical packages are carried via TCP/IP sockets, the
only way logical packages can be lost is in the event of a TCP/IP
socket connection failure. In this case, the client can reconnect to
the server and request the next expected sequence number and
pick up where it left off.
Client Heartbeat The client should send a Client Heartbeat Package anytime more
than 1 second passes where no data has been sent to the server.
The server can then assume that the link is lost if it does not receive
anything for an extended period of time.
Server
Heartbeat
The server should send a Server Heartbeat Package anytime more
than 1 second passes where no data has been sent to the client.
The client can then assume that the link is lost if it does not receive
anything for an extended period of time.
Debug A Debug Package can be sent by either side of the MEP connection
at anytime. Debug Packages should be ignored by both client and
server application software.
Debug See above.
Logout Request The client may send a Logout Request Package to request the
connection be terminated. Upon receiving a Logout Request
Package, the server will immediately terminate the connection and
close the associated TCP/IP socket.
End of
Session
The server indicates that the current session has terminated by
sending an End of Session message. This indicates that there will
be no more messages contained in this session.
3.8. MEP Message Formats
Field
Offset
Length
Value
Notes
Login
Request
Package
Length 0 2 Integer Number of bytes after this
field until the next package
Package
Type 2 1 "L"
Username 3 6 Alphanumeric
Username. Case
insensitive.
Password 9 10 Alphanumeric
Password. Case insensitive.
Requested
Session 19 10 Alphanumeric
Specifies the session or all
blanks for the currently
active session.
Direct Edge API Specifications for Equities 13
Field
Offset
Length
Value
Notes
Requested
Sequence
Number 29 20
Numeric Specifies the next sequence
number in 0 to start
receiving the most recently
generated message. Note
that this field is expressed in
ASCII format. (Left padded
with spaces)
Login
Accepted
Package
Length 0 2 Integer Number of bytes after this
field until the next package
Package
Type 2 1 "A"
Session 3 10 Alphanumeric
The session ID of the
session that is now logged
into.
Sequence
Number
13 20
Numeric The sequence number of
the next Sequenced
Message to be sent. Note
that this field is expressed in
ASCII format. (Left padded
with spaces)
Login
Rejected
Package
Length 0 2 Integer Number of bytes after this
field until the next package
Package
Type 2 1 "J"
Reject
Reason
Code
3 1
Alpha Login Reject Codes Reason
codes:
“A” = Not Authorized.
Invalid username and
password combination.
“S” = Session not available.
The Requested Session in
the Login Request Package
was either invalid or not
available.
Sequenced
Data
Package
Length 0 2 Integer Number of bytes after this
field until the next package
Package
Type 2 1 "S"
Message
3 N
All Defined by a higher-level
protocol. May contain a
combination of ASCII and
binary data.
Unsequenced
Data
Package
Length 0 2 Integer Number of bytes after this
field until the next package
Package
Type 2 1 "U"
Message
3 N
All Defined by a higher-level
protocol. May contain a
combination of ASCII and
binary data.
Server
Heartbeat
Package
Length 0 2 Integer Number of bytes after this
field until the next package
Package
Type 2 1 "H"
Client
Heartbeat
Package
Length 0 2 Integer Number of bytes after this
field until the next package
Package
Type 2 1 "R"
Direct Edge API Specifications for Equities
14
Field
Offset
Length
Value
Notes
Logout
Request
Package
Length 0 2 Integer Number of bytes after this
field until the next package
Package
Type 2 1 "O"
Debug Package
Length 0 2 Integer Number of bytes after this
field until the next package
Package
Type 0 1 "+"
Text 1 N Alphanumeric
Free form human readable
text.
End of
Session
Package
Length 0 2 Integer Number of bytes after this
field until the next package
Package
Type 2 1 “Z”
Direct Edge API Specifications for Equities 15
Chapter 4. Order Types Supported by the API
4.1. Enter Order –Short and Extended Format
The table below describes the order types and instructions that are available on the Enter Order -
Short Format and the Enter Order – Extended Format messages.
Or
der Type/Instruction
Enter Order
Short
Format Enter Order - Extended Format
Market Orders No No
Limit Orders Yes Yes
Symbols with Suffixes No Yes
Full Routing Capabilities No Yes
IOC Yes Yes
FOK Yes Yes
Day Yes Yes
Good Till Time (GTT) No Yes
ISO Yes Yes
ISO Post Only Yes Yes
Hidden Orders Yes Yes
MidPoint Match (EDGX only) Yes Yes
Re-Pricing Options:
Hide Not Slide
Price Adjust
Single Re-Price
Cancel Back
Yes Yes
Midpoint Pegged Orders
(EDGA only) Yes Yes
Midpoint Discretionary Orders Yes Yes
Primary Pegged Orders No Yes
Market Pegged Orders No Yes
Pegged Discretionary Orders No Yes
Absolute Limit on Pegged
Discretionary Orders No No
Minimum Execution Quantity –
All Executions No Yes
Minimum Execution Quantity –
First Execution Only No No
Direct Edge API Specifications for Equities
16
Reserve Orders No Yes
Random Replenish on
Reserve Orders No No
Discretionary Orders No Yes
Direct Edge API Specifications for Equities 17
Chapter 5 Direct Edge Order API
Direct Edge Order API is a simple protocol that allows Direct Edge participants to enter
orders, cancel existing orders, and receive executions.
5.1 API Architecture
The Direct Edge Order API protocol is composed of logical messages passed between the
Direct Edge Order API host and the client application. The Message Exchange Protocol
(MEP) is used for session management and transport. Each message type has a fixed
message length. Messages may contain ASCII and binary data.
All messages sent from the Direct Edge Order API host to the client are sequenced and their
delivery is ensured by the MEP.
Messages sent from the Direct Edge Order API client to the host are inherently non-
guaranteed, even if they are carried by a lower level protocol that guarantees delivery (like
TCP/IP sockets). Therefore, all host-bound messages are designed so that they can be re-
sent for robust recovery from connection and application failures.
Each physical Direct Edge Order API host port is bound to a Direct Edge assigned logical
Direct Edge Order API Account. On a given day, every order entered on Direct Edge Order
API is uniquely identified by the combination of the logical Direct Edge Order API Account
and the participant created Token field.
The Direct Edge Order API is designed to offer high performance under very demanding
conditions. Performance can be increased further by batching multiple messages in a
single, unsequenced MEP package. Up to 100 messages may be placed in a single
unsequenced MEP package.
5.2 Data Types
All integer fields are expressed in unsigned, big-endian binary format.
All signed integer fields are expressed in two’s complement, big-endian binary format.
Alpha fields are left-justified and padded on the right with spaces.
Prices are 4 byte integer fields. Prices contain 5 whole number digits followed by 5 decimal
digits. For example, a price of $21.57 expressed in the API integer format would be
2157000. The maximum price allowable is through the API is $42949.67296.
Timestamp fields (8 bytes) are given in microseconds past midnight Eastern Time.
5.3 Supported Messages
Message
Notes
From
Direct
Edge
From
Member
Direct Edge API Specifications for Equities
18
Enter Order
(Short
Format)
The Enter Order message lets you enter a new order into
Direct Edge.
Each new order must have a Token that is unique to the day
and that logical Direct Edge API account.
If you send a valid order, you should receive an Accepted
Order message.
If you send an Enter Order message with a previously used
Token, the new order will be ignored.
Enter Order
(Extended
Format)
The Enter Order Extended message lets you enter a new
order into Direct Edge for a symbol having a suffix. It also
allows the use of additional order types and instructions that
are not available in the short format message.
Each new order must have a Token that is unique to the day
and that logical Direct Edge API account.
If you send a valid order, you should receive an Accepted
Order message.
If you send an Enter Order message with a previously used
Token, the new order will be ignored.
Suffixes are entered into the Stock Suffix field in the record
that has been added as the last field in this message.
Accepted
Message
(Short
Format)
An Accepted message acknowledges the receipt and
acceptance of a valid Enter Order message. The data fields
from the Enter Order message are echoed back in the
Accepted message.
Note that the accepted values may differ from the entered
values for some fields. You will always receive an Accepted
message for an order before you get any Canceled Order
messages or Executed Order messages for the order.
Accepted
Message
(Extended
Format)
An Extended Accepted message acknowledges the receipt
and acceptance of a valid Enter Order Extended message.
The data fields from the Enter Order Extended message are
echoed back in the Extended Accepted message.
Note that the accepted values may differ from the entered
values for some fields. You will always receive an Extended
Accepted message for an order before you get any Canceled
Order messages or Executed Order messages for the order.
Executed
Order
An Executed Order message informs you that all or part of an
order has been executed.
Direct Edge API Specifications for Equities 19
Rejected
Message
A Rejected message may be sent in response to an Enter
Order, Cancel, or Replace message if it cannot be accepted
at this time. The reason for the rejection is given. No further
actions are permitted on this order.
The Token of a rejected order cannot be re-used.
Cancel Order
The Cancel Order message is used to request that an order
be canceled or reduced. In the Cancel Order message, you
must specify the new "intended order size" for the order. The
"intended order size" is the maximum number of shares that
can be executed in total after any partial executions and the
cancel are applied.
To cancel the entire balance of an order, you would enter a
Cancel Order message with a Shares field of zero.
Note that the only acknowledgement to a Cancel Order
message is the resulting Canceled Order message.
Any superfluous Cancel Order messages will trigger a Reject
Message with reason code = “I” (Order Not Found). This
includes, non-active orders that have already been filled or
canceled.
Canceled
Message
A Canceled message informs you that an order has been
reduced or canceled. This could be acknowledging a Cancel
Order message or it could be the result of an order time out or
automatic cancel.
Note that a Canceled message does not necessarily mean
the entire order is dead. Some portion of the order may still be
alive.
Cancel
Pending
A Cancel Pending message is sent in response to a Cancel
Order request that cannot be immediately processed due to a
route out. The cancel instructions will be applied to any
unexecuted portion of the order when it returns from the away
market destination.
After receiving the Cancel Pending, you may still receive
executions on the order. If the entire quantity is executed,
you will not get a canceled message. If only part of the order
is executed, you will receive a cancel message for the
remaining balance.
Direct Edge API Specifications for Equities
20
Replace
Order
The Replace Order message allows you to alter the quantity
and price of an existing order in a single message. Replacing
an order with a larger quantity or new price will create a new
timestamp for the order. Orders that are decremented to a
smaller quantity will retain their timestamp.
Any superfluous Replace Order messages will trigger a
Reject Message with reason code = “I” (Order Not Found).
This includes, non-active orders that have already been filled
or canceled.
Replaced
Message
A Replaced message informs you that a Cancel Replace
message has been processed.
Replace
Pending
A Replace Pending message is sent in response to a Replace
Order request that cannot be processed due to a route out.
The replace instructions will be applied to any unexecuted
portion of the order when it returns from the away market
destination.
Important Note: When a replace is pending, no other order
modifications can be made until it has been replaced or
executed. All subsequent replace requests will be rejected
until the first request is completed.
System
Event
System Event messages signal events that affect the entire
Direct Edge system.
Broken
Trade
A Broken Trade message informs you that an execution has
been broken. The trade is no longer good and will not clear.
The reason for the break is given.
You will always get an Executed Order message prior to
getting a Broken Trade message for a given order/execution.
Price
Correction
A Price Correction message informs you that an execution
has been price-corrected.
You will always get an Executed Order message prior to
getting a Price Correction message for a given
order/execution.
Anti-
Internalization
Modifier
The Anti-Internalization Modifier can be included in the un-
sequenced data package if the user wants to control AI
instructions at the Order Level. The orders processed in this
envelope will use the supplied Anti-Internalization Modifier
from the envelope. Within the same envelope, members can
include more than one Anti-Internalization Modifier that will
impact all subsequent orders.
Direct Edge API Specifications for Equities 21
AI
Additional
Info
Message
The AI Additional Information Message provides members
with information about the order that was canceled due to
Anti-Internalization instructions. This is an optional message
that members can choose to receive or they can just receive
the Canceled Message, or both messages. If the member
chooses to receive both messages, the AI Additional
Information Message will immediately follow the Canceled
Message, there will be no messages sent in between.
Direct Edge API Specifications for Equities
22
5.4 Message Formats
Name
Offset
Len
Value
Notes
Enter Order
Short Format
(from Member)
Type 0 1 “O” Identifies this message as an
Enter Order – Short Format
message type. The Short
Format of this message
allows for less order type
features than the Extended
Format message.
Order Token 1 14 Alpha-
numeric
This is a free-form, alpha-
numeric field. You can enter
any information you like.
Token must be day-unique
for each Direct Edge API
account. Token is case
sensitive, but mixing upper-
case and lower-case Tokens
is not recommended.
Buy/Sell
Indicator
15 1 Alpha “B” = Buy order
“S” = Sell order
"T" = Sell Short – Client
affirms ability to borrow
securities.
“E” = Sell Short Exempt –
Client affirms ability to
borrow.
“X” = Sell Short/SS Exempt –
Client does not affirm
ability to borrow
securities. (Results in
rejection of the order.)
Quantity 16 4 Integer Total number of shares
Symbol 20 6 Alpha Stock Symbol
Price 26 4 Integer The limit price of the order.
The price is a 5 digit whole
number followed by a 5
decimal digits.
Time in Force 30 1 Integer The values for Time in Force
are:
0 = Immediate or Cancel
1 = Day
2 = Fill or Kill
Display 31 1 Alpha “Y” = Displayed
“N” = Hidden
“A” = Displayed with
Attribution*
* Expected live date
September 2012
Direct Edge API Specifications for Equities 23
Name
Offset
Len
Value
Notes
Special Order
Type
32 1 Alpha “M”= MidPoint Match EDGX/
MidPoint Peg EDGA
“D” = Midpoint Discretionary
Order – EDGA Only*
“U” = Route Peg Order
“N” = NBBO Offset Peg
(Market Maker Peg)
Re-Pricing Options:
“S” = Hide Not Slide
“P” = Price Adjust
“R” = Single Re-Price
“C” = Cancel Back
(See Appendix B for details
on Re-Pricing options.)
*Midpoint Discretionary
Orders require a “Y” in the
Display field.
Enter a space for this field if
not applicable.
Extended Hrs
Eligible
33 1 Alpha “R” = Regular Session Only
“P” = Pre-Market and
Regular Session
Eligible
“A” = Regular Session and
Post-Market Eligible
“B” = All Sessions Eligible
Capacity 34 1 Alpha “A” = Agency
“P” = Principal
“R” = Riskless Principal
Route out
Eligibility
35 1 Alpha “Y” = Routable (ROUT
strategy only)**
“N” = Book Only***
“P” = Post-Only*&***
“S” = Super Aggressive -
Cross or Lock (Order will be
removed from book and
routed to any quote that is
crossing or locking the order)
“X” = Aggressive - Cross
only (Order will be removed
from book and routed to any
quote that is crossing)
a = Post to EDGA (for orders
originating from EDGX, ROUT,
ROUX, ROUE only)
b = Post to EDGX for orders
originating on EDGA (for ROUT,
Direct Edge API Specifications for Equities
24
Name
Offset
Len
Value
Notes
ROUD, ROUE, ROUX, ROUZ,
ROUQ, RDOT, RDOX, ROPA,
ROBA, ROBX, ROBY, ROBB,
ROCO, ROLF, INET, IOCT,
IOCX, IOCM, ICMT only)
c = Post to NYSE Arca (ROUT,
ROUX, ROUE only)
d = Post to NYSE (ROUT,
ROUX, ROUE only)
e = Post to NASDAQ (ROUT,
ROUX, ROUE only)
f = Post to NASDAQ OMX BX
(ROUT, ROUX, ROUE only)
g = Post to NASDAQ OMX PSX
(ROUT, ROUX, ROUE only)
h = Post to BATS BYX (ROUT,
ROUX, ROUE only)
i = Post to BATS BZX (ROUT,
ROUX, ROUE only)
j = Post to LavaFlow (ROUT,
ROUX, ROUE only)
k = Post to CBSX (ROUT,
ROUX, ROUE only)
l = Post to AMEX (ROUT,
ROUX, ROUE only)
n = Post to NSX (ROUT, ROUX,
ROUE only)
(Use the Enter Order -
Extended Format to enter
routing strategies other than
ROUT)
Enter a space for this field if
not applicable.
*Post Only orders marked
HideNotSlide or Hidden may be
executed as a Taker if price
improved on EDGX.
Post Only instructions may not
be included on Hidden Orders,
Discretionary Orders, or Odd Lot
quantities on EDGA.
**All routing strategies are
subject to erroneous checks
pursuant to 15c3-5
compliance.
***Book Only and Post Only
orders are not subject to
erroneous checks pursuant to
15c3-5 compliance.
Inter-market 36 1 Alpha “Y” = ISO Eligible
Direct Edge API Specifications for Equities 25
Name
Offset
Len
Value
Notes
Sweep (ISO)
Eligibility
“N” = Not ISO Eligible
Enter Order
Extended
Format
(from Member)
Type 0 1 “N” Identifies this message as an
Enter Order - Extended
Format message type. This
is an alternative to the Enter
Order - Short Format
message. It is to be used
when additional order type
functionality is needed that is
not supported in the Short
Format message.
Order Token 1 14 Alpha-
numeric
This is a free-form, alpha-
numeric field. You can enter
any information you like.
Token must be day- unique
for each Direct Edge API
account. Token is case
sensitive, but mixing upper-
case and lower-case Tokens
is not recommended.
Buy/Sell
Indicator
15 1 Alpha “B” = Buy order
“S” = Sell order
"T" = Sell Short – Client
affirms ability to borrow
securities.
“E” = Sell Short Exempt –
Client affirms ability to
borrow.
“X” = Sell Short/SS Exempt –
Client does not affirm
ability to borrow
securities. (Results in
rejection of the order.)
Quantity 16 4 Integer Total number of shares
entered
Symbol 20 6 Alpha Stock Symbol
Price 26 4 Integer The limit price of the order.
The price is a 5 digit whole
number followed by a 5
decimal digits.
Time in Force 30 1 Integer The values for Time in Force
are:
0 = Immediate or Cancel
1 = Day
2 = Fill or Kill
3 = Good Till Time
For Good Till Time, Expire
Time must also be
populated.
Direct Edge API Specifications for Equities
26
Name
Offset
Len
Value
Notes
Display 31 1 Alpha Y” = Displayed
“N” = Hidden
“A” = Displayed with
Attribution*
* Expected live date
September 2012
Special Order
Type
32 1 Alpha “M”= MidPoint Match EDGX/
MidPoint Peg EDGA
“D” = Midpoint Discretionary
Order – EDGA Only*
“U” = Route Peg Order
“N” = NBBO Offset Peg
(Market Maker Peg)
“X” = Primary Peg
“Y” = Market Peg
Re-Pricing Options:
“S” = Hide Not Slide
“P” = Price Adjust
“R” = Single Re-Price
“C” = Cancel Back
(See Appendix B for details
on Re-Pricing options.)
*Midpoint Discretionary
Orders require a “Y” in the
Display field.
Ignored for routable orders.
Enter a space for this field if
not applicable.
Extended Hrs
Eligible
33 1 Alpha “R” = Regular Session Only
“P” = Pre-Market and
Regular Session
Eligible
“A” = Regular Session and
Post-Market Eligible
“B” = All Sessions Eligible
Capacity 34 1 Alpha “A” = Agency
“P” = Principal
“R” = Riskless Principal
Route out
Eligibility
35 1 Alpha “Y” = Routable**
“N” = Book Only***
“P” = Post Only*&***
“S” = Super Aggressive -
Cross or Lock (Order will be
removed from book and
routed to any quote that is
crossing or locking the order)
Direct Edge API Specifications for Equities 27
Name
Offset
Len
Value
Notes
“X” = Aggressive -
Cross only
(Order will be removed from
book and routed to any quote
that is crossing)
a = Post to EDGA (for orders
originating from EDGX, ROUT,
ROUX, ROUE only)
b = Post to EDGX for orders
originating on EDGA (for ROUT,
ROUD, ROUE, ROUX, ROUZ,
ROUQ, RDOT, RDOX, ROPA,
ROBA, ROBX, ROBY, ROBB,
ROCO, ROLF, INET, IOCT,
IOCX, IOCM, ICMT only)
c = Post to NYSE Arca (ROUT,
ROUX, ROUE only)
d = Post to NYSE (ROUT,
ROUX, ROUE only)
e = Post to NASDAQ (ROUT,
ROUX, ROUE only)
f = Post to NASDAQ OMX BX
(ROUT, ROUX, ROUE only)
g = Post to NASDAQ OMX PSX
(ROUT, ROUX, ROUE only)
h = Post to BATS BYX (ROUT,
ROUX, ROUE only)
i = Post to BATS BZX (ROUT,
ROUX, ROUE only)
j = Post to LavaFlow (ROUT,
ROUX, ROUE only)
k = Post to CBSX (ROUT,
ROUX, ROUE only)
l = Post to AMEX (ROUT,
ROUX, ROUE only)
n = Post to NSX (ROUT, ROUX,
ROUE only)
Enter a space for this field if
not applicable.
*Post Only orders marked
HideNotSlide or Hidden may
be executed as a Taker if
price improved on EDGX.
Post Only instructions may not
be included on Hidden Orders,
Discretionary Orders, or Odd Lot
quantities on EDGA.
**All routing strategies are
subject to erroneous checks
pursuant to 15c3-5
compliance.
Direct Edge API Specifications for Equities
28
Name
Offset
Len
Value
Notes
***Book Only and Post Only
orders are not subject to
erroneous checks pursuant
to 15c3-5 compliance.
Inter-market
Sweep (ISO)
Eligibility
36 1 Alpha “Y” = ISO Eligible
“N” = Not ISO Eligible
Routing Delivery
Method
37 1 Alpha “I” = Route to Improve
“F” = Route to Fill
“C” = Route to Comply
Route to Improve: Ability to
receive price improvement
will take priority over speed
of execution.
Route to Fill: Speed of
execution will take priority
over potential price
improvement.
Route to Comply: If quantity
showing at away markets are
not enough to fill order in its
entirety, ISO orders will be
sent to clear better priced
quotations and the balance
of the order will be posted on
the Direct Edge book.
Ignored for non-routable
orders. Enter a space for this
field if not applicable.
Route Strategy 38 2 Integer 1 = ROUT (Book + Low
Cost/CLC + Street (Default if
not specified))
2 = ROUD (Book + Select
CLC)
3 = ROUE (Book + Low
Cost/Select CLC + Street)
4 = ROUX (Book + Street)
5 = ROUZ (Book + Low
Cost/CLC)
6 = ROUQ (Book +Select
Fast CLCs)
7= RDOT (Book + Low
Cost/CLC + DOT)
8 = RDOX (Book + DOT)
9 = ROPA (Book + IOC
ARCA)
Direct Edge API Specifications for Equities 29
Name
Offset
Len
Value
Notes
10 = ROBA (Book + IOC
BATS)
11 = ROBX (Book + IOC
Nasdaq BX)
12 = INET (Book + Nasdaq)
13 = IOCT (EDGA/X Book +
CLC+ Other EDGA/X Book)
14 = IOCX (EDGA/X Book +
Other EDGA/X Book)
15 = ISAM (Directed IOC
ISO routed to AMEX)
16 = ISPA (Directed IOC ISO
routed to ARCA)
17 = ISBA (Directed IOC ISO
routed to BATS)
18 = ISBX (Directed IOC ISO
routed to Nasdaq BX)
19 = ISCB (Directed IOC ISO
routed to CBSX)
20 = ISCX (Directed IOC ISO
routed to CHSX)
21 = ISCN (Directed IOC ISO
routed to NSX)
22 = ISGA (Directed IOC ISO
routed to EDGA)
23 = ISGX (Directed IOC ISO
routed to EDGX)
24 = ISLF (Directed IOC ISO
routed to LavaFlow)
25 = ISNQ (Directed IOC
ISO routed to Nasdaq)
26 = ISNY (Directed IOC ISO
routed to NYSE)
27 = ISPX (Directed IOC ISO
routed to PHLX)
29 = ROUC (Book + CLC +
Nasdaq BX + DOT + Posted
to EDGX)
30 = ROLF (Book +
LavaFlow)
31 = ISBY (Directed IOC ISO
routed to BYX)
32 = SWPA (IOC ISO Sweep
of All Protected Mkts)
33= SWPB (IOC ISO Sweep
of All Protected Mkts)*
34 = IOCM (EDGA Book +
IOC MPM to EDGX)
Direct Edge API Specifications for Equities
30
Name
Offset
Len
Value
Notes
35 = ICMT (EDGA Book +
CLC+ IOC MPM to EDGX)
36= ROOC (Listing Mkt
Open + Book + Low
Cost/CLC + Street + Listing
Mkt Close)**
37 = ROBY (Book + IOC
BYX)
38 = ROBB (EDGA Book +
IOC Nasdaq BX + IOC
BYX)***
39 = ROCO (EDGA Book +
IOC Nasdaq BX + IOC BYX
+ CLC + EDGX MPM)***
40 = SWPC (IOC ISO Sweep
of All Protected Markets and
Post Remainder)
42 = RMPT (Book + EDGX
MPM + CLC Midpoint +
Street Midpoint)****
Please note:
CLC = Comprehensive Liquidity
Check
For all Directed ISO strategies Inter-
market Sweep Eligibility must equal
“Y” and Time in Force must equal
“0” (IOC), or the order will be
rejected.
* SWPB orders will be canceled
immediately if the order quantity is
not enough to clear all protected
quotes at or better than the specified
price on the order.
** Book Only version of ROOC will
not access CLC and Street.
***Available on EDGA Only.
****RMPT is for EDGA only and
must be used in conjunction with
Midpoint Peg Order type.
Minimum
Quantity
40 4 Integer Minimum execution quantity
on hidden or IOC order.
(Applies to all executions.)
Max Floor 44 4 Integer Displayed quantity of a
reserve order.
This field is optional. Use 0
(zero) when not sending a
Reserve Order.
Direct Edge API Specifications for Equities 31
Name
Offset
Len
Value
Notes
Please note: MaxFloor=0
does NOT indicate a Hidden
Order in the High
Performance API as it does
in the Direct Edge FIX API.
Peg Difference 48 1 Signed
Integer
Valid Values -99 thru +99
cents
Discretionary
Offset
49 1 Signed
Integer
Valid Values -99 thru 99 cents
Sign may be entered but will
be ignored. Regardless of
sign, offset will always be
added to Buys and
subtracted from Sells in
relation to the limit price of
the order.
Expire Time 50 8 Integer Expire time for GTT orders
represented in Timestamp
format.
Symbol Suffix 58 6 Alpha See Appendix A for
Symbology details.
Accepted
Message -
Short Format
(from Direct
Edge)
Message Type 0 1 “A” Accepted Message – Short
Format identifier.
Timestamp 1 8 Integer Timestamp
Token 9 14 Alpha-
numeric
The order Token field as
entered.
Buy/Sell
Indicator
23 1 Alpha Buy/sell indicator as entered:
“B” = Buy order
“S” = Sell order
"T" = Sell Short – Client
affirms ability to borrow
securities.
“E” = Sell Short Exempt –
Client affirms ability to
borrow.
“X” = Sell Short/SS Exempt –
Client does not affirm
ability to borrow
securities. (Results in
rejection of the order.)
Quantity 24 4 Integer Total number of shares
accepted.
Symbol 28 6 Alpha Stock symbol as entered.
Price 34 4 Integer The accepted limit price of
the order. Note that the
accepted price could
potentially be different than
the entered price if the order
was re-priced by Direct Edge
on entry. The accepted price
Direct Edge API Specifications for Equities
32
Name
Offset
Len
Value
Notes
will always be better than or
equal to the entered.
Time in Force 38 1 Integer The values for Time in Force
are:
0 = Immediate or Cancel
1 = Day
2 = Fill or Kill
Display 39 1 Alpha “Y” = Displayed
“N” = Hidden
“A” = Displayed with
Attribution*
“Z” = Initial Display Price
Differs from Original
Order Price (“Z” value
applies to Hide not Slide
and Price Adjust orders
only.)
* Expected live date
September 2012
Special Order
Type
40 1 Alpha “M”= MidPoint Match EDGX/
MidPoint Peg EDGA
“D” = Midpoint Discretionary
Order – EDGA Only
“U” = Route Peg Order
“N” = NBBO Offset Peg
Re-Pricing Options:
“S” = Hide Not Slide
“P” = Price Adjust
“R” = Single Re-Price
“C” = Cancel Back
(See Appendix B for details
on Re-Pricing options.)
Ignored for routable orders.
Extended Hrs
Eligible
41 1 Alpha “R” = Regular Session Only
“P” = Pre-Market and
Regular Session
Eligible
“A” = Regular Session and
Post-Market Eligible
“B” = All Sessions Eligible
Order Reference
Number
42 8 Integer The day-unique Order
Reference Number assigned
by Direct Edge to this order.
Capacity 50 1 Alpha The capacity specified on the
order:
“A” = Agency
Direct Edge API Specifications for Equities 33
Name
Offset
Len
Value
Notes
“P” = Principal
“R” = Riskless Principal
Route out
Eligibility
51 1 Alpha “Y” = Routable
“N” = Book Only
“P” = Post-Only
“S” = Super Aggressive -
Cross or Lock
“X” = Aggressive - Cross
only
“b”=Post to EDGX for orders
originating on EDGA
Inter-market
Sweep (ISO)
Eligibility
52 1 Alpha “Y” = ISO Eligible
“N” = Not ISO Eligible
Accepted
Message -
Extended
Format
(from Direct
Edge)
Message Type 0 1 “P” Accept Order Message
Extended Format identifier.
Timestamp 1 8 Integer Timestamp
Token 9 14 Alpha-
numeric
The order Token field as
entered.
Buy/Sell
Indicator
23 1 Alpha Buy/sell indicator as entered:
“B” = Buy order
“S” = Sell order
"T" = Sell Short – Client
affirms ability to borrow
securities.
“E” = Sell Short Exempt –
Client affirms ability to
borrow.
“X” = Sell Short/SS Exempt –
Client does not affirm
ability to borrow
securities. (Results in
rejection of the order.)
Quantity 24 4 Integer Total number of shares
accepted.
Symbol 28 6 Alpha Stock symbol as entered.
Price 34 4 Integer The accepted limit price of
the order. Note that the
accepted price could
potentially be different than
the entered price if the order
was re-priced by Direct Edge
on entry. The accepted price
will always be better than or
equal to the entered.
Time in Force 38 1 Integer The values for Time in Force
are:
0 = Immediate or Cancel
1 = Day
2 = Fill or Kill
3 = Good Till Time
Direct Edge API Specifications for Equities
34
Name
Offset
Len
Value
Notes
Display 39 1 Alpha Y” = Displayed
“N” = Hidden
“A” = Displayed with
Attribution*
“Z” = Initial Display Price
Differs from Original
Order Price (“Z” value
applies to Hide not Slide
and Price Adjust orders
only.)
* Expected live date
September 2012
Special Order
Type
40 1 Alpha “M”= MidPoint Match EDGX/
MidPoint Peg EDGA
“D” = Midpoint Discretionary
Order – EDGA Only
“N” = NBBO Offset Peg
“U” = Route Peg Order
“X” = Primary Peg
“Y” = Market Peg
Re-Pricing Options:
“S” = Hide Not Slide
“P” = Price Adjust
“R” = Single Re-Price
“C” = Cancel Back
(See Appendix B for details
on Re-Pricing options.)
Ignored for routable orders.
Extended Hrs
Eligible
41 1 Alpha “R” = Regular Session Only
“P” = Pre-Market and
Regular Session
Eligible
“A” = Regular Session and
Post-Market Eligible
“B” = All Sessions Eligible
Order Reference
Number
42 8 Integer The day-unique Order
Reference Number assigned
by Direct Edge to this order.
Capacity 50 1 Alpha The capacity specified on the
order:
“A” = Agency
“P” = Principal
“R” = Riskless Principal
Route out
Eligibility
51 1 Alpha “Y” = Eligible
“N” = Book Only
“P” = Post-Only
“S” = Super Aggressive -
Direct Edge API Specifications for Equities 35
Name
Offset
Len
Value
Notes
Cross or Lock
“X” = Aggressive - Cross
only
a = Post to EDGA (for orders
originating from EDGX, ROUT,
ROUX, ROUE only)
b = Post to EDGX for orders
originating on EDGA (for ROUT,
ROUD, ROUE, ROUX, ROUZ,
ROUQ, RDOT, RDOX, ROPA,
ROBA, ROBX, ROBY, ROBB,
ROCO, ROLF, INET, IOCT,
IOCX, IOCM, ICMT only)
c = Post to NYSE Arca (ROUT,
ROUX, ROUE only)
d = Post to NYSE (ROUT,
ROUX, ROUE only)
e = Post to NASDAQ (ROUT,
ROUX, ROUE only)
f = Post to NASDAQ OMX BX
(ROUT, ROUX, ROUE only)
g = Post to NASDAQ OMX PSX
(ROUT, ROUX, ROUE only)
h = Post to BATS BYX (ROUT,
ROUX, ROUE only)
i = Post to BATS BZX (ROUT,
ROUX, ROUE only)
j = Post to LavaFlow (ROUT,
ROUX, ROUE only)
k = Post to CBSX (ROUT,
ROUX, ROUE only)
l = Post to AMEX (ROUT,
ROUX, ROUE only)
n = Post to NSX (ROUT, ROUX,
ROUE only)
Inter-market
Sweep (ISO)
Eligibility
52 1 Alpha “Y” = ISO Eligible
“N” = Not ISO Eligible
Routing Delivery
Method
53 1 Alpha “I” = Route to Improve
“F” = Route to Fill
“C” = Route to Comply
Route Strategy 54 2 Integer 1 = ROUT (Book + Low
Cost/CLC + Street (Default if
not specified))
2 = ROUD (Book + Select
CLC)
3 = ROUE (Book + Low
Cost/Select CLC + Street)
Direct Edge API Specifications for Equities
36
Name
Offset
Len
Value
Notes
4 = ROUX (Book + Street)
5 = ROUZ (Book + Low
Cost/CLC)
6 = ROUQ (Book +Select
Fast CLCs)
7= RDOT (Book + Low
Cost/CLC + DOT)
8 = RDOX (Book + DOT)
9 = ROPA (Book + IOC
ARCA)
10 = ROBA (Book + IOC
BATS)
11 = ROBX (Book + IOC
Nasdaq BX)
12 = INET (Book + Nasdaq)
13 = IOCT (EDGA/X Book +
CLC+ Other EDGA/X Book)
14 = IOCX (EDGA/X Book +
Other EDGA/X Book)
15 = ISAM (Directed IOC
ISO routed to AMEX)
16 = ISPA (Directed IOC ISO
routed to ARCA)
17 = ISBA (Directed IOC ISO
routed to BATS)
18 = ISBX (Directed IOC ISO
routed to Nasdaq BX)
19 = ISCB (Directed IOC ISO
routed to CBSX)
20 = ISCX (Directed IOC ISO
routed to CHSX)
21 = ISCN (Directed IOC ISO
routed to NSX)
22 = ISGA (Directed IOC ISO
routed to EDGA)
23 = ISGX (Directed IOC ISO
routed to EDGX)
24 = ISLF (Directed IOC ISO
routed to LavaFlow)
25 = ISNQ (Directed IOC
ISO routed to Nasdaq)
26 = ISNY (Directed IOC ISO
routed to NYSE)
27 = ISPX (Directed IOC ISO
routed to PHLX)
28 = ISTR (Directed IOC ISO
routed to TRAC)
29 = ROUC (Book + CLC +
Direct Edge API Specifications for Equities 37
Name
Offset
Len
Value
Notes
Nasdaq BX + DOT + Posted
to EDGX)
30 = ROLF (Book +
LavaFlow)
31 = ISBY (Directed IOC ISO
routed to BYX)
32 = SWPA (IOC ISO Sweep
of All Protected Mkts)
33= SWPB (IOC ISO Sweep
of All Protected Mkts)*
34 = IOCM (EDGA Book +
IOC MPM to EDGX)
35 = ICMT (EDGA Book +
CLC+ IOC MPM to EDGX)
36= ROOC (Listing Mkt
Open + Book + Low
Cost/CLC + Street + Listing
Mkt Close)**
37 = ROBY (Book + IOC
BYX)
38 = ROBB (EDGA Book +
IOC Nasdaq BX + IOC
BYX)***
39 = ROCO (EDGA Book +
IOC Nasdaq BX + IOC BYX
+ CLC + EDGX MPM)***
40 = SWPC (IOC ISO Sweep
of All Protected Markets and
Post Remainder)
42 = RMPT (Book + EDGX
MPM + CLC Midpoint +
Street Midpoint)****
Please note:
CLC = Comprehensive Liquidity
Check
For all Directed ISO strategies Inter-
market Sweep Eligibility must equal
“Y” and Time in Force must equal
“0” (IOC), or the order will be
rejected.
* SWPB orders will be canceled
immediately if the order quantity is
not enough to clear all protected
quotes at or better than the specified
price on the order.
** Book Only version of ROOC will
not access CLC and Street.
***Available on EDGA Only.
****RMPT is for EDGA only and
Direct Edge API Specifications for Equities
38
Name
Offset
Len
Value
Notes
must be used in conjunction with
Midpoint Peg Order type.
Minimum
Quantity
56 4 Integer Minimum execution quantity
on hidden or IOC order.
(Applies to all executions.)
Max Floor 60 4 Integer Displayed quantity of a
reserve order.
Peg Difference 64 1 Signed
Integer
Valid Values -99 thru +99
cents
Discretionary
Offset
65 1 Signed
Integer
Valid Values -99 thru +99
cents
Offset will always be in
relation to the limit price of
the order.
Expire Time 66 8 Integer Expire time for GTT orders
represented in Timestamp
format.
Symbol Suffix 74 6 Alpha See Appendix A for Direct
Edge Symbology details.
Executed
Order
(from Direct
Edge)
Message Type 0 1 “E” Order Executed message.
Timestamp 1 8 Integer Timestamp
Order Token 9 14 Alpha-
numeric
The Order Token as entered.
Executed
Quantity
23 4 Integer Incremental number of
shares executed.
Execution Price 27 4 Integer The price at which these
shares were executed.
Liquidity Flag 31 5 Alpha-
numeric
Liquidity Flag from Execution
Liquidity flags can be from one
to five characters in length. This
field will be left justified and
padded with spaces.
Flag Description
A Routed to Nasdaq, Adds
Liquidity
B Add liquidity to our Book
(Tape B)
C Routed to Nasdaq BX
(Tapes A & C), Removes
Liquidity
D Routed or Re-routed to
NYSE, Removes Liquidity
EA Customer Internalization
– Added Liquidity
ER Customer Internalization
– Removed Liquidity
Direct Edge API Specifications for Equities 39
Name
Offset
Len
Value
Notes
F Routed to NYSE, Adds
Liquidity
G Routed to ARCA (Tapes
A & C), Removes
Liquidity
HA Hidden Order Adds
Liquidity
HR Hidden Order Removes
Liquidity (EDGA only)
I Routed to EDGA (for
EDGX orders) or to
EDGX (for EDGA orders)
J Routed to Nasdaq,
Removes Liquidity
K Routed to BATS using
ROBA Order Type
(EDGA + BATS) or
Routed to Nasdaq PSX
using ROUC Order Type
L Routed to Nasdaq using
INET Order Type,
Removes Liquidity
(Tapes A & C)
M Add Liquidity on
LavaFlow
N Remove Liquidity from
our Book (Tape C)
O Listing Market Opening
Cross
P Add Liquidity on EDGX
via an EDGA originated
ROUC Order Type
Q Routed using ROUQ or
ROUC Order Types
R Re-routed by Exchange
S Directed ISO Order
T Routed using
ROUD/ROUE Order Type
U Remove Liquidity from
LavaFlow
V Add Liquidity to our Book
(Tape A)
W Remove Liquidity from
our Book (Tape A)
X Routed
Y Add Liquidity to our Book
(Tape C)
Z Routed using ROUZ
Order Type or Executed
in CLC process using
ICMT Order Type
2 Routed to Nasdaq using
INET Order Type,
Removes Liquidity (Tape
B)
3 Add Liquidity – Pre &
Post Market (Tapes A &
Direct Edge API Specifications for Equities
40
Name
Offset
Len
Value
Notes
C)
4 Add Liquidity – Pre &
Post Market (Tape B)
5 Customer Internalization
– Pre & Post Market
6 Remove Liquidity – Pre &
Post Market (All Tapes)
7 Routed – Pre & Post
Market
8 Routed to AMEX, Adds
Liquidity
9 Routed to ARCA, Adds
Liquidity (Tapes A & C)
10 Routed to ARCA , Adds
Liquidity (Tape B)
AA Midpoint Match Cross
(same MPID)
BB Remove Liquidity from
our Book (Tape B)
BY Routed to BYX using
ROBY or ROUC Order
Type
CL Listing Market Close,
excluding NYSE ARCA
CR Liquidity Remover via
CLC Eligible Routing
Strategy (EDGA only)
DM Non-Displayed Orders –
Adds Liquidity using MDO
DT Non-Displayed Orders –
Removes Liquidity using
MDO
MM Midpoint Match Maker
MT Midpoint Match Taker
OO Direct Edge Opening
PA Midpoint Routing Strategy
(RMPT), Adds Liquidity
PI Removed Liquidity from
Midpoint Match on EDGX
PR Liquidity Remover via
CLC Only Routing
Strategy (EDGA only)
PT Midpoint Routing Strategy
(RMPT), Removes
Liquidity
PX Midpoint Routing Strategy
(RMPT), Routed Out
RB Routed to Nasdaq BX,
Adds Liquidity
RC Routed to NSX, Adds
Liquidity
RP Added Liquidity using
Route PegOrder
RQ Routed using ROUQ
RR Routed to EDGA (for
Direct Edge API Specifications for Equities 41
Name
Offset
Len
Value
Notes
EDGX orders) or to
EDGX (for EDGA orders)
using IOCT or IOCX
RS Routed to Nasdaq PSX,
Adds Liquidity
RT Routed using ROUT
Order Type (EDGA Only)
RW Routed to CBSX, Adds
Liquidity
RX Routed using ROUX
Order Type (EDGA Only)
RY Routed to BATS BYX,
Adds Liquidity
RZ Routed to BATS BZX,
Adds Liquidity
SW Routed using
SWPA/SWPB (All mkts
except NYSE)
XR Liquidity Remover via
Non -CLC Eligible
Routing Strategy (EDGA
only)
ZA Retail Order, Adds
Liquidity
ZR Retail Order, Removes
Liquidity
Match Number 36 8 Integer Assigned by Direct Edge to
each match executed. Each
match consists of one buy
and one sell. The matching
buy and sell executions do
not share the same match
number.
Rejected
Message
(from Direct
Edge)
Message Type 0 1 “J” Rejected Order, Cancel or
Replace message.
Timestamp 1 8 Integer Timestamp
Order Token 9 14 Alpha-
numeric
This is the order Token field
as transmitted with the order
when entered.
Reason 23 1 Alpha This is the reason the
message was rejected.
Clients should anticipate
additions to this list and thus
support all capital letters of
the English alphabet.
“A” = Order characteristics
not supported in current
trading session
"B" = Number of orders in the
bulk order message
exceeded threshold
“C” = Exchange closed
“D” = Invalid Display Type
Direct Edge API Specifications for Equities
42
Name
Offset
Len
Value
Notes
"E" = Exchange option
“F” = Halted
“H” = Cannot execute in
current trading state
“I” = Order Not Found
“L” = Firm not authorized for
clearing (invalid firm)
"O" = Other
“P” = Order already in a
pending cancel or
replace state
"Q" = Invalid quantity
“R” = Risk Control Reject
“S” = Invalid stock
“T” = Test Mode
"U" = Order has an invalid or
unsupported
characteristic
“V” = Order is rejected
because maximum
order rate is exceeded.
“X” = Invalid price
Extended
Rejected
Message*
(from Direct
Edge)
*Optional - Please
contact DE FIX
Support to activate
Extended Rejected
Msg in place of
standard Rejected
Msg
Message Type 0 1 “L” Rejected Order, Cancel or
Replace message.
Timestamp 1 8 Integer Timestamp
Order Token 9 14 Alpha-
numeric
This is the order Token field
as transmitted with the order
when entered.
Reason 23 1 Alpha This is the reason the
message was rejected.
Clients should anticipate
additions to this list and thus
support all capital letters of
the English alphabet.
“A” = Order characteristics
not supported in current
trading session
"B" = Number of orders in the
bulk order message
exceeded threshold
“C” = Exchange closed
“D” = Invalid Display Type
"E" = Exchange option
“F” = Halted
“H” = Cannot execute in
current trading state
“I” = Order Not Found
“L” = Firm not authorized for
clearing (invalid firm)
"O" = Other
“P” = Order already in a
pending cancel or
Direct Edge API Specifications for Equities 43
Name
Offset
Len
Value
Notes
replace state
"Q" = Invalid quantity
“R” = Risk Control Reject
“S” = Invalid stock
“T” = Test Mode
"U" = Order has an invalid or
unsupported
characteristic
“V” = Order is rejected
because maximum
order rate is exceeded.
“X” = Invalid price
InResponseTo 24 1 Alpha “O” = New Order
“X” = Cancel
“U” = Replace
Cancel Order
(from Member)
Type 0 1 “X” Cancel Order message.
Order Token 1 14 Alpha-
numeric
The Order Token as
originally transmitted in an
Enter Order message.
Quantity 15 4 Integer This is the new intended
order size. This limits the
maximum number of shares
that can potentially be
executed in total after the
cancel is applied. Entering a
zero here will cancel any
remaining open shares on
this order.
Canceled
Message
(from Direct
Edge)
Message Type 0 1 “C” Canceled Order message.
Timestamp 1 8 Integer Timestamp
Order Token 9 14 Alpha-
numeric
The order Token field as
entered.
Decremented
Quantity
23 4 Integer The number of shares just
decremented from the order.
This number is incremental,
not cumulative.
Reason 27 1 Alpha The reason the order was
reduced or canceled. Clients
should anticipate additions to
this list and thus support all
capital letters of the English
alphabet.
“U”= User requested cancel.
Sent in response to a
Cancel Request
message.
“I” = Immediate or Cancel
order. This order was
originally sent with a
timeout of zero and no
further matches were
Direct Edge API Specifications for Equities
44
Name
Offset
Len
Value
Notes
available on the book so
the remaining
unexecuted shares were
immediately canceled.
“T”=Timeout. The Time In
Force for this order has
expired.
“S”=This order was manually
canceled or reduced by
Direct Edge. This is
usually in response to a
participant request via
telephone.
“D”=This order cannot be
executed because of a
regulatory restriction
(e.g. short sale or trade
through restrictions).
“A” =This order cannot be
posted because it will
result in a locked or
crossed market.
“B” = Order was canceled
due to Anti-
Internalization settings.
Cancel
Pending
(from Direct
Edge)
Message Type 0 1 “I” Cancel Pending message
Timestamp 1 8 Integer See Data Types above.
Order Token 9 14 Alpha-
numeric
Order Token for the order
that is cancel pending.
Replace Order
(from Member)
Message Type 0 1 “U” Replace Order message
Existing Order
Token
1 14 Alpha-
numeric
This must be filled out with
the exact Order Token sent
on the Enter Order Message
or last Replace Order
Message.
Replacement
Order Token
15 14 Alpha-
numeric
Client ID for the order.
Token should be day-unique
for each API account.
Quantity 29 4 Integer Total quantity of order
including any previously
executed shares.
Price 33 4 Integer Price of replacement order.
The price is a 5 digit whole
number followed by a 5
decimal digits.
Replaced
Message
(from Direct
Message Type 0 1 “R” Replaced Message Identifier
Timestamp 1 8 Integer Timestamp
Replacement
Order Token
9 14 Alpha-
numeric
The Replacement Order
Token field as entered.
Direct Edge API Specifications for Equities 45
Name
Offset
Len
Value
Notes
Edge) Buy/Sell
Indicator
23 1 Alpha Buy/Sell indicator as entered
on the original order in the
chain.
Quantity 24 4 Integer Total number of shares
outstanding.
Symbol 28 6 Alpha Stock symbol as entered on
the original.
Price 34 4 Integer The accepted price of the
replacement order. Please
note that the accepted price
could potentially be different
than the entered price if the
order was re-priced by Direct
Edge on entry. The
accepted price will always be
better than or equal to the
entered price.
Order Reference
Number
38 8 Integer The day-unique Order
Reference Number assigned
by Direct Edge.
Capacity 46 1 Alpha Capacity of original order.
Previous Order
Token
47 14 Alpha-
numeric
The Order Token of the order
that was replaced.
Pending
Replace
(from Direct
Edge)
Message Type 0 1 “D” Pending Replace message
Timestamp 1 8 Integer Timestamp
Order Token 9 14 Alpha-
numeric
Order Token for the order
that is Pending Replace.
System Event
(from Direct
Edge)
Message Type 0 1 “S” System Event message
identifier.
Timestamp 1 8 Integer Timestamp
Event Code 9 1 Alpha Event Codes
“S” = Start of Day. This is
always the first
message each day. It
indicates that Direct
Edge is open and
ready to start accepting
orders.
“E” = End of Day. This
indicates that Direct
Edge is now closed
and will not accept any
new orders in this
session. There will not
be any more
executions during this
session; however it is
still possible to receive
Broken Trade
messages and
Canceled Order
Direct Edge API Specifications for Equities
46
Name
Offset
Len
Value
Notes
messages.
Broken Trade
(from Direct
Edge)
Message Type 0 1 “B” Broken Trade message.
Timestamp 1 8 Integer Timestamp.
Order Token 9 14 Alpha-
numeric
The order Token field as
entered.
Match Number 23 8 Integer Match Number as
transmitted in a preceding
Executed Order message.
Reason 31 1 Alpha The reason the trade was
broken. Clients should
anticipate additions to this list
and thus support all capital
letters of the English
alphabet.
“S”=The trade was manually
broken by Direct Edge.
Price
Correction
(from Direct
Edge)
Message Type 0 1 “K” Price Correction message.
Timestamp 1 8 Integer Timestamp.
Order Token 9 14 Alpha-
numeric
The order Token field as
entered.
Match Number 23 8 Integer Match Number as
transmitted in a preceding
Executed Order message.
New Execution
Price
31 4 Integer The corrected price of the
execution.
Reason 35 1 Alpha The reason the trade was
corrected.
“S”=The trade was manually
price-corrected by Direct
Edge.
Anti-
Internalization
Modifier
(from Member)
Type 0 1 “F” Identifies this message as an
Anti-Internalization Modifier.
AI Method 1 1 Alpha “A” = Cancel Newest
“B” = Cancel Oldest
“C” = Cancel Both
“D” = Cancel Smallest
“E” = Decrement Larger and
Cancel Smaller (Order Qty
and Leaves reduced)*
“F” = Decrement Larger and
Cancel Smaller (Leaves
reduced)*
*If the larger order has a
Minimum Execution Qty
specified, both orders will be
fully canceled.
AI Identifier 2 1 Alpha “A” = MPID
“B” = Member ID
“C” = MPID and AI Group ID
AI Group ID 3 2 Alpha- Two Character ID Chosen by
Direct Edge API Specifications for Equities 47
Name
Offset
Len
Value
Notes
numeric Member.
Orders must match on both
MPID and AI Group ID to be
prevented from trading.
Enter spaces in this field if
not applicable.
AI Additional
Info Message
(from Direct
Edge)
Message Type 0 1 “G” AI Additional Info Message
Timestamp 1 8 Integer Timestamp
Order Token 9 14 Alpha-
numeric
The Order Token as entered.
Quantity 23 4 Integer Number of shares prevented
from trading.
Price 27 4 Integer The price at which these
shares would have executed.
Canceled Order
State
31 1 Alpha “I” = Inbound
“P” = Posted
Shows if the canceled order
was incoming or resting on
book at time of cancellation.
Contra Member
ID
32 6 Alpha-
numeric
Member ID on the contra
order that caused the
cancellation.
Contra
Token/ClOrderID
38 20 Alpha-
numeric
Token or ClOrderID of contra
order that caused the
cancellation.
AI Method 58 1 Alpha “A” = Cancel Newest
“B” = Cancel Oldest
“C” = Cancel Both
“D” = Cancel Smallest
“E” = Decrement Larger and
Cancel Smaller (Order Qty
and Leaves Qty reduced)
“F” = Decrement Larger and
Cancel Smaller (Leaves Qty
reduced only)
AI Method used to cancel the
order. This may be different
from the AI Method specified
on the order being canceled.
AI Identifier 59 1 Alpha “A” = MPID
“B” = Member ID
“C” = MPID and AI Group ID
AI Identifier used to match
on.
AI Group ID 60 2 Alpha-
numeric
Two Character ID Chosen by
Member.
Spaces will be entered in this
Direct Edge API Specifications for Equities
48
Name
Offset
Len
Value
Notes
field if not applicable.
Direct Edge API Specifications for Equities 49
Chapter 6 Appendices
6.1 Appendix A: Direct Edge Symbology
For Tape A and B securities, Direct Edge supports the use of CMS symbol suffixes. To enter an
order for a symbol with a suffix, API users must use the Enter Order - Extended Format.
Tape C securities do not require use of suffixes.
The table below describes all Direct Edge supported suffixes for Tape A and B securities.
Symbol Type
SIAC Suffix
(Not Supported)
Comstock Suffix
(Not Supported)
CMS / Direct Edge
Supported Suffix
Class A
(Class B-T and V-Z
also allowed)
/A .A A
Class A When Issued /Aw .A* AWI
Preferred p - PR
Preferred Class A pA -A PRA
Preferred Class A
When Issued
pAw -A* PRAWI
Preferred When
Distributed
p/WD -W or WD PRWD
Preferred When
Issued
pw -* PRWI
Rights r .R or .RT RT
Rights When Issued rw .R* or .RT* RTWI
Units /U .U U
Warrants /WS .WS or + WS
Warrants Class A /WS/A .WS.A or +A WSA
Warrant When Issued /WSw .WS* or +* WSWI
When Distributed /WD .W or .WD WD
When Issued w * WI
Direct Edge API Specifications for Equities
50
6.2 Appendix B: Lock/Cross Re-Pricing Options
Under Reg NMS, exchanges must avoid posting orders that intentionally lock or cross
other protected market center quotes. To comply with this provision of the rule, Direct
Edge offers four alternatives for non-routable orders:
Hide not Slide – If at the time of entry an order locks or crosses an away market
quotation, the order will be hidden and ranked at the locking price, but will be
displayed one penny away from the locking price. The displayed price will be
adjusted to the ranked price as soon as market conditions permit.
Price Adjust – If at the time of entry an order locks or crosses an away market
quotation, the order will be displayed and ranked one penny away from the locking
price. If market conditions allow the order to be displayed at the original locking
price, it will be moved to that price.
Single Re-Price – If at the time of entry an order locks or crosses an away market
quotation, the order will be displayed and ranked one penny away from the locking
price. This is a onetime re-pricing of the order.
Cancel Back – If at the time of entry an order locks or crosses an away market
quotation, the order will be immediately canceled back to the member.

Navigation menu