| FRAMES | NO FRAMES |
|
|
Each administrative or application message is preceded by a standard header. The header identifies the message type, length, destination, sequence number, origination point and time
Two fields help with resending messages. The PossDupFlag (43) is set to Y when resending a message as the result of a session level event (i.e. the retransmission of a message reusing a sequence number). The PossResend (97) is set to Y when reissuing a message with a new sequence number (e.g. resending an order). The receiving application should process these messages as follows:
Note that if OnBehalfOfCompID (115) or DeliverToCompID (128) message source identification/routing is used for a FIX session, then it must be used on all Application messages transmitted via that session accordingly ( Reject (3) message if not).
The following table provides examples regarding the use of SenderCompID (49) , TargetCompID (56) , DeliverToCompID (128) , and OnBehalfOfCompID (115) when using a single point-to-point FIX session between two firms. Assumption (A=sellside, B =buyside):
| SenderCompID (49) | OnBehalfOfCompID (115) | TargetCompID (56) | DeliverToCompID (128) | |
|---|---|---|---|---|
| A to B directly | A | B | ||
| B to A directly | B | A |
The following table provides examples regarding the use of SenderCompID (49) , TargetCompID (56) , DeliverToCompID (128) , and OnBehalfOfCompID (115) when using a single FIX session to represent multiple firms. Assumption (A=sellside, B and C=buyside, Q=third party):
| SenderCompID (49) | OnBehalfOfCompID (115) | TargetCompID (56) | DeliverToCompID (128) | OnBehalfOfSendingTime (370) | ||
|---|---|---|---|---|---|---|
| Send from A to B via Q | ||||||
| 1) | A sends to Q | A | Q | B | ||
| 2) | Q sends to B | Q | A | B | A's SendingTime | |
| B responds to A via Q | ||||||
| 1) | B sends to Q | B | Q | A | ||
| 2) | Q sends to A | Q | B | A | B's SendingTime | |
| Send from A to B *AND* C via Q | ||||||
| 1) | A sends to Q | A | Q | B | ||
| 2) | Q sends to B | Q | A | B | A's SendingTime | |
| 3) | A sends to Q | A | Q | C | ||
| 4) | Q sends to C | Q | A | C | A's SendingTime | |
| B *AND* C send to A via Q | ||||||
| 1) | B sends to Q | B | Q | A | ||
| 2) | Q sends to A | Q | B | A | B's SendingTime | |
| 3) | C sends to Q | C | Q | A | ||
| 4) | Q sends to A | Q | C | A | C's SendingTime | |
Used in all messages
| Tag | Field Name | FIXML | Req'd | Comments | |||
|---|---|---|---|---|---|---|---|
| 8 | BeginString | Y | FIX.4.2 (Always unencrypted, must be first field in message) | ||||
| 9 | BodyLength | Y | (Always unencrypted, must be second field in message) | ||||
| 35 | MsgType | ApplicationMessage | Y | (Always unencrypted, must be third field in message) | |||
| 49 | SenderCompID | CompID | Y | (Always unencrypted) | |||
| 56 | TargetCompID | CompID | Y | (Always unencrypted) | |||
| 115 | OnBehalfOfCompID | CompID | N | Trading partner company ID used when sending messages via a third party (Can be embedded within encrypted data section.) | |||
| 128 | DeliverToCompID | CompID | N | Trading partner company ID used when sending messages via a third party (Can be embedded within encrypted data section.) | |||
| 90 | SecureDataLen | C | Required to identify length of encrypted section of message. (Always unencrypted) | ||||
| 91 | SecureData | C | Required when message body is encrypted. Always immediately follows SecureDataLen (90) field. | ||||
| 34 | MsgSeqNum | Y | (Can be embedded within encrypted data section.) | ||||
| 50 | SenderSubID | SubID | N | (Can be embedded within encrypted data section.) | |||
| 142 | SenderLocationID | LocationID | N | Sender's LocationID (i.e. geographic location and/or desk) (Can be embedded within encrypted data section.) | |||
| 57 | TargetSubID | SubID | N | "ADMIN" reserved for administrative messages not intended for a specific user. (Can be embedded within encrypted data section.) | |||
| 143 | TargetLocationID | LocationID | N | Trading partner LocationID (i.e. geographic location and/or desk) (Can be embedded within encrypted data section.) | |||
| 116 | OnBehalfOfSubID | SubID | N | Trading partner SubID used when delivering messages via a third party. (Can be embedded within encrypted data section.) | |||
| 144 | OnBehalfOfLocationID | LocationID | N | Trading partner LocationID (i.e. geographic location and/or desk) used when delivering messages via a third party. (Can be embedded within encrypted data section.) | |||
| 129 | DeliverToSubID | SubID | N | Trading partner SubID used when delivering messages via a third party. (Can be embedded within encrypted data section.) | |||
| 145 | DeliverToLocationID | LocationID | N | Trading partner LocationID (i.e. geographic location and/or desk) used when delivering messages via a third party. (Can be embedded within encrypted data section.) | |||
| 43 | PossDupFlag | PossDupFlag | N | Always required for retransmitted messages, whether prompted by the sending system or as the result of a resend request. (Can be embedded within encrypted data section.) | |||
| 97 | PossResend | PossResend | N | Required when message may be duplicate of another message sent under a different sequence number. (Can be embedded within encrypted data section.) | |||
| 52 | SendingTime | SendingTime | Y | (Can be embedded within encrypted data section.) | |||
| 122 | OrigSendingTime | N | Required for message resent as a result of a Resend Request (2) . If data is not available set to same value as SendingTime (52) (Can be embedded within encrypted data section.) | ||||
| 212 | XmlDataLen | C | Required when specifying XmlData (213) to identify the length of a XmlData message block. (Can be embedded within encrypted data section.) | ||||
| 213 | XmlData | C | Can contain a XML formatted message block (e.g. FIXML). Always immediately follows XmlDataLen field. (Can be embedded within encrypted data section.) | ||||
| 347 | MessageEncoding | N | Type of message encoding (non-ASCII characters) used in a message's "Encoded" fields. Required if any "Encoding" fields are used. | ||||
| 369 | LastMsgSeqNumProcessed | N | The last MsgSeqNum (34) value received and processed. Can be specified on every message sent. Useful for detecting a backlog with a counterparty. | ||||
| 370 | OnBehalfOfSendingTime | N | Used when a message is sent via a "hub" or "service bureau". If A sends to Q (the hub) who then sends to B via a separate FIX session, then when Q sends to B the value of this field should represent the SendingTime (52) on the message A sent to Q. (always expressed in UTC (Universal Time Coordinated, also known as "GMT") | ||||
|
|
| FRAMES | NO FRAMES |