Direct Edge XPRS API Manual V 1.30

User Manual: Pdf

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

DownloadDirect Edge XPRS API Manual V 1.30
Open PDF In BrowserView PDF
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

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

4

Direct Edge API Specifications for Equities

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 state “Authentication 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

5

1.6

Bill Ciabattoni

April 26, 2010

1.7

Bill Ciabattoni

July 6, 2010

1.8

Bill Ciabattoni

Sept 1, 2010

1.9

Bill Ciabattoni

Oct 1, 2010

1.10

Bill Ciabattoni

Jan 3, 2011

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.
Section 5.4: Added new “Z” value to “Display” field in
Accepted Message – Short and Extended Formats.
•
Auction process named Competition for Price
SM
Improvement (CPI)
•
Dark Ping process named Comprehensive
SM
Liquidity Check (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.
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.
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

1.12

1.13

Bill Ciabattoni

Bill Ciabattoni

Bill Ciabattoni

Jan 20, 2011

Feb 1, 2011

Feb 3, 2011

1.14

Bill Ciabattoni

Feb 24, 2011

1.15

Bill Ciabattoni

Mar 29, 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.

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.

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

Section 5.4:
•

6

CPI removed from all routing strategies.

Section 5.4:

Direct Edge API Specifications for Equities

•

1.16

Bill Ciabattoni

May 9, 2011

ROUT, ROUD, ROUZ, ROUE, ROOC, and
RDOT strategies updated to include Select CLCs
and/or Low Cost venues as possible
destinations.

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

7

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

Chapter 2. Overview
2.1

Hours of Operation

EDGX and EDGA Exchanges
Session

Start Time

End Time

Begin Order Acceptance – Pre-Market Orders

6:00 AM

8:00 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

Session

Start Time

End Time

Begin Order Acceptance

6:00 AM

9:30 AM

9:30 AM

4:00 PM

(Pre-Market orders will be accepted but will not
begin trading until 8:00 AM.)
Begin Order Acceptance – Regular Session Orders
(Regular Session orders will be accepted but will not
begin trading until 9:30 AM.)

MidPoint Match Dark Pool

(MidPoint Match orders will be accepted but will not
begin trading until 9:30 AM.)
Regular Trading Session

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

9

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

10

Direct Edge API Specifications for Equities

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
From Client
From Server
Login Request

Login
Accepted

Notes
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).
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

11

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.
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.

Unsequenced
Data

Sequenced
Data

Client Heartbeat

Server
Heartbeat

Debug

Debug
Logout Request

End of
Session

The higher-level protocol must be able to handle these lost
messages in the case of a TCP/IP socket connection failure.
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.
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.
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.
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.
See above.
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.
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
Message
Login
Request

12

Field
Package
Length
Package
Type
Username

Offset

Length

0

2

2

1

3

6

Password
Requested
Session

9

10

19

10

Value
Integer

Notes
Number of bytes after this
field until the next package

"L"
Alphanumeric

Username. Case
insensitive.

Alphanumeric
Alphanumeric

Password. Case insensitive.
Specifies the session or all
blanks for the currently
active session.

Direct Edge API Specifications for Equities

Message

Login
Accepted

Field
Requested
Sequence
Number

Package
Length
Package
Type
Session

Offset

Length

29

20

0

2

2

1

3

10

Sequence
Number

Login
Rejected

Package
Length
Package
Type
Reject
Reason
Code

Unsequenced
Data

Server
Heartbeat

Client
Heartbeat

Package
Length
Package
Type
Message

Package
Length
Package
Type
Message

Package
Length
Package
Type
Package
Length
Package
Type

Integer

13

20

0

2

2

1

Alphanumeric

Integer

The session ID of the
session that is now logged
into.
The sequence number of
the next Sequenced
Message to be sent. Note
that this field is expressed in
ASCII format. (Left padded
with spaces)
Number of bytes after this
field until the next package

"J"
Alpha

Login Reject Codes Reason
codes:
“A” = Not Authorized.
Invalid username and
password combination.

1

0

2

2

1

Integer

3

N

0

2

2

1

Integer

N

0

2

2

1

0

2

2

1

Defined by a higher-level
protocol. May contain a
combination of ASCII and
binary data.
Number of bytes after this
field until the next package

"U"
All

3

