Registration (ex TRD)

Registration (ex TRD)

MESSAGE SPECIFICATION


Trade Capture Report (MsgType = AE): Registration

The Trade Capture Report message can be:

  • Used by the client to send a Registration to be confirmed by the counterparty.

  • Used by the exchange to notify about the new Registration to be confirmed.

  • Used by the exchange to send a Registration to be confirmed by the involved parties.

  • Used by the exchange to notify the Registration acceptation, or declination.

Tag

FixName

Req

Valid Values

Data Type

Description

 Standard Header

31

LastPx

Y

 

Price

Trade Price.

32

LastQty

Y

 

Qty

Trade Quantity.

55

Symbol

Y

 

String

Instrument symbol Name

207

SecurityExchange

N

 

String

Security exchange identifier. Value defined ROFX.

60

TransactTime

N

 

UTCTimestamp

Timestamp when the business transaction represented by the message occurred.

75

TradeDate

N

 

String

Indicates date of trade referenced in this message in YYYYMMDD format.

150

ExecType

C

0 = New
4 = Canceled
C = Expired
F = Trade

char

Type of execution being reported. Sent the value:
New (0): Report registration request created and awaiting confirmation (does not represent a confirmed trade).
Canceled (4): One or more parties rejected the request.
Expired (C): No response received within the allowed time.
Trade (F): Report all required parties accepted the request.

487

TradeReportTransType

C

0 = New

Int

Identifies Trade Report message transaction type.
Required to create a new Registration.

570

PreviouslyReported

N

N = Not reported to counterparty

Boolean

Indicates if the trade capture report was previously reported to the counterparty.

571

TradeReportID

Y

 

String

Unique identifier of Trade Capture Report (AE)

572

TradeReportRefID

N

 

String

The TradeReportID that is being referenced for some action, such as correction or cancellation.

828

TrdType

Y

22 = Registration (ex TRD)

Int

Type of Trade.

856

TradeReportType

N

0 = Submit
1 = Alleged
2 = Accept
3 = Decline

Int

Type of Trade Report.
Submit (0): use by the broker to request Registration and by the exchange to notify about the new Registration request.
Alleged (1): use by the exchange to send a Registration to be confirmed by the involved parties.
Accept (2): use by the exchange to report Registration acceptance.
Decline (3): use by the exchange to report Registration declination (either explicitly by one of the parties or due to a confirmation timeout).

880

TrdMatchID

C

 

String

Identifier assigned to a trade by the matching system.

552

NoSides

Y

2 = Both Sides

NumInGroup 

Number of Sides.

->

54

Side

Y

1 = Buy
2 = Sell

Char

Side of order.

->

37

OrderID

N

 

String

Unique identifier for Order as assigned by sell-side (broker, exchange, ECN).

->

1

Account

Y

 

String

Account mnemonic as agreed between buy and sell sides.
e.g. broker and institution or investor/intermediary and fund manager.

->

40

OrderType

N

2 = Limit

Char

Order type from the order associated with the trade.
Sent only when TradeReportType (856) = 0

Block RootParties

N

 

 

Insert here the set of “Root Parties” fields defined in https://pmy.atlassian.net/wiki/x/sABcDwE

1925

TradeClearingInstruction

C

2 = Bilateral netting only
6 = Clear against central counterparty (Guaranteed)

Int

Specifies the eligibility of this trade for clearing and central counterparty processing.
Required only when TrdType(828) = 22 and the instrument has the field ClearingInstruction(577) complete in the securityList message.

 Standard Trailer

 


TradeCaptureReportAck (MsgType = AR): Registration

The Trade Capture Report Ack message can be:

  • Used by the market to inform about the Registration request reception.

  • Used by the client to accept or reject a Registration received from a counterparty.

Tag

FixName

Req

Valid Values

Data Type

Description

Standard Header

31

LastPx

C

 

Price

Trade Price.
Required if TrdType(828) = Registration (22)

32

LastQty

C

 

Qty

Trade Quantity.
Required if TrdType(828) = Registration (22)

55

Symbol

Y

 

String

Instrument symbol Name

207

SecurityExchange

N

 

String

Security exchange identifier. Value defined ROFX.

58

Text

C

 

String

Free format text string, used to inform about cause of rejection
Sent only when ExecType(150) = 8.

60

TransactTime

N

 

UTCTimestamp

Timestamp when the business transaction represented by the message occurred.

150

ExecType

N

0 = New
8 = Rejected

Char

