Skip to main content

Supported FIX Message Formats

The message formats shared here are based on the FIX Protocol 5.0 SP2 specification. If a message type or format validation failure occurs, then the BPX MTF will initiate a Reject or Business Message Reject message with the relevant reason.

Message Header and Trailer

Table 1 – Message Standard Header Supported Format

TagField NameRequired (Y/N)Supported Values
8BeginStringYFIXT.1.1
Must be the first field in the message.
9BodyLengthYMessage length, in bytes, forward to the CheckSum
Must be the second field in the message.
35MsgTypeYOne of the supported message types shared within this document.
Must be the third field in the message.
1128ApplVerIDNApplication layer version used at message level.
BPX MTF will validate the version for each message initiated by the Customer and reject unsupported versions.

Supported Value Set:
9 = FIX50SP2
49SenderCompIDYCompID of the initiator of the message.
56TargetCompIDYCompID of the recipient of the message.
34MsgSeqNumYInteger message sequence number.
43PossDupFlagNPossible retransmission of message sent with the same MsgSeqNum(34) specified on currently initiated message.

Supported Value Set:
N = Original Transmission. Default value if field not specified.
Y = Possible Duplicate.
97PossResendNPossible retransmission of message sent with a different MsgSeqNum(34).

Supported Value Set:
N = Original Transmission. Default value if field not specified.
Y = Possible Resend.
52SendingTimeYTime of message transmission expressed in UTC (Universal Time Coordinated)
122OrigSendingTimeNOriginal time of message transmission when sending message in response to a Resend Request.
If original time is unknown, then this should set to the SendingTime (52) specified on currently initiated message.
Mandatory when PossDupFlag(43) is set to value Possible Duplicate(Y).

Table 2 – Message Standard Trailer Supported Format

TagField NameRequired (Y/N)Supported Values
10CheckSumYSee FIX trading standards for calculation definition.
Must be the last field in the message.

Session Management

Table 3 - Logon Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeYA
98EncryptMethodYSupported Value Set:
0 = None
108HeartBtIntYAgreed heartbeat interval.
Value must be equal to or between the range of 15 to 60 seconds
141ResetSeqNumFlagNIndicates the Customer and BPX MTF should reset sequence numbers.

Supported Value Set:
N = No. Default value if field not specified.
Y = Yes, reset sequence numbers
554PasswordNRequired field for Customer initiated Logon message.
Field will not be populated in the BPX MTF initiated Logon response.
925NewPasswordNNew password for the specified SenderCompID(49). Will be used for subsequent Logon validation by the BPX MTF if successfully changed.
1137DefaultApplVerIDYSpecifies the service pack release being applied, by default, to message at the session level.

Supported Value Set:
9 = FIX50SP2
1409SessionStatusNRequired field for BPX MTF initiated Logon response.

Supported Value Set:
0 = Session active.
1 = Session password changed. Session is confirmed active but this value will be used when the password is successfully changed as part of logon.
2 = Session password due to expire. Session is confirmed active but this value will be used when the password is due to expire within the agreed duration specified in the Technical Onboarding documentation.

Table 4 - Logout Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeY5
1409SessionStatusNRequired field for BPX MTF initiated Logout response.

Supported Value Set:
3 = New password does not comply with policy defined in the Technical Onboarding documentation.
4 = Session Logout complete.
5 = Invalid password.
6 = Account locked. This will occur after number of consecutive failed Logon attempt as defined in the Technical Onboarding documentation.
7 = Logons are not allowed at the time of BPX MTF Logon validation.
8 = Password Expired.
9 = Received MsgSeqNum(34) is too low. At start of day the sequence number should be 1. For intraday session recovery the sequence number should be 1 increment above the previous Customer-tracked outbound sequence number.
58TextNRequired field when BPX MTF initiates a Logout message.
Field includes reason for BPX MTF logout.

Table 5 - Heartbeat Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeY0
112TestReqIDNRequired field when either BPX MTF or Customer is responding to a Test Request message.
Value will be equal to the TestReqID(112) specified in the Test Request message.

Table 6 - Test Request Supported format

TagField NameRequired (Y/N)Supported Values
35MsgTypeY1
112TestReqIDYSpecified identifier to be returned in Heartbeat message response.

Table 7 - Resend Request Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeY2
7BeginSeqNoYSequence number of first message in range to be resent.
16EndSeqNoYSequence number of last message in range to be resent.

Table 8 - Sequence Reset Message Supported format

TagField NameRequired (Y/N)Supported Values
35MsgTypeY4
123GapFillFlagNIndicator when responder is using sequence reset message resend gap fill mode.