“S” = Session not available.
The Requested Session in
the Login Request Package
was either invalid or not
available.
Number of bytes after this
field until the next package

"S"
All

Direct Edge API Specifications for Equities

Notes
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)
Number of bytes after this
field until the next package

"A"

Numeric

3

Sequenced
Data

Value
Numeric

Integer

Defined by a higher-level
protocol. May contain a
combination of ASCII and
binary data.
Number of bytes after this
field until the next package

"H"
Integer

Number of bytes after this
field until the next package

"R"

13

Message
Logout
Request

Debug

End of
Session

14

Field
Package
Length
Package
Type
Package
Length
Package
Type
Text
Package
Length
Package
Type

Offset

Length

0

2

2

1

0

2

0

1

1

N

0

2

2

1

Value
Integer

Notes
Number of bytes after this
field until the next package

"O"
Integer

Number of bytes after this
field until the next package

"+"
Alphanumeric
Integer

Free form human readable
text.
Number of bytes after this
field until the next package

“Z”

Direct Edge API Specifications for Equities

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.

Order 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

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

Re-Pricing Options:
•

Hide Not Slide

•

Price Adjust

•

Single Re-Price

•

Cancel Back

Direct Edge API Specifications for Equities

15

Reserve Orders

No

Yes

Random Replenish on
Reserve Orders

No

No

Discretionary Orders

No

Yes

16

Direct Edge API Specifications for Equities

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 nonguaranteed, 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 resent 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
From
Direct
Edge

From
Member

Direct Edge API Specifications for Equities

Notes

17

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

18

An Executed Order message informs you that all or part of an
order has been executed.

Direct Edge API Specifications for Equities

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

19

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.
AntiInternalization
Modifier

20

The Anti-Internalization Modifier can be included in the unsequenced 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

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

21

5.4

Message Formats
Message
Enter Order –
Short Format

Name
Type

Offset
0

Len
1

Value
“O”

Order Token

1

14

Alphanumeric

Buy/Sell
Indicator

15

1

Alpha

Quantity
Symbol
Price

16
20
26

4
6
4

Integer
Alpha
Integer

Time in Force

30

1

Integer

Display

31

1

Alpha

(from Member)

Notes
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.
This is a free-form, alphanumeric 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 uppercase and lower-case Tokens
is not recommended.
“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.)
Total number of shares
Stock Symbol
The limit price of the order.
The price is a 5 digit whole
number followed by a 5
decimal digits.
The values for Time in Force
are:
0 = Immediate or Cancel
1 = Day
2 = Fill or Kill
“Y” = Displayed
“N” = Hidden
“A” = Displayed with
Attribution*
* Expected live date
September 2012

22

Direct Edge API Specifications for Equities

Message

Name

Offset

Len

Value

Notes

32

1

Alpha

“M”= MidPoint Match EDGX/
MidPoint Peg EDGA
“D” = Midpoint Discretionary
Order – EDGA Only*
“U” = Route Peg Order

Special Order
Type

“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.

Extended Hrs
Eligible

33

1

Alpha

Capacity

34

1

Alpha

Route out
Eligibility

35

1

Alpha

Enter a space for this field if
not applicable.
“R” = Regular Session Only
“P” = Pre-Market and
Regular Session
Eligible
“A” = Regular Session and
Post-Market Eligible
“B” = All Sessions Eligible
“A” = Agency
“P” = Principal
“R” = Riskless Principal
“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

23

Message

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

24

36

1

Alpha

“Y” = ISO Eligible

Direct Edge API Specifications for Equities

Message

Name
Sweep (ISO)
Eligibility

Offset

Len

Value

Notes
“N” = Not ISO Eligible

Enter Order –
Extended
Format

Type

0

1

“N”

1

14

Alphanumeric

Buy/Sell
Indicator

15

1

Alpha

Quantity

16

4

Integer

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.
This is a free-form, alphanumeric 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 uppercase and lower-case Tokens
is not recommended.
“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.)
Total number of shares
entered

Order Token

Symbol
Price

20
26

6
4

Alpha
Integer

Time in Force

30

1

Integer

(from Member)

Stock Symbol
The limit price of the order.
The price is a 5 digit whole
number followed by a 5
decimal digits.
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

25

Message

Name
Display

Offset
31

Len
1

Value
Alpha

Notes
“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.

26

Extended Hrs
Eligible