Type of Execution being reported:
Uses subset of ExecType for Trade Capture Reports.

571

TradeReportID

Y

 

String

Unique identifier of “trade capture report”.

572

TradeReportRefID

Y

 

String

Unique Broker identifier of “trade capture report”.

828

TrdType

Y

22 = Registration (ex TRD)

Int

Type of Trade

856

TradeReportType

Y

2 = Accept
3 = Decline

Int

Type of trade report.

880

TrdMatchID

Y

 

String

Identifier assigned to a trade by a matching system.

552

NoSides

Y

2 = Both Sides

NumInGroup 

Number of Sides.

->

54

Side

C

1 = Buy
2 = Sell

Char

Side of order.

->

1

Account

C

 

String

Account mnemonic as agreed between buy and sell sides.

 Standard Trailer

 


Registration Message sequence diagram

Case with auto accepted Registration

Diagram:

image-20260220-184119.png

Example messages:

Client_A

#Registration request 8=FIXT.1.1|9=142|35=AE|34=41|49=Client_A|52=20260109-14:01:08.535|56=ROFX|31=100|32=5|55=Instrument 01|487=0|571=RG_ID|828=22|1925=6|552=2|54=1|1=01|54=2|1=02|10=221| #Registration request ACK 8=FIXT.1.1|9=147|35=AR|34=93|49=ROFX|52=20260109-14:01:09.141|56=Client_A|55=Instrument 01|60=20260109-14:01:08.801|150=0|207=ROFX|571=RG_ID|828=22|856=1|880=12004|10=000| #Registration Report 8=FIXT.1.1|9=234|35=AE|34=94|49=ROFX|52=20260109-14:01:09.285|56=Client_A|31=100.0|32=5|55=Instrument 01|60=20260109-14:01:08.850|75=20260109-14:01:08.850|150=F|207=ROFX|570=N|571=7002|572=RG_ID|828=22|856=2|880=12004|1925=6|552=2|54=1|37=7002|1=01|54=2|37=7002|1=02|10=198|

Client_B

#Registration Report 8=FIXT.1.1|9=223|35=AE|34=78|49=ROFX|52=20260109-14:01:09.285|56=Client_C|31=100.0|32=5|55=Instrument 01|60=20260109-14:01:08.850|75=20260109-14:01:08.850|150=F|207=ROFX|570=N|571=7002|572=RG_ID|828=22|856=2|880=12004|1925=6|552=1|54=2|1=-|10=234|

 

Case with accepted Registration

Diagram:

image-20260220-184828.png

Example messages:

Client_A

#Registration request 8=FIXT.1.1|9=142|35=AE|34=44|49=Client_A|52=20260108-19:14:34.573|56=ROFX|31=100|32=5|55=Instrument 01|487=0|571=RG_ID|828=22|1925=6|552=2|54=1|1=01|54=2|1=02|10=233| #Registration request ACK 8=FIXT.1.1|9=148|35=AR|34=101|49=ROFX|52=20260108-19:14:34.822|56=Client_A|55=Instrument 01|60=20260108-19:14:34.662|150=0|207=ROFX|571=RG_ID|828=22|856=1|880=10013|10=061| #Registration request report 8=FIXT.1.1|9=223|35=AE|34=88|49=ROFX|52=20260108-19:14:34.823|56=Client_A|31=100|32=5|55=Instrument 01|60=20260108-19:14:34.662|75=20260108-19:14:34.662|150=0|207=ROFX|570=N|571=11006|572=RG_ID|828=22|856=0|880=10013|1925=6|552=1|54=1|1=01|10=235| #Registration Report 8=FIXT.1.1|9=235|35=AE|34=102|49=ROFX|52=20260108-19:15:00.177|56=Client_A|31=100.0|32=5|55=Instrument 01|60=20260108-19:14:59.983|75=20260108-19:14:59.983|150=F|207=ROFX|570=N|571=6001|572=RG_ID|828=22|856=2|880=10013|1925=6|552=2|54=1|1=01|54=2|1=02|1116=1|1117=Client_B|1118=D|1119=11|10=019|

Client_B

