Login Request Message Fields
A Login Request message must be sent as the first message upon connection.
A number of repeating parameter groups, some of which may be required, are sent at the end of the message. Ordering of parameter groups is not important. New parameter groups may be added in the future with no notice.
| Field | Offset | Length | Data Type | Description |
|---|---|---|---|---|
| StartOfMessage | 0 | 2 | Binary | Must be 0xBA 0xBA. |
| MessageLength | 2 | 2 | Binary | Number of bytes for the message, including this field but not including the two bytes for the StartOfMessage field. |
| MessageType | 4 | 1 | Binary | 0x37 |
| MatchingUnit | 5 | 1 | Binary | Always 0 for inbound (Member to Cboe) messages. |
| SequenceNumber | 6 | 4 | Binary | Always 0 for session level messages. |
| SessionSubID | 10 | 4 | Alphanumeric | Session Sub ID supplied by Cboe. |
| Username | 14 | 4 | Alphanumeric | Username supplied by Cboe. |
| Password | 18 | 10 | Alphanumeric | Password supplied by Cboe. |
| NumberOfParam Groups | 28 | 1 | Binary | A number, n (possibly 0), of parameter groups to follow. |
| ParamGroup1 | First parameter group. | |||
| … | ||||
| ParamGroupn | Last parameter group. |
Unit Sequences Parameter Group
This parameter group includes the last consumed sequence number per matching unit received by the Member. Cboe uses these sequence numbers to determine what outbound (Cboe to Member) traffic, if any, was missed by the Member. If this parameter group is not sent, it's assumed the Member has not received any messages (e.g., start of day).
The Member does not need to include a sequence number for a unit if they have never received messages from it. For example, if the Member has received responses from units 1, 3, and 4, the Login Request message need not include unit 2. If the Member wishes to send a value for unit 2 anyway, 0 would be the only allowed value.
Only one instance of this parameter group may be included.
| Field | Offset | Length | Data Type | Description |
|---|---|---|---|---|
| ParamGroupLength | 0 | 2 | Binary | Number of bytes for the parameter group, including this field. |
| ParamGroupType | 2 | 1 | Binary | 0x80 |
| NoUnspecified UnitReplay | 3 | 1 | Binary |
|
| NumberOfUnits | 4 | 1 | Binary | A number, n (possibly 0), of unit/sequence pairs to follow, one per unit from which the Member has received messages. |
| UnitNumber 1 | 1 | Binary | A unit number. | |
| UnitSequence1 | 4 | Binary | Last received sequence number for the unit. | |
| … | ||||
| UnitNumber n | 1 | Binary | A unit number. | |
| UnitSequencen | 4 | Binary | Last received sequence number for the unit. |
Return Bitfields Parameter Group
This parameter group, which may be repeated, indicates which attributes of a message will be returned by Cboe for the remainder of the session. This allows Members to tailor the echoed results to the needs of their system without paying for bandwidth or processing they do not need.
Listing of the return bitfields which are permitted per message is contained in Return Bitfields Per Message.
| Field | Offset | Length | Data Type | Description |
|---|---|---|---|---|
| ParamGroupLength | 0 | 2 | Binary | Number of bytes for the parameter group, including this field. |
| ParamGroupType | 2 | 1 | Binary | 0x81 |
| MessageType | 3 | 1 | Binary | Return message type for which the bitfields are being specified (e.g., 0x25 for an Order Acknowledgment message). |
| NumberOfReturn Bitfields | 4 | 1 | Binary | Number of bitfields to follow. |
| ReturnBitfield1 | 5 | 1 | Binary | Bitfield identifying fields to return. |
| … | ||||
| ReturnBitfieldn | 1 | Binary | Last bit field. |
Note this example is for illustrative purposes only. Actual login messages will contain specification of return bitfields for a larger set messages and each return bitfield specification will be complete, whereas the example below is only an illustration for purposes of demonstrating the construction of the Login Request message.
| Field Name | Hexadecimal | Notes |
|---|---|---|
| StartOfMessage | BA BA | Start of message bytes. |
| MessageLength | 3D 00 | 61 bytes |
| MessageType | 37 | Login Request |
| MatchingUnit | 00 | Always 0 for inbound messages |
| SequenceNumber | 00 00 00 00 | Always 0 for session level messages |
| SessionSubID | 30 30 30 31 | 0001 |
| Username | 54 45 53 54 | TEST |
| Password | 54 45 53 54 49 4E 47 00 00 00 | TESTING |
| NumberOfParam Groups | 03 | 3 parameter groups |
| ParamGroupLength | 0F 00 | 15 bytes for this parameter group |
| ParamGroupType | 80 | 0x80 = Unit Sequences |
| NoUnspecified UnitReplay | 01 | True (replay only specified units) |
| NumberOfUnits | 02 | Two unit/sequence pairs to follow; |
| UnitNumber1 | 01 | Unit 1 |
| UnitSequence1 | 4A BB 01 00 | Last received sequence of 113,482 |
| UnitNumber 2 | 02 | Unit 2 |
| UnitSequence2 | 00 00 00 00 | Last received sequence of 0 |
| ParamGroupLength | 08 00 | 8 bytes for this parameter group |
| ParamGroupType | 81 | 0x81= Return Bitfields |
| MessageType | 25 | 0x25=Order Acknowledgment |
| NumberOfReturn Bitfields | 03 | 3 bitfields to follow |
| ReturnBitfield1 | 00 | No bitfields from byte 1 |
| ReturnBitfield2 | 41 | Symbol, Capacity |
| ReturnBitfield3 | 05 | Account, ClearingAccount |
| ParamGroupLength | 0B 00 | 11 bytes for this parameter group |
| ParamGroupType | 81 | 0x81 = Return Bitfields |
| MessageType | 2C | 0x2C=Order Execution |
| NumberOfReturn Bitfields | 06 | 6 bitfields to follow |
| ReturnBitfield1 | 00 | No bitfields from byte 1 |
| ReturnBitfield2 | 41 | Symbol, Capacity |
| ReturnBitfield3 | 07 | Account, ClearingFirm, ClearingAccount |
| ReturnBitfield4 | 00 | No bitfields from byte 4 |
| ReturnBitfield5 | 40 | BaseLiquidityIndicator |
| ReturnBitfield6 | 00 | No bitfields from byte 6 |