33

1

Alpha

Capacity

34

1

Alpha

Route out
Eligibility

35

1

Alpha

“R” = Regular Session Only
“P” = Pre-Market and
Regular Session
Eligible
“A” = Regular Session and
Post-Market Eligible
“B” = All Sessions Eligible
“A” = Agency
“P” = Principal
“R” = Riskless Principal
“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

Message

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

27

Message

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

28

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

Message

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

29

Message

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 Intermarket 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

Max Floor

44

4

Integer

Minimum execution quantity
on hidden or IOC order.
(Applies to all executions.)
Displayed quantity of a
reserve order.
This field is optional. Use 0
(zero) when not sending a
Reserve Order.

30

Direct Edge API Specifications for Equities

Message

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

Discretionary
Offset

49

1

Signed
Integer
Signed
Integer

Valid Values -99 thru +99
cents
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.

Accepted
Message Short Format
(from Direct
Edge)

Expire Time

50

8

Integer

Symbol Suffix

58

6

Alpha

Message Type

0

1

“A”

Timestamp
Token

1
9

8
14

Buy/Sell
Indicator

23

1

Integer
Alphanumeric
Alpha

Quantity

24

4

Integer

Symbol
Price

28
34

6
4

Alpha
Integer

Direct Edge API Specifications for Equities

Expire time for GTT orders
represented in Timestamp
format.
See Appendix A for
Symbology details.

Accepted Message – Short
Format identifier.
Timestamp
The order Token field as
entered.
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.)
Total number of shares
accepted.
Stock symbol as entered.
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

31

Message

Name

Offset

Len

Value

Time in Force

38

1

Integer

Display

39

1

Alpha

Notes
will always be better than or
equal to the entered.
The values for Time in Force
are:
0 = Immediate or Cancel
1 = Day
2 = Fill or Kill
“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.)

32

Extended Hrs
Eligible

41

1

Alpha

Order Reference
Number

42

8

Integer

Capacity

50

1

Alpha

Ignored for routable orders.
“R” = Regular Session Only
“P” = Pre-Market and
Regular Session
Eligible
“A” = Regular Session and
Post-Market Eligible
“B” = All Sessions Eligible
The day-unique Order
Reference Number assigned
by Direct Edge to this order.
The capacity specified on the
order:
“A” = Agency

Direct Edge API Specifications for Equities

Message

Name

Offset

Len

Value

Route out
Eligibility

51

1

Alpha

Inter-market
Sweep (ISO)
Eligibility

52

1

Alpha

“Y” = ISO Eligible
“N” = Not ISO Eligible

Accept Order Message
Extended Format identifier.
Timestamp
The order Token field as
entered.
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.)
Total number of shares
accepted.
Stock symbol as entered.
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.
The values for Time in Force
are:
0 = Immediate or Cancel
1 = Day
2 = Fill or Kill
3 = Good Till Time

Accepted
Message Extended
Format

Message Type

0

1

“P”

Timestamp
Token

1
9

8
14

(from Direct
Edge)

Buy/Sell
Indicator

23

1

Integer
Alphanumeric
Alpha

Quantity

24

4

Integer

Symbol
Price

28
34

6
4

Alpha
Integer

Time in Force

38

1

Integer

Direct Edge API Specifications for Equities

Notes
“P” = Principal
“R” = Riskless Principal
“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

33

Message

Name
Display

Offset
39

Len
1

Value
Alpha

Notes
“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.)

34

Extended Hrs
Eligible

41

1

Alpha

Order Reference
Number

42

8

Integer

Capacity

50

1

Alpha

Route out
Eligibility

51

1

Alpha

Ignored for routable orders.
“R” = Regular Session Only
“P” = Pre-Market and
Regular Session
Eligible
“A” = Regular Session and
Post-Market Eligible
“B” = All Sessions Eligible
The day-unique Order
Reference Number assigned
by Direct Edge to this order.
The capacity specified on the
order:
“A” = Agency
“P” = Principal
“R” = Riskless Principal
“Y” = Eligible
“N” = Book Only
“P” = Post-Only
“S” = Super Aggressive -

Direct Edge API Specifications for Equities

Message

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

35

Message

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 +

36

Direct Edge API Specifications for Equities

Message

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 Intermarket 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

37

Message

Name

Offset

Len

Value