#Registration request report 8=FIXT.1.1|9=223|35=AE|34=88|49=ROFX|52=20260108-19:14:34.823|56=Client_B|31=100|32=5|55=Instrument 01|60=20260108-19:14:34.662|75=20260108-19:14:34.662|150=0|207=ROFX|570=N|571=11007|572=RG_ID|828=22|856=0|880=10013|1925=6|552=1|54=2|1=02|10=235| #Registration confirmation request 8=FIXT.1.1|9=261|35=AE|34=89|49=ROFX|52=20260108-19:14:34.823|56=Client_B|31=100|32=5|55=Instrument 01|60=20260108-19:14:34.662|75=20260108-19:14:34.662|150=0|207=ROFX|570=N|571=RG10015|572=RG_ID|828=22|856=1|880=10013|1925=6|552=1|54=2|1=02|1116=2|1117=Client_A|1118=D|1119=11|1117=Broker_A|1119=1|10=126| #Registration confirmation 8=FIXT.1.1|9=147|35=AR|34=42|49=Client_B|52=20260108-19:14:59.793|56=ROFX|31=100|32=5|55=Instrument 01|571=RG10015|572=RG_ID|828=22|856=2|880=10013|552=1|54=2|1=02|10=088| #Registration Report 8=FIXT.1.1|9=224|35=AE|34=90|49=ROFX|52=20260108-19:15:00.177|56=Client_B|31=100.0|32=5|55=Instrument 01|60=20260108-19:14:59.983|75=20260108-19:14:59.983|150=F|207=ROFX|570=N|571=6001|572=RG_ID|828=22|856=2|880=10013|1925=6|552=1|54=2|1=02|1116=1|1117=Client_B|1118=D|1119=11|10=063|

Client_C

#Registration Report 8=FIXT.1.1|9=223|35=AE|34=84|49=ROFX|52=20260108-19:15:00.177|56=Client_C|31=100.0|32=5|55=Instrument 01|60=20260108-19:14:59.983|75=20260108-19:14:59.983|150=F|207=ROFX|570=N|571=6001|572=RG_ID|828=22|856=2|880=10013|1925=6|552=1|54=2|1=-|1116=1|1117=Client_B|1118=D|1119=11|10=013|

 

Case with rejected Registration

Diagram:

image-20260220-185953.png

Example messages:

Client_A

#Registration request 8=FIXT.1.1|9=142|35=AE|34=67|49=Client_A|52=20260108-19:24:50.762|56=ROFX|31=100|32=5|55=Instrument 01|487=0|571=RG_ID|828=22|1925=6|552=2|54=1|1=01|54=2|1=02|10=237| #Registration request ACK 8=FIXT.1.1|9=148|35=AR|34=126|49=ROFX|52=20260108-19:24:51.005|56=Client_A|55=Instrument 01|60=20260108-19:24:50.844|150=0|207=ROFX|571=RG_ID|828=22|856=1|880=10025|10=065| #Registration request Report 8=FIXT.1.1|9=224|35=AE|34=111|49=ROFX|52=20260108-19:24:51.006|56=Client_A|31=100|32=5|55=Instrument 01|60=20260108-19:24:50.844|75=20260108-19:24:50.844|150=0|207=ROFX|570=N|571=11017|572=RG_ID|828=22|856=0|880=10025|1925=6|552=1|54=1|1=01|10=025| #Registration Report 8=FIXT.1.1|9=270|35=AE|34=127|49=ROFX|52=20260108-19:25:14.504|56=Client_A|31=100|32=5|55=Instrument 01|60=20260108-19:25:14.343|75=20260108-19:25:14.343|150=4|207=ROFX|570=N|571=11020|572=RG_ID|828=22|856=3|880=10025|1925=6|552=1|54=1|1=01|1116=1|1117=Client_B|1118=D|1119=11|10=177|

Client_B

#Registration request Report 8=FIXT.1.1|9=224|35=AE|34=111|49=ROFX|52=20260108-19:24:51.006|56=Client_B|31=100|32=5|55=Instrument 01|60=20260108-19:24:50.844|75=20260108-19:24:50.844|150=0|207=ROFX|570=N|571=11018|572=RG_ID|828=22|856=0|880=10025|1925=6|552=1|54=2|1=02|10=015| #Registration confirmation request 8=FIXT.1.1|9=262|35=AE|34=112|49=ROFX|52=20260108-19:24:51.006|56=Client_B|31=100|32=5|55=Instrument 01|60=20260108-19:24:50.844|75=20260108-19:24:50.844|150=0|207=ROFX|570=N|571=RG10027|572=RG_ID|828=22|856=1|880=10025|1925=6|552=1|54=2|1=02|1116=2|1117=Client_A|1118=D|1119=11|1117=Broker_A|1119=1|10=163| #Registration confirmation 8=FIXT.1.1|9=147|35=AR|34=63|49=Client_B|52=20260108-19:25:14.263|56=ROFX|31=100|32=5|55=Instrument 01|571=RG10025|572=RG_ID|828=22|856=3|880=10025|552=1|54=2|1=02|10=081| #Registration Report 8=FIXT.1.1|9=260|35=AE|34=113|49=ROFX|52=20260108-19:25:14.505|56=Client_B|31=100|32=5|55=Instrument 01|60=20260108-19:25:14.343|75=20260108-19:25:14.343|150=4|207=ROFX|570=N|571=11022|572=RG_ID|828=22|856=3|880=10025|1925=6|552=1|54=2|1=02|1116=1|1117=Client_B|1118=D|1119=11|10=006|

 