Supported Value Set:
N = Sequence reset request. Default value if field not specified.
Y = Gap fill message.
36NewSeqNoYSequence number that will be used in next message initiated by sender of sequence reset message.

Order Management and Execution Reports

Table 9 - New Order - Single Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeYD
11ClOrdIDYUnique new order identifier specified by Customer.
Uniqueness logic of identifier shared in Section 4.1 of this document.
48SecurityIDYSecurity identifier value in type matching SecurityIDSource(22).
22SecurityIDSourceYSecurity identifier type.

Supported Value Set:
4 = ISIN
54SideYOrder side.

Supported Value Set:
1 = Buy
2 = Sell
60TransactTimeYTimestamp considered to be the order entry time.
38OrderQtyYOrder size.
40OrdTypeYType of order.

Supported Value Set:
2 = Limit
44PriceYLimit price.
59TimeInForceNOrder open duration.

Supported Value Set:
0 = Day
Default value if field not specified.
1 = Good Till Cancel (GTC)
528OrderCapacityYDesignation of Customer placing the order.

Supported Value Set:
A = Agency
P = Principal
R = Riskless Principal

Table 10 - Order Cancel Request Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeYF
41OrigClOrdIDNClOrdID(11) previous order identifier specified by Customer for order to be cancelled.
Required if OrderID(37) not specified.
37OrderIDNBPX MTF generated previous order identifier for order to be cancelled.
Required if OrigClOrdID(41) not specified.
11ClOrdIDYUnique cancel order identifier specified by Customer.
Uniqueness logic of identifier shared in Section 4.1 of this document.
48SecurityIDYSecurity identifier value in type matching SecurityIDSource(22).
This should match the corresponding value within the order to be cancelled.
22SecurityIDSourceYSecurity identifier type.

Supported Value Set:
4 = ISIN
54SideYOrder side.
This should match the corresponding value within the order to be cancelled.

Supported Value Set:
1 = Buy
2 = Sell
60TransactTimeYTimestamp considered to be the order cancel request time.

Table 11 - Order Cancel/Replace Request Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeYG
41OrigClOrdIDNClOrdID(11) previous order identifier specified by Customer for order to be modified.
Required if OrderID(37) not specified.
37OrderIDNBPX MTF generated previous order identifier for order to be modified.
Required if OrigClOrdID(41) not specified.
11ClOrdIDYUnique modify order identifier specified by Customer.
Uniqueness logic of identifier shared in Section 4.1 of this document.
48SecurityIDYSecurity identifier value in type matching SecurityIDSource(22).
This should match the corresponding value within the order to be modified.
22SecurityIDSourceYSecurity identifier type.

Supported Value Set:
4 = ISIN
54SideYOrder side.
This should match the corresponding value within the order to be modified.

Supported Value Set:
1 = Buy
2 = Sell
60TransactTimeYTimestamp considered to be the order modify request time.
38OrderQtyYOrder size.
40OrdTypeYType of order.

Supported Value Set:
2 = Limit
44PriceYLimit price.
59TimeInForceNOrder open duration.

Supported Value Set:
0 = Day. Default value if field not specified.
1 = Good Till Cancel (GTC)

Table 12 - Execution Report Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeY8
37OrderIDYBPX MTF generated order ID.
This will be unique across versions of each order and across orders.
11ClOrdIDYEqual to ClOrdID(11) value provided by Customer when submitting an initial single order entry request.
41OrigClOrdIDNEqual to ClOrdID(11) that was submitted with the order cancel or modification request. This corresponds to the ClOrdID (11) value of the order before cancelling or modifying the order.
880TrdMatchIDNBPX MTF generated trade unique identifier.
Required if ExecType(150) equals F(Trade).
17ExecIDYBPX MTF generate unique identifier of Execution Report message.
19ExecRefIDNExecID(17) of execution that is either cancelled or amended.
Required when BPX MTF cancels or amends a previously sent trade execution report.
150ExecTypeYType of execution report.

Supported Value Set:
0 = New
4 = Cancelled
5 = Replaced
8 = Rejected
F = Trade
H = Trade Cancel
39OrdStatusYCurrent status of order.

Supported Value Set:
0 = New
1 = Partially Filled
2 = Filled
4 = Cancelled
8 = Rejected
103OrdRejReasonNReject code identifier.
Required when ExecType(150) equals 8(Rejected).

Supported Value Set:
2 = BPX MTF closed
3 = Order exceeds limit
6 = Duplicate ClOrdID(11)
13 = Incorrect quantity
16 = Price exceeds current price band
18 = Invalid price increment
99 = Other