Notes
must be used in conjunction with
Midpoint Peg Order type.

Executed
Order
(from Direct
Edge)

38

Minimum
Quantity

56

4

Integer

Max Floor

60

4

Integer

Peg Difference

64

1

Discretionary
Offset

65

1

Signed
Integer
Signed
Integer

Expire Time

66

8

Integer

Symbol Suffix

74

6

Alpha

Message Type
Timestamp
Order Token

0
1
9

1
8
14

Executed
Quantity
Execution Price

23

4

“E”
Integer
Alphanumeric
Integer

27

4

Integer

Liquidity Flag

31

5

Alphanumeric

Minimum execution quantity
on hidden or IOC order.
(Applies to all executions.)
Displayed quantity of a
reserve order.
Valid Values -99 thru +99
cents
Valid Values -99 thru +99
cents
Offset will always be in
relation to the limit price of
the order.
Expire time for GTT orders
represented in Timestamp
format.
See Appendix A for Direct
Edge Symbology details.

Order Executed message.
Timestamp
The Order Token as entered.
Incremental number of
shares executed.
The price at which these
shares were executed.
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

Message

Name

Offset

Direct Edge API Specifications for Equities

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 &

39

Message

Name

Offset

Len

Value

Notes
C)

40

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

Message

Name

Offset

Len

Value

Notes
EDGX orders) or to
EDGX (for EDGA orders)
using IOCT or IOCX

Rejected
Message
(from Direct
Edge)

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.

Message Type

0

1

“J”

Timestamp
Order Token

1
9

8
14

Integer
Alphanumeric

Reason

23

1

Alpha

Rejected Order, Cancel or
Replace message.
Timestamp
This is the order Token field
as transmitted with the order
when entered.
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

41

Message

Name

Offset

Len

Extended
Rejected
Message*

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

Message Type

0

1

“L”

1
9

8
14

Integer
Alphanumeric

23

1

Alpha

Rejected Order, Cancel or
Replace message.
Timestamp
This is the order Token field
as transmitted with the order
when entered.
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.

Timestamp
Order Token

Reason

(from Direct
Edge)
*Optional - Please
contact DE FIX
Support to activate
Extended Rejected
Msg in place of
standard Rejected
Msg

“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

42

Direct Edge API Specifications for Equities

Message

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

Cancel Order

InResponseTo

24

1

Alpha

“O” = New Order
“X” = Cancel
“U” = Replace

Type
Order Token

0
1

1
14

“X”
Alphanumeric

Quantity

15

4

Integer

Cancel Order message.
The Order Token as
originally transmitted in an
Enter Order message.
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.

Message Type
Timestamp
Order Token

0
1
9

1
8
14

Decremented
Quantity

23

4

“C”
Integer
Alphanumeric
Integer

Reason

27

1

Alpha

(from Member)

Canceled
Message
(from Direct
Edge)

Direct Edge API Specifications for Equities

Canceled Order message.
Timestamp
The order Token field as
entered.
The number of shares just
decremented from the order.
This number is incremental,
not cumulative.
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

43

Message

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 AntiInternalization settings.

Cancel
Pending

Message Type
Timestamp
Order Token

0
1
9

1
8
14

“I”
Integer
Alphanumeric

Cancel Pending message
See Data Types above.
Order Token for the order
that is cancel pending.

Message Type
Existing Order
Token

0
1

1
14

“U”
Alphanumeric

Replacement
Order Token

15

14

Alphanumeric

Quantity

29

4

Integer

Price

33

4

Integer

Replace Order message
This must be filled out with
the exact Order Token sent
on the Enter Order Message
or last Replace Order
Message.
Client ID for the order.
Token should be day-unique
for each API account.
Total quantity of order
including any previously
executed shares.
Price of replacement order.
The price is a 5 digit whole
number followed by a 5
decimal digits.

Message Type
Timestamp
Replacement
Order Token

0
1
9

1
8
14

“R”
Integer
Alphanumeric

(from Direct
Edge)
Replace Order
(from Member)

Replaced
Message
(from Direct

44

Replaced Message Identifier
Timestamp
The Replacement Order
Token field as entered.

Direct Edge API Specifications for Equities

Message
Edge)

Name
Buy/Sell
Indicator

Offset
23

Len
1

Value
Alpha

Quantity

24

4

Integer