Case with timeout rejected Registration

Diagram:

image-20260220-191539.png

Example messages:

Client_A

#Registration request 8=FIXT.1.1|9=142|35=AE|34=72|49=Client_A|52=20260108-19:27:15.262|56=ROFX|31=100|32=5|55=Instrument 01|487=0|571=RG_ID|828=22|1925=6|552=2|54=1|1=01|54=2|1=02|10=232| #Registration request ACK 8=FIXT.1.1|9=148|35=AR|34=132|49=ROFX|52=20260108-19:27:15.499|56=Client_A|55=Instrument 01|60=20260108-19:27:15.349|150=0|207=ROFX|571=RG_ID|828=22|856=1|880=10028|10=089| #Registration request Report 8=FIXT.1.1|9=224|35=AE|34=118|49=ROFX|52=20260108-19:27:15.499|56=Client_A|31=100|32=5|55=Instrument 01|60=20260108-19:27:15.349|75=20260108-19:27:15.349|150=0|207=ROFX|570=N|571=11022|572=RG_ID|828=22|856=0|880=10028|1925=6|552=1|54=1|1=01|10=048| #Registration Report 8=FIXT.1.1|9=234|35=AE|34=196|49=ROFX|52=20260108-19:57:15.507|56=Client_A|31=100|32=5|55=Instrument 01|60=20260108-19:57:15.349|75=20260108-19:57:15.349|150=4|207=ROFX|570=N|571=11043|572=RG_ID|828=22|856=3|880=10028|1925=6|552=1|54=1|1=01|10=231|

Client_B

#Registration request Report 8=FIXT.1.1|9=224|35=AE|34=118|49=ROFX|52=20260108-19:27:15.499|56=Client_B|31=100|32=5|55=Instrument 01|60=20260108-19:27:15.349|75=20260108-19:27:15.349|150=0|207=ROFX|570=N|571=11023|572=RG_ID|828=22|856=0|880=10028|1925=6|552=1|54=2|1=02|10=048| #Registration confirmation request 8=FIXT.1.1|9=262|35=AE|34=119|49=ROFX|52=20260108-19:27:15.500|56=Client_B|31=100|32=5|55=Instrument 01|60=20260108-19:27:15.349|75=20260108-19:27:15.349|150=0|207=ROFX|570=N|571=RG10030|572=RG_ID|828=22|856=1|880=10028|1925=6|552=1|54=2|1=02|1116=1|1117=Client_A|1118=D|1119=11|10=177| #Registration Report 8=FIXT.1.1|9=224|35=AE|34=182|49=ROFX|52=20260108-19:57:15.507|56=Client_B|31=100|32=5|55=Instrument 01|60=20260108-19:57:15.349|75=20260108-19:57:15.349|150=4|207=ROFX|570=N|571=11045|572=RG_ID|828=22|856=3|880=10028|1925=6|552=1|54=2|1=02|10=059

 

Trade Capture and Market Data Dissemination

Regarding execution reports and market data messaging, all users connected via FIX will receive a TradeCaptureReport (MsgType = AE) informing that a registration trade has been executed.

Additionally, users who are subscribed to the market data of the instrument involved in the registration will receive a MarketData Snapshot/Full Refresh (MsgType = W) message, indicating that the traded volume of the instrument has been updated.

Both the TradeCaptureReport (MsgType = AE) and the MarketData Snapshot/Full Refresh (MsgType = W) messages allow the identification of registration trades through Tag 828 (TrdType) with value 22, which indicates a registration trade.

Registration trades impact market statistics such as trade volume, nominal volume and cash volume for the corresponding instrument. However, registration trades do not update the Last Traded Price (MDEntryType = Trade, with TradeCondition = U out) in market data messages.