LoginRequest
Note
For a more in depth documentation, you should check the comments from the protobuf file.
Purpose
Used to authenticate the client.
Warning
The client should wait for the login response, before sending any other request. If the client sends a request before receiving the response for the login request, the server will close the connection.
Mandatory fields
The mandatory fields for the login request are:
user_name
- Client username.
password
- Client password.
version
- The version of password that should be sent, will be given to the QST customer along with the user name and password.
client_id
- QST customers will receive this ID when they sign up for service, along with the login credentials.
UserPreferences fields
These fields are used to set specific options per user connection.
coalescing_interval
- If it is set to UNCOALESCED, the server will not coalesce the quotes. If it’s different than UNCOALESCED (_100_MS or _250_MS), the server will coalesce the quotes at that specific interval. If this is not present, the server will coalesce the quotes at a default interval (_250_MS).
coalesce_last_trade
- If the server is coalescing the quotes, the client can opt in to coalesce the last trades. If this is set to true, the client will receive only the last trade received in that interval.
Note
If the coalescing_interval
is missing, the default coalescing interval is 250ms, or any other value that the user has rights in its subscription package. If the client has rights to a smaller interval(or uncoalesced), the client can ask for a bigger interval. But if the client asks for a smaller interval or uncoalesced, and the client has rights for a bigger interval, we will use the interval from its subscription package.
Note
If user_preferences
is missing, the server will coalesce the quotes at the default interval (_250_MS) and the last trades will not be coalesced.
Request example
const payload = {
request_id: 1,
login: {
user_name: "user_name",
password: {
version: 1,
value: "password"
},
user_preferences: {
coalescing_interval: 2, /* _250_MS */
coalesce_last_trade: false
},
white_label_code: "CVS",
local_ip: "192.168.220.34",
client_id: "client_id"
}
}
Responses
Login succeeded
If the provided login credentials are valid, the server will respond with a LoginResponse
.
User didn’t agree to our terms
If the client has pending agreements, the server will respond with a ProvisioningMessages
response. If the client doesn’t know how to accept the terms, the client shoud contact our support team.
Missing mandatory fields
If the client didn’t provide the mandatory fields the server will respond with an ErrorMessage
that can contain one of the following error meessages:
Populate all mandatory fields: username and password are mandatory.
- If the user_name or/and password fields were not populated.
Unauthorized client_id.
- If theclient_id
field was not populated.
Login failed
If the login failed, the server will respond with an ErrorMessage
that can contain one of the following error meessages:
Login failed. The credentials were not valid (1)
Login failed. TOTP Code Missing (2)
Login failed. E-Mail validation pending (3)
Login failed. 2FA key validation pending (4)
Login failed. Reached limit of failed logins, please contact support (5)
Login failed. Server error (6)
Note
When contacting our support team regarding a login issue, please provide the response that you’ve received from our server.
Error codes
For external users:
1 - Invalid username or password.
2 - Second factor missing, when 2fa authentication is enabled.
5 - Too many failed login attempts.
1000 - Login failed for any other reason
For internal users, you should check the internal error codes.