Symbol

28

6

Alpha

Price

34

4

Integer

Order Reference
Number

38

8

Integer

Capacity
Previous Order
Token

46
47

1
14

Alpha
Alphanumeric

Notes
Buy/Sell indicator as entered
on the original order in the
chain.
Total number of shares
outstanding.
Stock symbol as entered on
the original.
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.
The day-unique Order
Reference Number assigned
by Direct Edge.
Capacity of original order.
The Order Token of the order
that was replaced.

Message Type
Timestamp
Order Token

0
1
9

1
8
14

“D”
Integer
Alphanumeric

Pending Replace message
Timestamp
Order Token for the order
that is Pending Replace.

System Event

Message Type

0

1

“S”

(from Direct
Edge)

Timestamp
Event Code

1
9

8
1

Integer
Alpha

System Event message
identifier.
Timestamp
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

Pending
Replace
(from Direct
Edge)

Direct Edge API Specifications for Equities

45

Message

Name

Broken Trade
(from Direct
Edge)

Price
Correction
(from Direct
Edge)

AntiInternalization
Modifier

Offset

Len

Value

Notes
messages.

Message Type
Timestamp
Order Token

0
1
9

1
8
14
8

“B”
Integer
Alphanumeric
Integer

31

1

Alpha

Broken Trade message.
Timestamp.
The order Token field as
entered.
Match Number as
transmitted in a preceding
Executed Order message.
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.

Match Number

23

Reason

Message Type
Timestamp
Order Token

0
1
9

1
8
14

Match Number

23

8

“K”
Integer
Alphanumeric
Integer

New Execution
Price
Reason

31

4

Integer

35

1

Alpha

Type

0

1

“F”

AI Method

1

1

Alpha

(from Member)

46

AI Identifier

2

1

Alpha

AI Group ID

3

2

Alpha-

Price Correction message.
Timestamp.
The order Token field as
entered.
Match Number as
transmitted in a preceding
Executed Order message.
The corrected price of the
execution.
The reason the trade was
corrected.
“S”=The trade was manually
price-corrected by Direct
Edge.
Identifies this message as an
Anti-Internalization Modifier.
“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.
“A” = MPID
“B” = Member ID
“C” = MPID and AI Group ID
Two Character ID Chosen by

Direct Edge API Specifications for Equities

Message

Name

Offset

Len

Value
numeric

Notes
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
Timestamp
Order Token

0
1
9

1
8
14

Quantity

23

4

“G”
Integer
Alphanumeric
Integer

Price

27

4

Integer

Canceled Order
State

31

1

Alpha

Contra Member
ID

32

6

Alphanumeric

Contra
Token/ClOrderID

38

20

Alphanumeric

AI Method

58

1

Alpha

AI Identifier

AI Group ID

59

60

1

2

Alpha

Alphanumeric

AI Additional Info Message
Timestamp
The Order Token as entered.
Number of shares prevented
from trading.
The price at which these
shares would have executed.
“I” = Inbound
“P” = Posted
Shows if the canceled order
was incoming or resting on
book at time of cancellation.
Member ID on the contra
order that caused the
cancellation.
Token or ClOrderID of contra
order that caused the
cancellation.
“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.
“A” = MPID
“B” = Member ID
“C” = MPID and AI Group ID
AI Identifier used to match
on.
Two Character ID Chosen by
Member.
Spaces will be entered in this

Direct Edge API Specifications for Equities

47

Message

48

Name

Offset

Len

Value

Notes
field if not applicable.

Direct Edge API Specifications for Equities

Chapter 6

6.1

Appendices

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

Comstock Suffix

(Not Supported)

(Not Supported)

/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

Class A

CMS / Direct Edge
Supported Suffix

(Class B-T and V-Z
also allowed)

Direct Edge API Specifications for Equities

49

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:

50

•

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.

Direct Edge API Specifications for Equities



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.4
Linearized                      : No
Page Count                      : 49
Producer                        : GPL Ghostscript 8.15
Create Date                     : 2013:07:10 11:30:57
Modify Date                     : 2013:07:10 11:30:57
Title                           : Microsoft Word - Direct Edge XPRS API Manual V 1.30.doc
Creator                         : PScript5.dll Version 5.2.2
Author                          : wciabattoni
EXIF Metadata provided by EXIF.tools

Navigation menu