Professional Documents
Culture Documents
DOCUMENT TITLE
STATUS
VERSION HISTORY
TABLE OF CONTENTS
1. INTRODUCTION ................................................................................................................................... 2
5. APPENDICES....................................................................................................................................... 2
5.1 List of technical error messages issued from superficial checking ....................................... 2
Chapter 1
INTRODUCTION
1. INTRODUCTION
This document describes the application messages exchanged between an SLE and the UTP system.
This application portion enables the SLE to enter, modify, and cancel orders via UTP and to obtain information about orders,
transactions, and the state of securities and security groups.
In this document, the specifications for the UTP application are presented as follows:
- description of UTP trading principles (Chapter 2),
- description of the trading services available to member firms (Chapter 3),
- specifications for UTP messages, by service (Chapter 4).
Chapter 2
The following table shows the sequence of events and operations that affect whether the SLE has open (or closed) access
for sending orders. Only securities that trade on a continuous basis are described here.
Note: Other states of an individual security also affect whether an order generated by an SLE is accepted or rejected
(security frozen or forbidden). However, this section only shows how UTP handles the global flow of orders and does not
discuss the states that pertain to one given security.
SLE UTP
The SLE can send orders for securities in the group that is in Call Phase
Reception of a Security Opening message. The SLE can transmit orders for Securities in this group.
Reception of a Group in Market Session message indicating that the Market Session has begun.
Reception of a Trading at last message. The SLE can send orders for Securities in the group that is in TAL phase.
Reception of a Monitoring phase message: all incoming orders are rejected by UTP.
In UTP session management occurs by security group. The states (phases) of each security group are managed totally
independently. The possible trading phases are:
- MONITORING Phase
This phase is reserved for Euronext Cash Market Operations. No order entry by member firms or Cash Market Operations
is possible during this phase.
This phase is usually used at the beginning and the end of a Trading day to allow Market Operation to:
To prepare the trading day and check the consistency of business data after post session.
To act on the market (trades cancellation, eliminations of orders, and so on…) before the end of the Trading day.
- CALL Phase
This phase allows member firms to enter and update orders. Orders entered during this period are processed as following:
Orders are collected without matching
The trading engine calculates, at regular time intervals with participating orders, an indicative matching price.
Several price auctions can occur per day. UTP provides flexibility in programming the groups that are traded via auction.
For these groups, the sequence of the different phases is the following (the example below shows 2 auctions):
- EARLY MONITORING
- CORE CALL
- CORE AUCTION
- TRADING AT LAST
- CLOSING CALL
- CLOSING AUCTION
- TRADING AT LAST
- LATE MONITORING
For groups trading by auction, the Trading at Last phase follows each opening auction and lasts 30 minutes.
. For these groups, the sequence of the different phases is the following :
- EARLY MONITORING
- CORE CALL
- CORE AUCTION
- CORE CONTINUOUS
- CLOSING CALL
- CLOSING AUCTION
- TRADING AT LAST
- LATE MONITORING
For groups in continuous mode, the Trading at Last phase lasts 10 minutes.
The halting of a security results from an operation by Euronext Cash Market Operations when a financial operation
occurs for the security or automatically upon Opening to regulate the market by limiting price fluctuations.
The impact the halting of a security has on the processing of its orders differs depending on the current state of the
group (see below).
1. Call phase
Euronext Cash Market Operations can halt a security to prevent it from trading during the general Opening. Euronext
Cash Market Operations can cancel the halting: the rules pertaining to the security group are reapplied to the security,
and the security opens at the same time as the other securities in the group if the Indicative Matching Price for this
security is in the authorised range.
2. Opening
If a security is halted, it remains halted during the Opening of the group (which will not occur for this security) and
during the entire Market Session until further intervention by Euronext Cash Market Operations. Meanwhile, all orders
entered for this security are processed in a call mode.
If the security is automatically halted at the moment of Opening, Market operation team schedules a differed opening
on the instrument and when opening time is reached:
If the Indicative Matching Price has re-entered the authorised range, Opening occurs automatically and the
halting is cancelled.
If the Indicative Matching Price is outside the authorised range, the security remains halted, until further
intervention by Euronext Cash Market Operations. All orders entered for this security are treated in a call
mode. If Euronext Cash Market Operations opens the security, the security opens or remains halted
depending on whether or not the TOP is inside the authorised range.
In addition to the market phases defined at the class level, several Market mechanisms may be applied to an individual
instrument according to its status. Thus, a given security may follow a specific behavior different than other securities of
the class.
An instrument may have one of the following status:
Inherited
Halted (with or without order entry rejection)
Auction
This status is the standard or nominal status of an instrument. This means that such an instrument inherits the Market
phase type of the class it belongs to.
Example:
The class is in call phase, then an inherited instrument will follow Call Phase rules.
The class is in continuous trading phase, then an inherited instrument will follow Trading Session rules.
All instruments having the inherited status follow the trading cycle of their class.
When an instrument is halted, it follows the rules of a call mode (order collecting) whatever is the Market Phase of its
class. The instrument may be halted either manually by Market Operation or automatically by the trading engine
according the collar logic.
Order entry may be allowed or forbidden when an instrument is halted, and no trading occurs.
2.5.3.3. Auction
When an instrument is halted whilst its class is in continuous trading phase, the auction algorithm is applied to resume
trading on the instrument that will afterwards go back to the inherited status.
Market Operation team may apply the same process on an halted instrument when its class is in call phase. In this
case, the instrument will trade independantly from its class before getting back to the inherited status.
The following table shows the state changes that occur for the security when it is being traded via auction.
Key
AS = Authorised Halted instrument
A= Authorised instrument
I= Inherited instrument with order rejection
IS = Halted instrument with order rejection
An order has the following characteristics that determine how it is processed and its life in the system:
---Side Of The Order---
The order can be a buy order, a sell order, a cross order (buy and sell).
---Security Code---
The security code indicates the instrument to which the order is sent.
---Type Of Price Entered, And Price Entered (Or Price Limit)---
An order can be :
Limit order
Order to buy or sell at a specific price. The order is exectured fir the entire quantity if there is sufficient couterpart
at the same (or better) limit on the opposite side; otherwise, the remaining amount stays in thto the orderbook at
the entered limit.
A buy (respectively sell) limit order can only be executed at the limit price or lower (respectively higher).
At the opening order
Order entered without any price that can only be entered in Call phase. Otherwise, it is rejected.
NB:
1/ At Opening orders and Market orders have the same precedence in the orderbook
2/ Non executed At opening order remains At opening orders for instrument traded on an auction mode, while
they are transformed into limited orders at the Indicative Matching Price for instrument traded on a continuous
mode.
A market to limit order
Order entered without any price that can only be entered in Continuous Trading session phase. Otherwise, it is
rejected.
A market order
A market order is an order without price limit to be executed at the best available current price. It can match at
any price as long as the trades are inside the instrument collars.
A stop order
Instruction to buy or sell when a certain level of price (the triggered price) is reached or exceeded on the market.
The stop order is inactive and hidden to the market until the trigger price is reached.
A stop loss, once triggered is immediately entered in the order book as a Market order.
A stop limit, once triggered is immediately entered in the order book as a Limit order at a pre-
defined price (limit price specified within the order at the stop limit order entry).
The triggered price is mandatory and must be:
for a buy stop order: strictly greater than the Last traded price or the adjusted Closing price if the
instrument has not traded yet
for a sell stop order: strictly lower than the Last traded price or the adjusted Closing price if the
instrument has not traded yet
The limit price, for Stop limit order is mandatory and must be:
greater than or equal to the triggered price for buy stop orders
lower than or equal to the trigger price for sell stop orders.
Stop orders don’t participate to the Indicative Matching Price computation. During call phase, they are only
collected and will be automatically triggered at the end of the following auction depending on the auction price.
For Auction Class, stop orders triggered at the first auction will be:
either booked and visible in the orderbook if the class returns in Call phase
or temporarily hidden if the class gets in Trading at Last phase. They will then be booked and visible at
the end of the Trading At Last phase.
FOK order
Limit Order which has a minimum quantity equal to the total quantity.
NB : FOK order is not allowed in Call phase. In Continuous phase, if the minimum quantity cannot be filled, the
order is then rejected.
---Total Quantity---
The total quantity indicates the initial number of shares to be traded on the market. This quantity must be multiple of
the board lot.
This information is mandatory for the order entry, but remains optional for the order modification.
---Disclosed Quantity---
A trader can conceal part of the total quantity of his order. To do this, he must enter his order with a disclosed quantity
(part of the total order). This quantity must be higher than an amount that Euronext Cash Market Operations is allowed
to parameterise.
The disclosed quantity qualifier is not used at the order entry but is taken into account for orders already in the book
(hit by incoming aggressive orders).
So, when an hidden-size order is hit by an incoming order two cases may happen:
The hidden-size order is matched for a quantity strictly less than the disclosed quantity: one trade is
generated, the new displayed quantity of the hidden-size order is equal to the previous one minus the
matched quantity and the order doesn’t lose its priority.
The hidden-size order is matched for a quantity greater than or equal to the disclosed quantity: the
disclosed quantity is filled in total and a first trade is generated, the displayed quantity of the order will “refill”
with the remaining quantity. When this refill occurs, the hidden quantity order loses its priority among orders
at the same price (if any). If the total quantity of the incoming is large enough, the hidden quantity order may
be hit again, but this time without taking into account the hidden quantity qualifier. Finally, the displayed
quantity of the hidden quantity order is refilled with its disclosed quantity (or the remaining quantity if strictly
less than the disclosed).
---Minimum Quantity---
An order that is entered with a minimum quantity must be immediately executed for its minimum quantity; otherwise, it
is eliminated.
This attribute is not authorised in Call phase.
---Clearing Data---
Allocated member code
This field is optional and corresponds to the ID code of the subscriber receiving the clearing allocation
Account type of order
This field is mandatory and allows a particular origin to be defined. All trades with that origin are then assigned to
a specific account.
An order can be a client order, a non-client order, a Liquidity provider order, or a Related Party order. A non-client
order is an order entered on behalf of the member firm.
A Related Party order is an order entered on behalf of the subsidiary company.
Client account number:
This field is optional and composed of the information of the posting account member.
Trader order number
This field is optional and contains the number assigned by the trader. This information is just conveyed in the
Trade Leg Creation message.
Originating order message entry date
This field is obsolete.
Memo
This field is optional and contains the free text entered, which can serve to transmit additional information in the
Trade Leg Creation message for logging purpose.
Posting action
This field is optional and gives information about the positions of the subscriber who entered the order. It
indicates the side in which the posting must be performed in the case that the latter is requested.
0: Manual mode: information is not processed in this case, but must be conveyed to the Trade Leg creation
message that is sent to the back-office stations after having recorded the trade in C21.
1: Automatic extraction: Trade posting is made automatically by C21 on the dedicated account in according with
the account’s structure of the member.
2: Automatic allocation: Trade give-up is made automatically made by C21 to the Give-Up destination member
specified.
---FIFO-Based Price---
When using the FIFO-based algorithm type, the price of incoming order is compared to the price of orders already in
the book on the opposite side. If the price is good enough, orders in the book are selected and matched with the
incoming order. The selection of orders in the book follows the price-time priority principle, also called FIFO (First In
First Out). Orders with the best price are matched first, and within the same price, best priority orders are matched
first.
When an incoming order is processed and executed with the one or several couterpart orders through the depth, one
or several stop orders of both sides can be activated: they are gradually triggered (if crossed) at each trade of the
incoming order execution.
Buy stop orders with a trigger price less than or equal to the Last traded price are activated in ascending
trigger price and time priority, oldest timestamp first.
Sell stop orders with a trigger price greater than or equal to the Last Traded Price are activated in
descending trigger price and time priority, oldest timestamp first.
Once activated a stop order is submitted and queued in the orderbook until the end of the total execution of the
incoming order. At this moment, they will be processed one after the other..
---Fixed Price---
An Auction Phase Type is always associated with a fixed price algorithm type as all orders are executed at the auction
price (last Indicative Matching Price calculated).
A Continuous Trading Phase can also be associated with a fixed price algorithm type lide for example the European
Trading At Last Market Phase.
When using the fixed price algorithm type during a Continuous Trading Phase Type, the price of incoming orders
participating in the phase must be equal to a fixed price (Last Traded price or Collar Reference price) and all trades
generated must have a price equal to the fixed price. The selection of orders in the book follows the fixed price/time
priority principle.
During a trading day, the Last Traded Price corresponds to the last real matching price resulting from a trade. The Last
Trade Price can be:
A price coming from a matching between two orders during continuous phase.or the Auction phase.
A valuation trade
A cross order price during a continuous trading phase
A price resulting from a trade created by Market Operation.
The Last traded Price becomes the Trading Closing Price at the end of Trading Day, just before the Post-session.
The adjusted closing price is set during Post-session to one of the following values:
The trading closing price
The new price received from a financial corporate event.
The collarf reference price indicates the price at which the instrument is currently traded or should be traded (animated
Market). It is used to calculate collars, price Market orders and calculate the indicative Matchinh price in some specific
cases.
At the beginning of a Trading Day, the collar reference price is initialized:
With the adjusted closing price in case of financial corporate events
With the previous day’s collar reference price
During a trading day, the collar reference price can be updated by:
Last traded price
Alternative indicative Price
Indicative Matching price
Valuation trade price
Market Operation intervention
External traded price (primary market)
A crossed collar
To confirm the rejected part of the order, the Broker must send a confirmed modification of the original incoming
order with a price equal to the original price and a total quantity equal to the rejected quantity that was outside of
the collars.
If the confirmed order still attempts to cross the collars without trading (note that the collar price crossed is
not necessarily the collar price used to reject the original order),
If the collar is crossed on the same “side” (up or down), then the current collars are immediately
updated around the collar crossed to allow the trade and the modification is processed as a normal
incoming order. The collars will be one more time updated at the end of the process with the last
traded price.
Else, the collar originally crossed was up and now the confirmation attempts to cross the collar down
(or vice versa), the confirmed order is processed as a normal incoming order, current collars are not
updated and the confirmed order is rejected for collars again
If the confirmed order can be partially matched within the current collars, and then attempts to trade at a
price which is outside of the current collars, it is first traded up (or down) to the collars, then collars are
updated around the collar crossed just before trading outside of collars.
If collars are crossed more than “X” times without matching, the instrument will be halted by Market Operation.
Chapter 3
UTP provides two types of services: solicited services and unsolicited services.
1. Solicited Services
Solicited services include the entry, updating, and processing of orders. These services are provided in UTP based
on the client-server model, where the SLE is the client and UTP is the server.
The SLE sends a message to UTP requesting a service. UTP performs the service and returns to the SLE the
results in the form of one or several messages.
2. Unsolicited Services
Certain services for SLEs are performed by UTP without the SLE having sent a message to request them.
Messages called response messages can be sent to SLEs to inform them of the results of these services.
Unsolicited services can relate to:
- orders previously entered by SLEs,
- the state of a security or group,
- transactions,
Solicited services available to member firms include order entry, order modification, order processing, and order
cancellation.
3.2.1.1 PURPOSE
Confirming an order
UTP requests confirmation if the order quantity exceeds 10,000 shares (for the bonds market) or the value of the
order exceeds €150 000 (for the equities market).
This section shows the sequence of processing that occurs after an order is entered. For a given order entry event,
the section describes how UTP processes the order and the sequence of UTP messages transmitted.
The following events are described:
- Entry of a normal buy or sell order (where the order is rejected or accepted) (see 3.2.2.3.1),
- Entry of a cross order that is accepted (see 3.2.2.3.2),
- Entry of an IOC order that is accepted and partially filled upon introduction (see 3.2.2.3.3),
- Entry of a FOK order which minimum quantity cannot be filled (see 3.2.2.3.4),
- Entry of an order that attempts the collars (see 3.2.2.3.5),
To enter an order, a SLE sends an ORDER = ENTRY + MODIFICATION message with a function code of 0001
(for the specifications of this message, see Section 4.2). In the message, the SLE provides a subscriber's internal
reference.
When UTP receives a message with a function code of 0001, it performs numerous validity checks on the values
of parameters.
If a value is not valid, UTP returns an ERROR MESSAGE (function code = 0144) (see 4.8) rejecting the message
it received and the subscriber's internal reference (which enables the SLE to identify the message that caused the
error).
If all values are valid, UTP accepts the message received and assigns a sequential order number to the order. For
a given day and security, numbers are assigned sequentially. UTP acknowledges the order by sending the SLE an
ORDER OUTCOME message (function code = 0172); for the specifications of this message, see Section 4.6. The
ORDER OUTCOME message provides the sequential order number. It also includes the subscriber's internal
reference, which enables the SLE to identify the original message that relates to the message received.
To confirm its order, the SLE resends a message, positioning its Confirmation Indicator parameter at 1.
In an ORDER OUTCOME message received immediately after an order entry, the order outcome can be:
If the order (or part of the order) has been executed, the SLE receives, immediately after the ORDER OUTCOME,
one (or several) EXECUTION NOTICE messages (function code = 0105) (see 4.9) giving all the details of the
conditions in which the transaction was executed.
If the order is put in the order book, the SLE must later receive either of the following messages:
SLE
OUT IN
UTP
SLE
OUT IN
UTP
The SLE sends an ORDER = ENTRY + MODIFICATION message with a function code of 0001 and a value of 2
(cross-order) for the Side of the Order parameter.
If UTP considers that the order is valid, it sends two ORDER OUTCOME messages (see 4.6) to the SLE: one for
the sell order, the other for the buy order. In this case, the sequential number of the order assigned by UTP is
different for each side of the order. Each buy order and sell order is then processed independently, as described
earlier; that is, EXECUTION NOTICES (see 4.9) are issued for one or the other side.
SLE
OUT IN
UTP
The SLE receives an ORDER OUTCOME message (see 4.6) indicating that the order was accepted. Then it
receives one (or several) EXECUTION NOTICES (see 4.9). At the end of the execution, the remaining quantity is
canceled and the SLE receives an Order Elimination for this quantity.
SLE
OUT IN
IOC order
SLE 0001
SLE 0172
SLE 0105 (n times)
SLE 0138(remaining qty )
UTP
The SLE sends an FOK order. But the minimum quantity cannot be filled. The order is then rejected and the SLE
receives an ERROR message (see 4.6) indicating that the order was rejected.
SLE
OUT IN
FOK:
SLE 0001 -R1
SLE 0144 -R1
UTP
3.2.1.3.4 WHEN AN ORDER PARTIALLY EXECUTED ATTEMPTS TO TRADE OUTSIDE THE COLLARS
The SLE receives an ORDER OUTCOME message (see 4.6) indicating that the order was accepted. Then it
receives one (or several) EXECUTION NOTICES (see 4.9) for all the trades within the collars. Then, a part of the
order quantity (Q1) hits a collar, and the SLE receives an ERROR message for this quantity.
SLE
OUT IN
UTP
3.2.1.3.4 WHEN AN ORDER ATTEMPTS TO TRADE OUTSIDE THE COLLARS UPON ENTRY
The SLE sends an order that attempts to trade outside the collars as soon as it enters the system. The SLE
receives an ORDER OUTCOME message (see 4.6) indicating that the order was accepted and that the systems
temporarily affected to it a sequentiel number. Then a ERROR message indicating that the order is outside the
collars, and the engine is waiting for a confirmation (see 4.9).
SLE
OUT IN
UTP
SLE
OUT IN
UTP
3.2.2.1. PURPOSE
Enables an SLE to modify an order in the order book in UTP.
An SLE can modify an order entered by itself or entered on its behalf by Euronext Cash Market Operations. An
SLE can only modify an order if it is still in the order book; that is, if the order has not been fully executed,
cancelled, or eliminated. A cross order cannot be modified.
A SLE can modify an order previously rejected by the engine, because it hit a collar. In this case, the SLE sends a
confirmed modification (see figure 6).
An SLE cannot modify the security or the side of the order. An order that is modified is eliminated from the order
book and replaced by a new one with a new sequential number.
An SLE can also modify an order that was entered by another SLE of the same member firm or entered by
Euronext Cash Market Operations on behalf of the member firm. The SLE that sent the modification request
receives the related ORDER OUTCOME message and the execution notices that relate to the modification.
To modify an order, the SLE sends an ORDER = ENTRY + MODIFICATION message, with a function code of
0002 (for the specifications of this message, see Section 4.3). In this message, the SLE specifies the following
information that enables UTP to identify the order.
- the security code in the order to be modified,
- the sequential number of the order,
- the side of the order,
- the date of the order,
- the ID of the member firm (Subscriber ID).
The SLE can provide the same internal reference or a different one.
All other parameters of the order can be modified in the ORDER = ENTRY + MODIFICATION message, function
code = 0002; for rules related to modification, see Section 4.3.
UTP performs numerous validity checks on the values of the parameters received.
If the message is not valid, UTP sends an ERROR MESSAGE (see 4.8) specifying the error code of the first error
detected. If no parameters were modified, UTP sends an ERROR.
If the message is valid, UTP eliminates the previous order from the order book and replaces it with the new order
(the modifying order), to which it assigns a new sequential order number. UTP sends an acknowledgement of the
modification in the form of an ORDER OUTCOME message (see 4.6). This message provides the new sequential
number assigned to the modifying order by UTP. It also indicates the outcome of the modifying order.
- ackowledged: the order was modified and will be processed by the engine.
- eliminated: the order was modified and immediately eliminated
SLE
OUT IN
UTP
3.2.3.1. PURPOSE
Enables an SLE to cancel an order in the order book in UTP.
When a SLE has entered an order, it can ask to cancel it. The cancellation will only be performed if the order, or
part of the order, is in the order book in the central system. An SLE can also cancel an order entered on its behalf
by the Euronext Cash Market Operations. A cross order cannot be cancelled.
An SLE can also cancel an order that was entered by another SLE in the same member firm (or that was entered
by Euronext Cash Market Operations on behalf of another SLE in the member firm). In this case, the ORDER
OUTCOME message related to this order is sent to the SLE that requested the cancellation.
To cancel an order, the SLE sends an ORDER CANCELLATION message (function code = 0003); for the
specifications of this message, see Section 4.4. This message specifies all the parameters that enable UTP to find
the order:
- the security code,
- the sequential order number,
- the side of the order,
- the date of the order,
- the ID of the member firm (Subscriber ID).
UTP performs numerous validity checks on the values of the parameters received.
If the ORDER CANCELLATION message is not valid, UTP sends an ERROR MESSAGE (see 4.8) indicating the
error code of the first error detected.
If the ORDER CANCELLATION message is valid, UTP sends an acknowledgement of the cancellation in the form
of an ORDER OUTCOME message (see 4.6) indicating the order outcome, which is always:
- Order cancelled by the trader.
If the order is cancelled by Euronext Cash Market Operations on behalf of the member, UTP sends an
acknowledgement of the cancellation in the form of an ORDER OUTCOME message (see 4.6) indicating the order
outcome, which is always:
Using a single command, a SLE can cancel, for a given security or security group, all its own orders, all the orders of
the member firm, or all the orders of another SLE in the same member firm. In response, each SLE owning an order
that was cancelled (eliminated) receives a corresponding ORDER ELIMINATION message.
To perform this global cancellation, the SLE sends a GLOBAL CANCELLATION OF ORDERS message, function code
= 0065; for the specifications of this message, see Section 4.5. This message specifies one of the following: its SLE ID
(interactor ID or HUB subscriber ID), the ID of another SLE in the member firm, or no ID. In the last case, appropriate
orders from all SLEs in the member firm are eliminated.
In this message, the SLE can further define the orders to be cancelled using the following criteria: side of the order,
order type, and account type.
3.2.5.1. PURPOSE
This function:
Enables a liquidity provider to indicate its instrument by sending a Price Input that will trigger an automatic
valuation trade generated by the engine and based on either the reference price or the price filled in the Price
Input message. This leads to the reference price update and recalculation of the collars.
Enables Member to indicate its instrument by sending a Price Input that will trigger an Alternative Indicative
Price and leads to the reference price update and recalculation of the collars. The price will be the one filled in
the message.
NB: to that purpose, and to avoid huge impacts, UTP will use the former NSC 0203 message (Change of
reference price) to allow indication functionalities.
Input price functionalities for valuation trade is available for equities instruments which settings allow it.
Only a liquidity provider, when he is authorised on his instrument and authorised to modify a reference price, can
use this function.
NB: Price Input functionalities for Alternative Indicative Price will be available in a later stage for warrant products.
For each PRICE INPUT message (see Section 4.19) received, UPT checks the message.
If the PRICE INPUT message is not valid, UTP sends an ERROR MESSAGE (see Section 4.8) indicating the error
code of the first error detected.
If the PRICE INPUT message is valid, UTP sends an acknowledgment in the form of a CONFIRMATION OF
PRICE INPUT message (function code = 0303); for a description of this message, see Section 4.20.
An unsolicited service is an action relating to an SLE that is performed by the central system, without any request
message being sent by the SLE.
Euronext Cash Market Operations can, on the request of a member firm or on its own initiative cancel an order in the
order book on behalf of a member firm.
These actions can take place:
- in Call phase
- during the Market Session.
If an order is cancelled by Euronext Cash Market Operations, the SLE owning the initial order receives the ORDER
OUTCOME message relating to the cancellation.
This section describes all cases where the system or Euronext Cash Market Operations eliminates an order without
having received a cancellation request message from the member firm.
The following table lists each type of corporate events that can occur for a security, and indicates whether or not
the operation causes orders for the security to be purged (eliminated) in UTP.
Euronext Cash Market Operations can request that the central system cancels a transaction that occurred that day.
The cancellation can be requested (by telephone) by a member firm or can be initiated by Euronext Cash Market
Operations.
UTP sends a TRADE CANCELLATION NOTICE message, function code = 0100; (see 4.11) to the two SLEs involved
in the trade (the SLEs can belong to 2 different member firms or to the same member firm). This message provides
values for all parameters related to the cancelled transaction.
Euronext Cash Market Operations can also request that the central system create a trade. A creation can be
requested for the following reasons:
- A trade was cancelled in error,
- A member firm made the request with the agreement of the counterpart,
- Other reasons...
A creation can take place:
- in the Market Session,
- during Late Monitoring phase
UTP sends a TRADE CREATION NOTICE, function code = 103 (see 4.12) to the default SLEs of the 2 member firms
involved in the trade. This message provides values for all parameters related to the created trade.
These messages can be sent asynchronously with respect to ACKNOWLEDGEMENT and RESPONSE messages.
If quotation is interrupted for all security groups, an SLE receives a SECURITY GROUP STATE CHANGE NOTICE
(function code = 0101) for each security group. Each message indicates that trading is interrupted. An interruption can
occur because of a technical problem or because of a Euronext Cash Market Operations request.
Upon specific request, a member firm can receives the retransmission of the orderbook at the end of day.
During the orderbook retransmission phase, all quotation groups will be forbidden for trading: this trading state does not
permit customers to manage (enter, modify or cancel) their orders recorded in the Euronext central orderbook.
Euronext Cash Market Operations will have the possibility either to proceed with a global order book retransmission (of
all orders for all customers) or with specific orderbook retransmissions for those customers who request this.
The message of retransmission of the orderbook is the 0146 message.
Chapter 4
SPECIFICATIONS FOR
MESSAGES EXCHANGED BETWEEN UTP
AND SLE
(Except for Retransmission Messages)
4.1. INTRODUCTION
This chapter presents the specifications for messages exchanged between UTP and SLEs (except the messages resent
during the Post-Market Session for the purpose of message security, which are specified in Chapter 5). The messages
described below are the following:
Sent by SLE or
UTP See
Message (Function Code) Section
ORDER = ENTRY + MODIFICATION (0001) * SLE 4.2
ORDER = ENTRY + MODIFICATION (0002) ** SLE 4.3
ORDER CANCELLATION (0003) SLE 4.4
GLOBAL CANCELLATION OF ORDERS SLE 4.5
(0065)
ORDER OUTCOME (0172) UTP 4.6
ERROR MESSAGE (0144) UTP 4.8
EXECUTION NOTICE (0105) UTP 4.9
ORDER ELIMINATION (0138) UTP 4.10
TRADE CANCELLATION NOTICE (0100) UTP 4.11
TRADE CREATION NOTICE (0103) UTP 4.12
SECURITY GROUP STATE CHANGE UTP 4.13
NOTICE (0101)
PRICE INPUT (0203) *** SLE 4.19
CONFIRMATION OF PRICE INPUT (0303) *** UTP 4.20
* Order entry ** Order modification
*** Message used only by liquidity providers
**** For future use
- The first column contains the different data making up the message
- The second column called « Type » indicates the type of the data. The possible values are:
X: Alphanumeric
N: Numeric
B: Binary in BIG ENDIAN representation
Px: Price
MMTP HEADER
* For a description of each parameter, go to the corresponding numbered paragraph, for example (1), later in this
document.
To link a message sent by the SLE with the corresponding messages (responses) received from the central system. Can also
be used to do multiplexing between different traders connected to the same SLE.
Description
When UTP receives an order entry message (or an order modification), UTP saves the subscriber's internal reference that is
sent by the SLE. If UTP detects an error, it sends an ERROR MESSAGE containing the value of this parameter. If UTP
acknowledges the order entry (or the modification), it assigns to the order a sequential order number associated with the
subscriber's internal reference. UTP then sends an ORDER OUTCOME message containing the values for those two
parameters. UTP also provides the values for those two parameters any time it sends the following messages related to the
order:
- ORDER OUTCOME,
- ERROR MESSAGE,
- EXECUTION NOTICE,
- ORDER ELIMINATION,
- TRADE CANCELLATION NOTICE,
UTP does not check the value of the internal reference; it simply stores it and resends it.
Purpose
Identifies the message.
Description
Identifies the UTP function of the message, which here is to enter an order (a buy order, a sell order, or a cross order) into the
system. The value of the function code is 0001.
This parameter specifies the code of the security for which the order was entered.
Description
The security code is 12 bytes long in conformance with the ISIN standard.
Must be recognised by UTP (the security must exist) 0001 Invalid Symbol
The list of securities and their security codes are available to all
member firms in the security reference data
Order entry must be authorised on the group 0001 Order entry disabled for this class
Order entry must be authorised for the current state of the group 0001 Market not open
Order entry must be authorised on the security 0001 Order entry disabled for this
instrument
Order entry must be authorised for the Market Phase 0001 Order entry disabled for this phase
Order entry must be sent during trading hours 0001 Class closed
Validity Checks
Order entry for a security is only permitted under the following circumstances:
- the group is in the Call, Market Session phase, and Trading At Last phase.
- the security is inherited without order rejection.
Indicates whether the order is a buy order, a sell order, or a cross order.
Description
Must have one of the following values: 0001 Field (Side) Invalid
-A ==> Buy
-V ==> Sell
-2 ==> Cross order
If the security is in Call phase, must not have a value of 2 0001 Invalid mkt Phase for Cross
Cross order forbidden for Stop order, Market Order, Market to 0001 Unsupported OrdType for cross
Limit, At opening orders
This parameter specifies the number of shares that the trader wants to trade. It is mandatory.
Description
Must be less than 100 000 000 0003 OrderQty invalid against Min/Max
Qty
1. If Side of the Order is 2, the total quantity must be greater than 0003 Order size should be multiple of
or equal to one board lot LotSize
2. If Side of the Order is not 2, the total quantity must be a multiple 0003 Order size should be multiple of
of the board lot. LotSize
Description
Must have one of the following values: 0001 Field (Ordertype) Invalid
L ==> Limit order
O ==> Opening price order
M ==> Market to limit order
X ==> Market order
S ==> Stop order
Must not be M if the security is in Call phase (and the group is in 0001 Type of price invalid for this phase
Call phase, or the group is in Market Session and the security is
halted)
Must not be O when the security is in Market Session (= group in 0001 Type of price invalid for this phase
Market Session and security is open)
If Side of the Order is 2, must have the value L 0001 Unsupported OrdType for cross
If the value is M, a limit order or a Market Order must exist on the 0003 Mkt2Lim:cannot calculate price
opposite side of the market
If the value is M and the order matches partially, the order keeps the
value of M in the order book and is assigned the best limit on the
other side of the book
If the class is in auction mode, if the value is O, the following occurs
after Opening: the partially executed order is given the value of L
and the theoretical opening price is assigned as the price limit, while
non executed order remains with the value O.
If the class is in continuous trading mode, if the value is O, the
following occurs after Opening: the order is given the value of L and
the theoretical opening price is assigned as the price limit
If the group is in the TAL phase, limit orders with an invalid price are 0003 TAL phase - Invalid price
rejected.
If the group is in the TAL phase, stop orders are rejected 0003 TAL phase – no Stop order
Description
The price entered must correspond to a valid price step 0003 Price in valid for tick
If Side of the Order is 2, if the price entered is within the collars but 0001 Cannot cross through the BBO
outside the best limits range (including the first and last values of the
range)
If Side of the Order is 2, if the price entered is within outside the best 0001 Cannot cross outside collars
limits range (including the first and last values of the range) but
outside the collars (including the first and last values of the range)
If Side of the Order is 2, the price entered is outside the best limits 0001 Cannot cross through the BBO
range (including the first and last values of the range) and outside
the collars
If Type of Price Entered is M, O or X, a value should not be 0003 No price on Market
provided:
- =0 on UTP, in this case, the Indicator can be
blank or 3
If Side of Order = buy, the Stop limit price must be >= trigger price 0003 Price must be better than Trigger price
If Side of Order = sell, the Stop limit price must be <= trigger price 0003 Price must be better than Trigger price
If the group is in the TAL phase, the price of the limit order must be 0003 TAL phase – Invalid Price
equal to the closing price.
The trade generated by the order must be inside the collars 0003 Rejected for collar
3* 0 0 0 4 9 8 5 0 0
* The Format indicator (first byte) is variable (between 0 and 6 in the incoming messages).
This parameter indicates the period during which the order remains valid in the system.
Description
Good Till Date (GTD): The order is valid from the current date to the date specified in the Validity Date of the Order.
Day The order is valid only during the Day the order was sent
Good Till Cancelled (GTC) This validity, known as Sliding validity will be calculated according to a validity ratio. The
expiration of the order = trading date+ one year.
IOC (Immediate Or Cancel):The order should only be accepted if it is filled totally or partially as soon as it is introduced
into the market. If the situation of the market does not permit this, the order with its remaining
quantity is automatically eliminated by UTP.
In the Call phase, the IOC order is forbidden.
Validity Checks Performed by UTPon Validity Type of the Order Error Error message
code
Must be alphanumeric or numeric 0001 Field (Time In Force) invalid
Must have one of the following values: 0001 Field (Time In Force) invalid
D ==> GTD
F ==> DAY
R ==> Good Till Cancelled
E ==> IOC
Cannot be E in Call phase or on an halted instrument 0001 No IOC/FOK in call mode
If there are opposite orders that can’t match with the entering IOC 0003 No shares available (IOC)
order or that are outside the collar at the first attempt of transaction,
the IOC is rejected
If the validity type of the order is GTD, this parameter specifies the last day that the order is valid.
Description
Validity Checks Performed by UTPon Validity Date of the Order Error Error message
code
Invalid date format 0001 Field ( ExpireTime) Invalid
the date must be a valid calendar date (format: YYYYMMDD) 0001 GTD: invalid ExpireTime
the date must be later than or equal to the current date 2019 Validity date must be higher than current
session date
The date must be earlier than D+365 days 2020 Validity date must be lower than default
date
If Validity Type of the Order is a value other than D, this parameter 0001 Dated/Timed only on GTD/GTT orders
should be left blank (=0)
This parameter indicates the number of shares that the trader wants to trade on the market as soon as the order is introduced.
If the state of market permits this minimum quantity to be filled immediately, the remaining quantity of the order is put in the
order book. Otherwise, the order is automatically rejected.
Description
Must be less than 100 000 000 0003 MinQty greater than Orderqty
If the security is in Call phase, a value should not be provided (=0) 0003 Minimum quantity forbidden in call
mode
it must be a multiple of the board lot 0003 MinQty should be multiple of LotSize
Minimum quantity forbidden for cross orders, Market order and Stop 0003 MinQty forbidden for this OrdType
orders
Minimum quantity must be compliant with the order validity 0003 MinQty forbidden for this TimeInForce
If there are opposite orders that can match with the entering 0003 No shares available (minQty)
minimumu quantity, or that are ouside the collars, the order is
rejected
This parameter indicates the number of shares that the trader wants displayed on the market sheet.
Description
Must be less than 100 000 000 0003 MaxFloor greater than OrderQty
If a value is not provided (=0), UTP considers that the displayed 0003
quantity should be equal to the total quantity
If a value is provided (>0), then 0003
it must be less than or equal to the total quantity 0003 MaxFloor greater than OrderQty
it must be greater than or equal to an amount that Euronext 0003 MaxFloor under LotSize
Cash Market Operations can parameterise.
it must be a multiple of the board lot 0003 MaxFloor should be a multiple of x Lotsize
Disclosed quantity forbidden for Stop orders, at Opening price 0003 MaxFloor forbidden for this OrdTyp
orders, cross orders, Market orders
Disclosed quantity in not compatible with IOC and FOK orders 0003 MaxFloor forbidden for this TimeInForce
V 1.2 (E) Page 15/131 November 2008
NYSE EURONEXT Specifications for SLE Access to UTP
Identifies the member firm that sent the message. A value must be provided.
Description
The ID must belong to the member firm that sent the message (a 0001 Invalid (OnBehalfOfCompID)
member firm cannot place an order on behalf of another member
firm)
Member code must be allowed to trade on the instrument’s class 0001 Class not authorized for this firm
If allowed, order entry must be allowed on the instrument to for this 0001 Order entry disabled for ths firm
member code
The member must be authorised on buy side on the classs 0001 Class not autorised for this firm
The member must be authorised on sell side on the classs 0001 Class not autorised for this firm
UTP verifies that the member code is compatible with the physical address (HUB subscriber ID) by which the message
arrived. If this is not the case, UTP transmits a rejection message to the sender.
Description
The order is outside the authorised quantity 0003 Max qty reached-need confirmation
The order is outside the authorised amount 0003 Max Amount reached-need confirmation
Validity Checks Performed by UTPon Stop Order Activation Error Error message
Price Code
Must be numeric 0001 Field (StopPx) invalid
The trigger price must respect a valid step price 0003 StopPx: price invalid for tick
If Type of Price other than S: 0003 Stop price only on stop order
Must have one of the following values: 0001 Field (Rule80A) invalid
(27) Memo
Purpose
OPTIONAL. Free text entry field, can serve to transmit additional information for logging purposes.
Must have one of the following values: 0001 Field (PostAction) invalid
-O ==> Opening
-C ==> Closing
It gives information about the position of the subscriber has entered the order. It indicates the side in which the posting
must be performed in the case that the latter is requested.
Indicates whether the operation should be performed automatically by C21 upon receipt of the trade or whether it
requires prior member validation.
Description
Must have one of the following values: 0001 Field (ClearingOpMode) invalid
0 ==> Manual mode
1 ==> Automatic extraction
2 ==> Automatic allocation
[ space/blank ] ==> Systematic Posting
This second clearing aggregate should be used when entering a cross order (Side of the Order =2). In this case, the first
aggregate contains the clearing data for the buy order and the second aggregate contains the clearing data for the sell order.
The validity checks applied to fields (30) to (38) when those fields are used for entering a cross order are the same as the
checks applied to fields (21) to (28).
MMTP HEADER
Purpose
To link a message sent by the SLE with the corresponding message (response) received from the central system. Can also be
used to do multiplexing between different traders connected to the same SLE.
In a modification message, the SLE should provide a value for this parameter (either the value assigned when the original
order was entered or another value). UTP returns this value in the acknowledgement or rejection message.
Description
When UTP receives an order modification message, UTP saves the subscriber's internal reference. If UTP detects an error, it
sends an ERROR MESSAGE. If UTP acknowledges the modification, it assigns to the order a new sequential order number
associated with the subscriber's internal reference. UTP then sends an ORDER OUTCOME message containing the values
for those two parameters. UTP also provides the values for those two parameters any time it sends the following messages
related to the order:
- ORDER OUTCOME
- ERROR MESSAGE
- EXECUTION NOTICE
- ORDER ELIMINATION
- TRADE CANCELLATION NOTICE
- TRADE CREATION NOTICE
UTP does not check the value of the internal reference.
Description
Identifies the UTP function of the message, which here is to modify an order. The value of the function code is 0002.
The date indicates when the order to be modified was entered into the central system.
Description
This parameter indicates to UTP the date when the previous order was entered into the system. This date was sent to SLE in
the acknowledgement of the previous order. This date enables a distinction to be made between two orders with the same
sequential order number that were entered into the system on two different dates.
The format is the following: YYYYMMDD
This parameter identifies the order that the SLE wants to modify. This number was assigned by UTP when the order was
entered.
Description
In order for UTP to modify an order, values must be provided for Date of the Order and Sequential Order Number.
This parameter specifies the code of the security for which the previous order was entered and for which the order
modification is being made (the security of an order cannot be modified).
Description
The validation checks are the same as those performed when the order was entered:
Must be recognised by UTP (the security must exist) 0000 Invalid Symbol
The modification of the order must be authorised for the current 0001 Order entry disabled for this phase
security group state
The modification of the order must be authorised for the current 0001 Order entry disabled for this
security state instrument
Order modification must be authorised for the Market Phase 0001 Order entry disabled for this phase
Order modification must be authorised on the group 0001 Order entry disabled for this class
Order modification must be sent during trading hours 0000 Class closed
This parameter indicates whether the modification relates to a buy order or a sell order.
Description
Must have one of the following values: 0001 Field (Side) Invalid
-A ==> Buy
-V ==> Sell
This parameter specifies the number of shares that the trader wants to trade on the market.
Note: To leave the total quantity unchanged in UTP, this field must not be provided.
Description
Must be less than 100 000 000 0003 OrderQty invalid against Min/Max
Qty
The total quantity must be a multiple of the board lot. 0003 Order size should be multiple of
LotSize
Description
Must have one of the following values: 0001 Field (Ordertype) Invalid
L ==> Limit order
O ==> Opening price order
M ==> Market to limit order
X ==> Market order
S ==> Stop order
Must not be M if the security is in Call phase (and the group is in 0001 Type of price invalid for this phase
Call phase, or the group is in Market Session and the security is
halted)
Must not be O when the security is in Market Session (= group in 0001 Type of price invalid for this phase
Market Session and security is open)
If Side of the Order is 2, must have the value L 0001 Unsupported OrdType for cross
If the value is M, a limit order or a Market Order must exist on the 0003 Mkt2Lim:cannot calculate price
opposite side of the market
If the value is M and the order matches partially, the order keeps the
value of M in the order book and is assigned the best limit on the
other side of the book
If the class is in auction mode, if the value is O, the following occurs
after Opening: the partially executed order is given the value of L
and the theoretical opening price is assigned as the price limit, while
non executed order remains with the value O.
In case of confirmation for crossed collar, the quantity in the 0001 Confirmed quantity should be the same
modification message must equal to the remaining quantity of the
originated order
Description
The price entered must correspond to a valid price step 0003 Price in valid for tick
If Type of Price Entered is O or X, a value should not be provided: 0003 No price on Market
If Side of Order = buy, the Stop limit price must be >= trigger price 0003 Price must be better than Trigger price
If Side of Order = sell, the Stop limit price must be <= trigger price 0003 Price must be better than Trigger price
Indicates the period during which the order remains valid in the system.
Description
Must have one of the following values: 0001 Field (Time In Force) invalid
D ==> GTD
F ==> DAY
R ==> Good Till Cancelled
E ==> IOC
Cannot be E in Call phase or on an halted instrument 0001 No IOC/FOK in call mode
If there are opposite orders that can’t match with the entering IOC 0003 No shares available (IOC)
order or that are outside the collar at the first attempt of transaction,
the IOC is rejected
If the validity type of the order is Dated, this parameter specifies the last date that the order is valid.
If the validity type of the order is R (Good Till Cancelled) and its former validity is different from R, this parameter specifies the
new date during which this order has been modified + one year.
Description
the date must be later than or equal to the current date 2019 Validity date must be higher than current
session date
The date must be earlier than D+365 days 2020 Validity date must be lower than default
date
If Validity Type of the Order is a value other than D, this parameter 0001 Dated/Timed only on GTD/GTT orders
should be left blank (=0)
Note: To leave a validity date unchanged in UTP, both the Validity Type of the Order and the Validity Date of the Order must
filled in.
This parameter indicates the number of shares that the trader wants displayed on the market sheet.
Description
Must be less than 100 000 000 0001 MaxFloor greater than OrderQty
If a value is not provided (=0), UTP assigns a value of 0 (that is, the
displayed quantity is the same as the total quantity) and not the
previous value
In other words, if the SLE does not want to modify the Disclosed
Quantity, the SLE must provide the same value that was entered in
the originated order.
If a value is provided (>0), then
1. it must be less than or equal to the total quantity 0001 MaxFloor greater than OrderQty
Disclosed quantity forbidden for Stop orders, at Opening price 0003 MaxFloor forbidden for this OrdTyp
orders, cross orders, Market orders
Disclosed quantity forbidden for at Opening price orders, cross 0003 MaxFloor forbidden for this OrdTyp
orders, Market orders
Disclosed quantity in not compatible with IOC and FOK orders 0003 MaxFloor forbidden for this TimeInForce
Description
The ID must belong to the member firm that sent the message (a 0001 Not same OnbehalfofCompID (F115)
member firm cannot place an order on behalf of another member
firm)
Member code must be allowed to trade on the instrument’s class 0001 Class not authorized for this firm
If allowed, order modificatiion must be allowed on the instrument to 0001 Order entry disabled for ths firm
for this member code
The member must be authorised on buy side on the classs 0001 Class not autorised for this firm
The member must be authorised on sell side on the classs 0001 Class not autorised for this firm
The Member Code must correspond to the physical address of one of the m.
0ember firm's SLEs. UTP verifies that the Member code is compatible with the physical address (HUB subscriber ID) by which
the message arrived. If this is not the case, UTP transmits a rejection message to the sender.
Description
Value is 0, the order is outside the authorised quantity 0001 Max qty reached-need confirmation
Value is 0, the order is outside the authorised amount 0001 Max Amount reached-need confirmation
Value is 1, the delay to confirm an order and cross a collar has 0000 Too late to confirm
expired
The trigger price must respect a valid step price 0003 StopPx: price invalid for tick
If Type of Price other than S: 0003 Stop price only on stop order
If Type of Price = sell, trigger price must be < last price (LTP) or 0003 Bad Trigger price versus LTP/AC
last adjusted closing price (ACP)
If the SLE does not want to modify this data, it must provide the same value that was entered in the originated order.
Must have one of the following values: 0001 Field (Rule80A) invalid
If the SLE does not want to modify this data, it must provide the same value
that was entered in the originated order.
If the SLE does not want to modify this data, it must provide the same value
that was entered in the originated order.
(27) Memo
Purpose
If the SLE does not want to modify this data, it must provide the
same value that was entered in the originated order.
Must have one of the following values: 0001 Field (PostAction) invalid
-O ==> Opening
-C ==> Closing
If the SLE does not want to modify this data, it must provide the
same value that was entered in the originated order.
Description
Must have one of the following values: 0001 Field (ClearingOpMode) invalid
0 ==> Manual mode
1 ==> Automatic extraction
2 ==> Automatic allocation
[ space/blank ] ==> Systematic Posting
If the SLE does not want to modify this data, it must provide the same
value that was entered in the originated order.
0: Manual mode: information is not processed in this case, but must be conveyed to the Trade Leg creation message that is
sent to the back-office stations after having recorded the trade in C21.
1: Automatic extraction: Trade posting is made automatically by C21 on the dedicated account in according with the account
structure of the member.
2: Automatic allocation: Trade give-up is made automatically made by C21 to the Give-Up destination member specified.
[ space/blank ]: Systematic Posting: Trade is automatically sent to the position account.
MMTP HEADER
To link a message sent by the SLE with the corresponding message (response) received from the central system. Can also be
used to do multiplexing between different traders connected to the same SLE. In a cancellation message, the SLE should
provide a value for this parameter (either the value assigned when the initial order was entered or another value).
Description
When UTP receives an order cancellation message, UTP saves the subscriber's internal reference. (UTP does not check the
internal reference.) If UTP detects an error, it sends an ERROR MESSAGE containing the value of this parameter. If UTP
acknowledges the cancellation, it sends an ORDER OUTCOME message containing the values for Subscriber's Internal
Reference and Sequential Order Number.
Description
Identifies the UTP function of the message, which here is to cancel an order. The value of the function code is 0003.
The date indicates when the initial order was entered into the central system.
Description
This parameter indicates to UTP the date when the previous order was entered into the system. This date was sent to SLE in
the acknowledgement of the previous order. This date enables a distinction to be made between two orders with the same
sequential order number that were entered into the system on two different dates.
The format is the following:
YYYYMMDD
This parameter identifies the order that the SLE wants to cancel. This number was assigned by the system when the order
was entered.
Description
If this is not the case, it means that the order does not exist or is Too late to cancel
no longer in the order book 0000
To cancel an order, values must be provided for Date of the Order and Sequential Order Number.
Identifies the member firm that sent the message. A value must be provided.
Description
The ID must belong to the member firm that sent the message (a 0000 Not same OnbehalfofCompID (F115)
member firm cannot place an order on behalf of another member
firm)
Member code must be allowed to trade on the instrument’s class 0001 Class not authorized for this firm
If allowed, order modificatiion must be allowed on the instrument to 0001 Order entry disabled for ths firm
for this member code
The member must be authorised on buy side on the classs 0001 Class not autorised for this firm
The member must be authorised on sell side on the classs 0001 Class not autorised for this firm
The member Code must correspond to the physical address (HUB subscriber ID) of one of the member firm's SLEs. UTP
verifies that the member code is compatible with the physical address by which the message arrived. If this is not the case,
UTP transmits a rejection message to the sender.
Purpose
This parameter specifies the security code of the order that is being cancelled.
Description
Must be recognised by UTP (the security must exist) 0001 Invalid Symbol
The cancellation of the order must be authorised for the current 0001 Order entry disabled for this
security group state phase
The cancellation of the order must be authorised for the current 0001 Order entry disabled for this
security state instrument
Order cancellation must be authorised for the Market Phase 0001 Order entry disabled for this phase
Order cancellation must be authorised on the group 0001 Order entry disabled for this class
Order cancellation must be sent during trading hours 0000 Class closed
The security code must be provided in the cancellation message because it helps identify the order to be cancelled.
Purpose
This parameter indicates whether a buy order or a sell order is being cancelled.
Description
Must have one of the following values: 0001 Field (Side) Invalid
-A ==> Buy
- V ==> Sell
MMTP HEADER
This parameter enables a link to be made between a message sent by the SLE and the corresponding messages (responses)
received from the central system. When UTP receives a global cancellation message, UTP saves this internal reference. If
UTP detects an error, it sends an ERROR MESSAGE containing this internal reference
Identifies the function of the message, which here is to globally cancel orders. The value of the function code is 0065.
Identifies the member firm that sent the global cancellation message.
The ID must belong to the member firm that sent the message (a 0000 Not same OnBehalfOfCompID (F115)
member firm cannot place an order on behalf of another member
firm)
Member code must be allowed to trade on the instrument’s class 0001 Class not authorised for this firm
If allowed, order cancellation must be allowed on the instrument to 0001 Order entry disabled for ths firm
for this member code
(4) and (4*): A value must be provided for only one of the two parameters; otherwise, an error message (code 3016) is
sent.
These parameters identify the security or the security group for which a global cancellation is being made.
Must be recognised by UTP (the group must exist) 0001 Invalid Class
Cancelation must be authorised on the group 0001 Order entry disabled for this class
Cancelation must be authorised on the phase 0001 Order entry disabled for this phase
Order modification must be authorised on the instrument 0001 Order entry disabled for this instrument
Cancelation must be authorised on the phase 0001 Order entry disabled for this phase
MMTP HEADER
Filler (11) X 6
Filler (20) X 1
Filler (27) N 6
Filler (27bis) X 8
Filler (32) X 1
Filler (32ter) X 3
Memo (34) X 18
Filler (36) X 1
Filler X 20
Purpose
This parameter contains the internal reference that the SLE entered in the message to which this ORDER OUTCOME
message is responding.
Description
If the ORDER OUTCOME message is received after an order entry by Euronext Cash Market Operations, a value is not
provided for this parameter.
If the ORDER OUTCOME message is received after an order modification or order cancellation by Euronext Cash Market
Operations, the internal reference of the initial order is provided if the initial order was sent by a member firm (otherwise, a
value is not provided).
Purpose
Description
Has a value of 0172.
Purpose
Identifies the date of the order about which the ORDER OUTCOME message was sent.
Description
Purpose
Identifies the order about which the ORDER OUTCOME message was sent.
Description
Cases 1 & 2: An ORDER OUTCOME is sent in response to an order entry or order modification.
This number, assigned by UTP upon reception of a valid order entry or order modification identifies the
entered or modified order in UTP.
The number is assigned sequentially for the day and the security.
Case 4: An ORDER OUTCOME message is sent in response to the triggering of a Stop order.
This parameter indicates the sequential number of the original Stop order.
Purpose
This parameter indicates to the SLE the outcome of the order that the SLE wanted to enter, modify, or cancel.
Description
Case 1 and 2: An ORDER OUTCOME message is sent immediately in response to an order entry or modification.
This parameter can have one of the following values:
Purpose
This parameter specifies the code of the security in the SLE message to which this ORDER OUTCOME message is
responding.
The security code used on UTP is the ISIN code.
Purpose
Indicates the number of shares in the order to which the ORDER OUTCOME message is responding.
Description
Purpose
Indicates, if appropriate, the price in the order to which the ORDER OUTCOME message is responding.
Description
Purpose
Description
This parameter indicates the code of the member firm that sent the order entry, order modification, or order cancellation
message (or for whom the message was sent by Euronext Cash Market Operations) and that is to receive the ORDER
OUTCOME message.
This parameter indicates the official time that UTP processed the order entry, order modification, or order cancellation
message to which this ORDER OUTCOME message is responding.
Purpose
Identifies the nature of the price in the order to which the ORDER OUTCOME message is responding.
Description
A market to limit (M) order that matches partially is transformed into a limited order in the order book.
A market order that matches partially remains as an « X » order without any limit.
For instrument traded in an auction mode:
An O order that is partially executed takes a value of L after Opening
An O order that is not executed at the opening keeps the value “O” after Opening
For instrument traded in a continuous mode:
An O order that is partially executed or not executed at all takes a value of L after Opening
An S order takes a value S when it is entered in the book. No ORDER OUTCOME is sent when the later is triggered.
No longer filled.
This parameter indicates the function code of the SLE message to which this ORDER OUTCOME message is responding.
A value is provided here only if the Function Code of Originating Message is 0002. In this case, the parameter takes the value
of the order date in the modification message to which this ORDER OUTCOME message is responding.
A value is provided here only if the Function Code of Originating Message = 0002. In this case, the parameter takes the value
of the sequential order number in the modification message to which this ORDER OUTCOME message is responding.
If the Function Code of Originating Message is 0001, takes the value in the initial message.
If the Function Code of Originating Message is 0002, takes the value in the modification message
If the Function Code of Originating Message is 0003, the parameter takes the value in the order book.
No longer filled
No longer filled
No longer filled
If the Function Code of Originating Message is 0001, takes the value in the initial message.
If the Function Code of Originating Message is 0002, takes the value in the modification message
If the Function Code of Originating Message is 0003, takes the value in the order book.
No longer filled
This parameter specifies the price at which a stop order will be activated.
If the Function Code of Originating Message is 0001, takes the value in the initial message.
If the Function Code of Originating Message is 0002, takes the value in the modification message
If the Function Code of Originating Message is 0003, takes the value in the order book.
If the Function Code of Originating Message is 0001, takes the value in the initial message.
If the Function Code of Originating Message is 0002, takes the value in the modification message
If the Function Code of Originating Message is 0003, takes the value in the order book.
If the Function Code of Originating Message is 0001, takes the value in the initial message.
If the Function Code of Originating Message is 0002, takes the value in the modification message
If the Function Code of Originating Message is 0003, takes the value in the order book.
If the Function Code of Originating Message is 0001, takes the value in the initial message.
If the Function Code of Originating Message is 0002, takes the value in the modification message
If the Function Code of Originating Message is 0003, takes the value in the order book.
(34) Memo
If the Function Code of Originating Message is 0001, takes the value in the initial message.
If the Function Code of Originating Message is 0002, takes the value in the modification message
If the Function Code of Originating Message is 0003, takes the value in the order book.
If the Function Code of Originating Message is 0001, takes the value in the initial message.
If the Function Code of Originating Message is 0002, takes the value in the modification message
If the Function Code of Originating Message is 0003, takes the value in the order book.
MMTP HEADER
This parameter contains the subscriber's internal reference which was specified by the SLE in the message that generated this
ERROR MESSAGE.
For more information, see Sections 3.2.2 and 3.2.3.
Identifies the function of the message, which here is the rejection of a message. The value of the function code is 0144.
This parameter indicates the function code of the SLE message to which this ERROR message is responding.
This parameter indicates the code of the first error detected by UTP when checking the parameters of the message that
generated the ERROR MESSAGE.
MMTP HEADER
Filler (12) X 1
Filler (14) X 6
Filler (21) X 8
Filler (23) X 8
Filler (28) X 1
Filler (28ter) X 3
Memo (30) X 18
Filler (32) X 1
Filler (34) X 91
An EXECUTION NOTICE message notifies the appropriate SLEs that an order or part of an order has found a match
(counterpart). The message contains all necessary information related to the transaction that occurred.
The message is sent when an SLE sends an order entry or order modification and the order or part of the order finds a
counterpart.
This parameter provides the internal reference that the SLE entered in the order entry or order modification message which is
related to this order execution. For more information, see Sections 3.2.2 and 3.2.3.
Identifies the function of the message, which here is the execution of a transaction. The value of the function code is 0105.
This parameter indicates the date that the order on which this transaction is based was entered into the system.
The format is: YYYYMMDD
where YYYY = Year, MM = Month, DD = Day
This parameter is necessary because it enables a distinction to be made between 2 orders that have the same sequential
order number but were entered on different dates.
This parameter identifies the order for which a transaction has been made.
This parameter indicates to the SLE the sequential order number of the executed order. This number was assigned by UTP
when the SLE or Euronext Cash Market Operations entered or modified the order, and the number was sent to the SLE in the
related ORDER OUTCOME message.
This parameter specifies the code of the security involved in this transaction.
No longer filled
This parameter indicates the side of the order taking part in the transaction.
This parameter can have one of the following values:
- A ==> Buy,
- V ==> Sell.
Note: When a cross order is executed, two EXECUTION NOTICE messages are sent, one for each side.
This parameter indicates the number of shares traded in the transaction, that is, the number of shares of the order that found a
counterpart in this transaction.
This parameter indicates whether additional shares of the order remain to be traded.
In case of an IOC order that is partially filled, the indicator of the last trade is set to 1 and an order elimination cancels the
remaining quantity.
This parameter indicates the number of shares in the order that remain to be traded.
(Remaining Quantity = 0) <==> (Remaining Shares Indicator = 0)
In most cases, this quantity is equal to the difference between the initially entered total quantity and ∑ (quantities traded in the
different related EXECUTION NOTICES).
This parameter indicates the type of the order related to this transaction (see Order Type in Section 4.2).
This parameter indicates the official date that UTP processed the order entry, order modification, or order cancellation
message that caused this EXECUTION NOTICE message to be generated.
Format: HHMMSS
This parameter indicates the official time that UTP processed the order entry, order modification, or order cancellation
message that caused this EXECUTION NOTICE message to be generated.
Description
No longer filled
(30) Memo
Free text entry field, can serve to transmit additional information for logging purposes..
O ==> Opening
C ==> Closing
An ORDER ELIMINATION message is sent to the SLE owning each order that is eliminated because of:
- Cancellation by Euronext Cash Market Operations of all orders for a security or group,
- Global cancellation by Euronext Cash Market Operations of the orders of a member firm or an SLE during the
Market Session,
- Global cancellation by a member firm of the orders of that member firm or one of its SLEs during the Market
Session,
- Elimination of an order during the Post-Market Session because of an corporate events.
- Elimination of a Good Till Cancelled order because it was expired (validity type of the order = R)
- Elimination of the remaining quantity of an IOC order at the opening
MMTP HEADER
This parameter indicates the internal reference in the order that was eliminated:
- A value is provided if the initial order was entered by the member firm
- A value is not provided if the initial order was entered by Euronext Cash Market Operations
This parameter identifies the function of the message. Here, the value of the function code is 0138.
This parameter indicates the date that the eliminated order was entered into the system.
Format: YYYYMMDD (YYYY = Year, MM = Month, DD = Day)
This parameter is necessary because it enables a distinction to be made between 2 orders that have the same sequential
order number but were entered on different dates.
This parameter specifies the current status of the order; that is, the reason for its elimination.
This parameter can have the following values:
S ==> Order was eliminated by Euronext Cash Market Operations.
A ==> Order was eliminated by the subscriber
V ==> Order was eliminated because it was expired (Good Till Cancelled order only)
O ==> Order was eliminated because of a corporate events
E ==> IOC order was eliminated at the opening (order not executed at the opening)
NB: if an order expires on the same day when a corporate event is applied to the instrument, UTP will send the ORDER
ELIMINATION message with an updated order status equal to “O” (corporate events).
This parameter indicates the number of shares that remained to be traded when the order was eliminated.
A price is provided (>0) only if the eliminated order was a limit order in the order book. If so, the price indicates the limit of the
order that was eliminated.
This parameter identifies the member firm to receive this elimination message.
The parameter indicates the ID of the member firm that entered or modified the order that was eliminated (or the ID of the
member firm for whom Euronext Cash Market Operations entered or modified the order). This is the ID of the member firm that
will receive this ORDER ELIMINATION message.
This parameter indicates the validity type of the eliminated order. It can have one of the following values:
D Dated,
F Dated by default (the order was only valid during the day that just ended)
R Good Till Cancelled.
For more information about the meaning of these values, see Section 4.2, which describes the ORDER = ENTRY +
MODIFICATION message.
No longer filled
This parameter specifies the side of the eliminated order. This parameter can have one of the following values:
A ==> Buy,
V ==> Sell.
This parameter indicates the official time of the event that led to the generation of this ORDER ELIMINATION message.
A value for this parameter is not provided in Post-Market Session elimination messages.
MMTP HEADER
Filler (10) N 6
Filler (14) X 10
Euronext Cash Market Operations can request that UTP cancels a trade that has already occurred (see the following three
cases):
Case 1: The trade occurred after an order entry or modification by the member firm.
In this case, trade cancellation messages (TRADE CANCELLATION NOTICES) are sent to the SLEs that entered
the orders that caused the trade.
Case 2: The trade was created by Euronext Cash Market Operations using the trade creation command
The TRADE CANCELLATION NOTICE is sent to the default SLE of the member firm (the TRADE CREATION
NOTICE was also sent to the default SLE).
Case 1:
This parameter indicates the subscriber's internal reference that was sent by the SLE during the entry (or
modification) of the order for which a trade has been cancelled.
Case 2:
A value is not provided for this parameter.
Identifies the function of the message, which here is the cancellation of a trade. The value of the function code is 0100.
This parameter indicates the date when the trade was cancelled (which must be the same date that the trade occurred).
This parameter indicates the date that the order involved in the cancelled trade was originally entered into the system.
Cases 1:
The format is the following: YYYYMMDD
where YYYY = Year, MM = Month, DD = Day
Case 2:
This parameter is not filled.
Cases 1:
This parameter indicates to the SLE the sequential number of the order for which a trade has been cancelled. This
number was assigned by UTP when the SLE or Euronext Cash Market Operations entered or modified the order,
and the number was sent to the SLE in the ORDER OUTCOME message.
Case 2:
The parameter is not filled.
This parameter specifies the code of the security in the cancelled trade.
This parameter indicates the number of shares that were traded in the cancelled trade.
Format: HHMMSS
This parameter indicates the time that the trade that has been cancelled originally occurred.
Format: HHMMSS
This parameter indicates the official time that UTP processed the message which caused this TRADE CANCELLATION
NOTICE to be generated. This time is considered the official time of the cancellation
MMTP HEADER
Response Time N 6
HHMMSS (12)
Filler (14) X 8
Filler (25) X 1
Filler (25ter) X 3
Memo (27) X 18
This parameter identifies the function of the message (TRADE CREATION NOTICE). The value of the function code is 0103.
This parameter indicates the date when the transaction was created.
This parameter indicates the price of the transaction. For the price format, see the Price Entered parameter in Section 4.2.
This parameter indicates the time that the transaction was created in UTP.
This parameter indicates whether the transaction represents a buy or a sell for the member firm receiving this message.
The parameter can have one of the following values:
- A ==> Buy,
- V ==> Sell.
This parameter indicates the official time of the event that led to the transmission of this TRADE CREATION NOTICE.
Optional: identifies the code of the subscriber receiving the clearing allocation.
(27) Memo
Free text entry field, can serve to transmit additional information for logging purposes..
O ==> Opening
C ==> Closing
Indicates whether the operation should be performed automatically by C21 upon receipt of the trade or whether it
requires prior member validation.
These messages are sent asynchronously with respect to acknowledgement and response messages.
MMTP HEADER
This parameter identifies the security group described in the message. The parameter contains the code of the appropriate
security group.
MMTP HEADER
Filler X 20
Purpose
To link a message sent by the SLE with the corresponding messages (responses) received from the central system. Can also
be used to do multiplexing between different traders connected to the same SLE.
Description
When UTP receives a PRICE INPUT message, it saves the subscriber's internal reference sent by the SLE. (UTP does no
validity check on this parameter.) If UTP finds an error in the message, it sends an ERROR MESSAGE containing the value of
this parameter. If not, it acknowledges the message, UTP sends a CONFIRMATION OF PRICE INPUT message, giving
values for the Internal reference and Sequential order number parameters.
Purpose
Description
Identifies the UTP function of the message, which here is trigger a valuation trade and a reference price update on an equitie’s
instrument. A value of 0203 must be provided.
The member must be authorised on buy side on the classs 9010 Class not autorised for this firm
The member must be authorised on sell side on the classs 9011 Class not autorised for this firm
Purpose
This parameter specifies the code of the security that is managed by the liquidity provider indicated in this message.
Description
Must be recognised by UTP (the security must exist) 0999 Invalid Symbol
Purpose
Optional. UTP will automatically sends a valuation trade with the reference price.
Description
The format of the price must be valid 8888 Message cannot be sent to UTP: Error
detected
The price must be filled 0999 Invalid Price
MMTP HEADER
Filler X 20
Purpose
This parameter specifies the internal reference that the SLE entered in the PRICE INPUT message that is related to this
CONFIRMATION OF PRICE INPUT message.
Description
If a CONFIRMATION OF PRICE INPUT message is received after the SLE sent a PRICE INPUT message, this parameter
contains the same value provided in the related PRICE INPUT message.
Purpose
Description
Has a value of 0303.
This parameter specifies the security code in the original PRICE INPUT message.
MMTP HEADER
Filler (16) X 1
Filler(18) X 8
Filler (23) X 1
Filler (23ter) X 3
Memo (25) X 18
Filler (27) X 1
This parameter indicates the number of shares of the orders that have already been traded.
This parameter specifies the price at which a stop order should be activated.
(25) Memo
Free text entry field, can serve to transmit additional information for logging purposes.
Indicates whether the operation should be performed automatically by the clearing system, Clearing 21, upon
receipt of the trade or whether it requires prior member validation.
APPENDICES
5. APPENDICES
This list describes the error messages that are sent when an entering message has an invalid format.
This list provides all the error messages that may be sent by the UTP engine depending on the different market cases and
conditions.
The different cases that lead to those error messages are described field by field in the messages 0001, 0002, 0003, 0065;
0203.
Generic Error code Error message Function code at the origine of the
error message generation
0000 OrderID (HON) not found 0002&0003
0000 Too late to cancel 0003
0000 Too late to confirm 0002
0000 Too late to modify 0002
0000 Not same OnBehalfOfCompID (F115) 0002&0003
0000 Class closed 0065
0000 Symbol closed 0065
0001 Missing Symbol 0003
0001 Technical Error 0001&0002&0003
0001 Invalid OnbehalfCompID 0001&0002&0003&0065
0001 Invalid symbol 0001&0002&0003&0065
0001 Order entry disabled for this class 0001&0002&0003&0065
0001 Order entry disabled for this instrument 0001&0002&0003&0065
0001 Order entry disabled for this firm 0001&0002&0003&0065
0001 Class not authorised for this firm 0001&0002&0003&0065
0001 GTD needs ExpireTime 0001&0002
0001 Dated/timed only on GTD/GTT orders 0001&0002
0001 Unsupported OrdType for Cross 0001
0001 GTD needs ExpireTime 0001&0002
0001 GTD: invalid ExpireTime 0001&0002
0001 No IOC/FOK in call mode 0001&0002
0001 Confirmed price should be the same 0002
0001 Confirmed quantity should be the same 0002
0001 Max amount reached-need confirmation 0002
0001 Max qty reached-need confirmation 0002
0001 Cannot cross through BBO 0001
0001 Cannot cross outside collar 0001
0001 Invalid Class 0065
0001 Invalid OnBehalfOfCompID on bulk cancel 0065
0001 Missing Class/Instrument on bulk cancel 0065
0001 Order size should be multiple of x LotSize 0002
0001 Price needed 0002
0001 Class closed 0001&0002&0003
0001 Cross needs Account type (Rule80A_2) 0001
0003 OrderQty invalid against Min/Max Qty 0001
0003 Order size should be multiple of x LotSize 0001
0001 Invalid Market phase for Cross 0001
0001 MaxFloor forbidden for this OrdTyp 0002
0001 MaxFloor greater than OrderQty 0002
0001 MaxFloor under LotSize 0002
0001 MaxFloor should be multiple of LotSize 0002
0003 No price on market 0001
0003 Price needed 0001
0003 StopPx: price invalid for tick 0001&0002
0003 Bad trigger price versus LTP/ACP 0001&0002
0003 Price must be better than trigger price 0001&0002
0003 MinQty greater than OrderQty 0003
0003 MinQty forbidden for this OrdType 0003
0003 MinQty should be multiple of LotSize 0003
0003 MaxFloor forbidden for this OrdTyp 0001
0003 MaxFloor greater than OrderQty 0001
0003 MaxFloor under LotSize 0001