Login Response Message Fields
A Login Response message is sent in response to a Login Request message. On a successful login, the LoginResponseStatus will be set to A. On a failed login, LoginResponseStatus will be set to a value other than A, and LoginResponseText will be set to an appropriate failure description. The length of the LoginResponse will vary depending on acceptance or rejection of the LoginRequest and the parameter groups included on the LoginResponse. Customers should be prepared to handle variable length LoginResponse messages.
Cboe will verify Return Bitfields at login time. If the Return Bitfields in a Return Bitfields Parameter Group are invalid, LoginResponseStatus will be set to F, and LoginResponseText will include a description of which byte and bit are invalid. This is done to ensure that reserved fields are not used, and only options that apply to the local market are set. See Return Bitfields Per Message for additional information.
Note that two sets of sequence numbers are available on the Login Response message. The set of sequence numbers in the body are the actual Cboe to Member sequence numbers indicating the highest sequence numbers available per matching unit. If specified during login, the Unit Sequences Parameter Group will be returned as an echo of the sequence numbers the Member presented during login as the highest received. If the sequence numbers are different, the gap will be filled by Cboe during the replay. A subset of units can be provided in the Login Request message; however, all units will be provided in the Login Response message.
| 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 |
0x24 |
| MatchingUnit | 5 | 1 | Binary | Always 0 for session level messages. |
| SequenceNumber | 6 | 4 | Binary | Always 0 for session level messages. |
| LoginResponseStatus | 10 | 1 | Alphanumeric |
|
| LoginResponseText | 11 | 60 | Text | Human-readable text with additional information about the reason for rejection. ASCII NUL (0x00) filled on the right, if necessary. |
| NoUnspecified UnitReplay | 71 | 1 | Binary | Echoed back from the original Login Request message. |
| LastReceived SequenceNumber | 72 | 4 | Binary | Last inbound (Member to Cboe) message sequence number processed by Cboe. |
| NumberOfUnits | 76 | 1 | Binary | A number, n, of unit/sequence pairs to follow, one per unit. A pair for every unit will be sent, even if no messages have been sent to this port today. For unsuccessful logins, this will be 0. |
| UnitNumber 1 | 1 | Binary | A unit number. | |
| UnitSequence1 | 4 | Binary | Highest available Cboe to Member sequence number for the unit. | |
| … | ||||
| UnitNumber n | 1 | Binary | A unit number. | |
| UnitSequencen | 4 | Binary | Highest available Cboe to Member sequence number for the unit. | |
| NumberOfParam Groups | 1 | Binary | Echoed back from the original Login Request message. | |
| ParamGroup1 | Echoed back from the original Login Request message. | |||
| … | ||||
| ParamGroupn | Echoed back from the original Login Request message. |
| Field Name | Hexadecimal | Notes |
|---|---|---|
| StartOfMessage |
BA BA | Start of message bytes. |
| MessageLength |
88 00 | 136 bytes |
| MessageType |
24 | Login Response |
| MatchingUnit |
00 | Always 0 for session messages |
| SequenceNumber |
00 00 00 00 | Always 0 for session level messages |
| LoginResponseStatus |
41 |
A = Login Accepted |
| LoginResponseText |
41 63 63 65 70 74 65 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
Accepted |
| NoUnspecified |
01 | True (replay only specified units) |
| UnitReplay | ||
| Last Received |
54 4A 02 00 | Last sequence Cboe received of 150,100 |
| Sequence Number | ||
| NumberOfUnits |
04 | Four unit/sequence pairs to follow; |
| UnitNumber 1 |
01 | Unit 1 |
| UnitSequence 1 |
4A BB 01 00 | Actual last sequence of 113,482 |
| UnitNumber 2 |
02 | Unit 2 |
| UnitSequence 2 |
00 00 00 00 | Actual last sequence of 0 |
| UnitNumber 3 |
02 | Unit 3 |
| UnitSequence3 |
00 00 00 00 | Actual last sequence of 0 |
| UnitNumber 4 |
02 | Unit 4 |
| UnitSequence 4 |
79 A1 00 00 | Actual last sequence of 41,337 |
| NumberOfParamGroups |
03 | 3 parameter groups |
| ParamGroupLength |
14 00 | 20 bytes for this parameter group |
| ParamGroupType |
80 |
0x80 = Unit Sequences |
| NoUnspecified |
01 | True (replay unspecified units) |
| UnitReplay | ||
| NumberOfUnits |
03 | Three unit/sequence pairs to follow; |
| UnitNumber 1 |
01 | Unit 1 |
| UnitSequence 1 |
4A BB 01 00 | Last received sequence of 113,482 |
| UnitNumber 2 |
02 | Unit 2 |
| UnitSequence 2 |
00 00 00 00 | Last received sequence of 0 |
| UnitNumber 3 |
04 | Unit 4 |
| UnitSequence 3 |
79 A1 00 00 | Last received sequence of 41,337 |
| ParamGroupLength |
08 00 | 8 bytes for this parameter group |
| ParamGroupType |
81 | 0x81 = Return Bitfields |
| MessageType |
25 |
0x25
=
Order Acknowledgment |
| NumberOfReturnBitfields |
03 | 3 bitfields to follow |
| ReturnBitfield 1 |
00 | No bitfields from byte 1 |
| ReturnBitfield 2 |
41 | Symbol, Capacity |
| ReturnBitfield 3 |
05 | Account, ClearingAccount |
| ParamGroupLength |
0C 00 | 12 bytes for this parameter group |
| ParamGroupType |
81 |
0x81 = Return Bitfields |
| MessageType |
2C |
0x2C
=
Order Execution |
| NumberOfReturn Bitfields |
07 | 7 bitfields to follow |
| ReturnBitfield1 |
00 | No bitfields from byte 1 |
| ReturnBitfield 2 |
41 | Symbol, Capacity |
| ReturnBitfield 3 |
07 | Account, ClearingFirm, ClearingAccount |
| ReturnBitfield 4 |
00 | No bitfields from byte 4 |
| ReturnBitfield 5 |
40 | BaseLiquidityIndicator |
| ReturnBitfield 6 |
00 | No bitfields from byte 6 |
| ReturnBitfield 7 |
01 | SubLiquidityIndicator |