Text(58) field will include additional reject reason details.
48SecurityIDYRelated order value.
22SecurityIDSourceYRelated order value.
54SideYRelated order value.
38OrderQtyNRelated order value.
40OrdTypeYRelated order value.
44PriceNRelated order value.
59TimeInForceNRelated order value.
32LastQtyNQuantity bought or sold on this (last) fill.
Required field when ExecType(150) equals F(Trade)
31LastPxNPrice of this (last) fill.
Required field when ExecType(150) equals F(Trade)
151LeavesQtyYRemain open order size.
Will be 0 when OrdStatus(39) equals Filled(2), Cancelled(4) or Rejected(8).
14CumQtyYTotal executed quantity across full chain of orders.
60TransactTimeYThe BPX MTF generated transaction time for the Execution Report.
58TextNPopulated with reject reason if applicable.
Required when ExecType(150) equals 8(Rejected).

Table 13 - Order Cancel Reject Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeY9
37OrderIDYBPX MTF generated previous order identifier for order cancel reject.
Populated as "NONE" when CxlRejReason(102) equals 1(Unknown Order).
41OrigClOrdIDNOrigClOrdID (41) included in the order cancel or modification request being rejected. (i.e ClOrdID(11) which could not be canceled/replaced)
11ClOrdIDYUnique order identifier specified by Customer for order related to order cancel reject.
39OrderStatusYOrder status of order related to order cancel reject.
Populated as value 8(Rejected) when CxlRejReason(102) equals 1(Unknown Order).
434CxlRejResponseToYType of original request this cancel reject is related to.

Supported Value Set:
1 = Order cancel request
2 = Order cancel/replace request
102CxlRejReasonNCancel reject code.

Supported Value Set:
1 = Unknown order
6 = Duplicate ClOrdID(11) received
8 = Price exceeds current price band
18 = Invalid price increment
99 = Other

Text(58) field will include additional reject reason details.
58TextYSupporting error message for Reject reason.

Trading Session Status Updates

Table 14 - Trading Session Status Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeYh
1301MarketIDYMarket identifier.
336TradingSessionIDYTrading session code.

Supported Value Set:
1 = Day
340TradSesStatusYMarket trading status code.

Supported Value Set:
1 = Halt
2 = Open
3 = Closed

Application and Business Rejects

Table 15 - Reject Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeY3
45RefSeqNumYMsgSeqNum(34) of the rejected message being referenced in the Reject message.
371RefTagIDNRequired if initial message format validation passes but a specific field fails validation.
Tag number of the FIX message field being referenced within the Reject message.
372RefMsgTypeNMsgType(35) of the rejected message being referenced in the Reject message.
1130RefApplVerIDNBPX MTF initiated Reject will respond with supported version agreed with BPX Customer for SenderCompID during technical onboarding.

Supported Value Set:
9 = FIX50SP2
373SessionRejectReasonYReject will include one of the supported codes as well as a supporting error message in the Text(58) field.

Supported Value Set:
0 = Invalid tag number.
1 = Required tab missing.
2 = Undefined tag for message type.
3 = Undefined tag.
4 = Tag specified with missing value.
5 = Value is incorrect for linked tag.
For example, out of accepted range.
6 = Incorrect value data format.
11 = Invalid or unsupported MsgType(35)
13 = Duplicate tag.
14 = Tag specified out of order.
17 = Value includes field delimiter (<SOH> character)
18 = Invalid or unsupported application version.
99 = Other

Text(58) field will include reject reason details.
58TextYSupporting error message for Reject reason.

Table 16 - Business Message Reject Message Supported Format

TagField NameRequired (Y/N)Supported Values
35MsgTypeYj
45RefSeqNumYMsgSeqNum(34) of the rejected message being referenced in the Business Message Reject.
371RefTagIDNIf a message is rejected due to an issue with a particular field its tag number will be indicated.
372RefMsgTypeYMsgType(35) of the rejected message being referenced in the Business Message Reject.
1130RefApplVerIDNBPX MTF initiated Business Message Reject will respond with supported version agreed with BPX Customer for SenderCompID during technical onboarding.

Supported Value Set:
9 = FIX50SP2
380BusinessRejectReasonYBusiness Message Reject will include one of the supported codes as well as a supporting error message in the Text(58) field.

Supported Value Set:
0 = Other
2 = Unknown security
3 = Unsupported message type
5 = Conditional required field missing
8 = Throttle limit exceeded
58TextYSupporting error message for Business Message Reject reason.