FIX and the Client Order ID


FIX is the de facto standard for order and trade communication in financial markets. The FIX protocol is comprised of a set of message definitions, connection rules and processing guidelines.

When it comes to trading the buy side (e.g. the client) sends messages with requests for order creation, modification or cancelation. The sell side (e.g. the exchange) receives these requests and responds to them with messages to report acceptance or rejection of these requests. In addition to these request-response messages, the sell side sends inter alia messages to report trades and order state changes.

FIX does not require the buy and sell side to send messages alternately. That is, the sell side does not need to respond immediately to a request. It might first send a trade report and then respond to the request. And the buy side does not need to wait for an answer. It might send new requests before receiving an answer. This aspect of FIX is called asynchronous communication.

This asynchronous communication requires, on request level, linkage of responses to requests and, on order level, linkage of messages to orders.

FIX uses several fields for this. In this blog we will discuss the use of the ClOrdID field.

The FIX description of the ClOrdID isUnique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc.) (identified by SenderCompID (49) or OnBehalfOfCompID (5) as appropriate). Uniqueness must be guaranteed within a single trading day. Firms, particularly those which electronically submit multi-day orders, trade globally or throughout market close periods, should ensure uniqueness across days, for example by embedding a date within the ClOrdID field.

The ClOrdID is meant to be used by the buy side to identify the order request. The sell side returns this ClOrdID in its response. This enables the response to be be linked to the originating request.

For a modification, the buy side sends a request containing the previous ClOrdID together with a new ClOrdID to identify this new request.

One could argue that the name ClOrdID is a bit confusing as it is used as a request identifier and not as an order identifier. In fact, some parties use the ClOrdID as an order identification instead of a request identification. As a result however, an answer can not 100% unambiguously linked to a request.

In FIX, the ClOrdID is coded with tag 11 and it is a string (alphanumeric characters). Often, the length of this string is restricted. Om Euronext restricts it to 30 characters, except for TCS then it is restricted to 16 characters. Eurex and Xetra restrict it to 20 characters.