Overview and limitations
The API login endpoint is the simplest method of integration for most applications in terms of development time expected to be required, but comes at the cost of being less flexible to edge cases than the embedded Betfair embedded login page. It will allow a user to provide a username and password or a username and (password + 2 factor auth code) if they have strong authentication enabled.
- Customers who writing bots are for their own use are strongly recommended to use the non-interactive endpoint with an SSL certificate.
- We recommend that 3rd party applications which will be exposed to a wide range of users use the Interactive login method of embedding the Betfair embedded login page as this will allow your application to handle additional workflows, such as terms and conditions updates as well as additional jurisdictional specific identifiers.
The presence of the "Accept: application/json" will signal SSO that it should respond with JSON and not with a HTML page.
The username to be used for the login
The password to be used for the login. For strong auth customers, this should be their password with a 2 factor auth code appended to the password string.
Signals that the response should be returned as JSON
AppKey used by the customer to identify the product.
Error values (mappings for statuses to possible error values LIMITED_ACCESS / LOGIN_RESTRICTED / FAIL)
Business error codes:
LIMITED_ACCESS - Access is limited (eg. accounts that can login but can't bet), product session will be provided:
LOGIN_RESTRICTED - Login is restricted (in case of indirection point this is what will be returned), product session will not be provided:
FAIL - All other cases are treeted as errors, product session will not be provided:
Curl call sample
Example of a successful login:
The possible failure and exceptional return codes are:
|TRADING_MASTER_SUSPENDED||Suspended Trading Master Account|
|TRADING_MASTER||Trading Master Account|
|TELBET_TERMS_CONDITIONS_NA||Telbet terms and conditions rejected|
|SUSPENDED||the account is suspended|
|SPANISH_TERMS_ACCEPTANCE_REQUIRED||The latest spanish terms and conditions version must be accepted|
|SPAIN_MIGRATION_REQUIRED||Spain migration required|
|SELF_EXCLUDED||the account has been self excluded|
|SECURITY_RESTRICTED_LOCATION||the account is restricted due to security concerns|
|SECURITY_QUESTION_WRONG_3X||the user has entered wrong the security question 3 times|
|PERSONAL_MESSAGE_REQUIRED||personal message required for the user|
|NOT_AUTHORIZED_BY_REGULATOR_IT||the user identified by the given credentials is not authorized in the IT's jurisdictions due to the regulators' policies. Ex: the user for which this session should be created is not allowed to act(play, bet) in the IT's jurisdiction.|
|NOT_AUTHORIZED_BY_REGULATOR_DK||the user identified by the given credentials is not authorized in the DK's jurisdictions due to the regulators' policies. Ex: the user for which this session should be created is not allowed to act(play, bet) in the DK's jurisdiction.|
|ITALIAN_CONTRACT_ACCEPTANCE_REQUIRED||The latest Italian contract version must be accepted|
|INVALID_USERNAME_OR_PASSWORD||the username or password are invalid|
|INVALID_CONNECTIVITY_TO_REGULATOR_IT||the IT regulator cannot be accessed due to some internal problems in the system behind or in at regulator; timeout cases included.|
|INVALID_CONNECTIVITY_TO_REGULATOR_DK||the DK regulator cannot be accessed due to some internal problems in the system behind or in at regulator; timeout cases included.|
|DENMARK_MIGRATION_REQUIRED||Denmark migration required|
|DANISH_AUTHORIZATION_REQUIRED||Danish authorization required|
|CLOSED||the account is closed|
|CHANGE_PASSWORD_REQUIRED||change password required|
|CERT_AUTH_REQUIRED||Certificate required or certificate present but could not authenticate with it|
|BETTING_RESTRICTED_LOCATION||the account is accessed from a location where betting is restricted|
|AGENT_CLIENT_MASTER_SUSPENDED||Suspended Agent Client Master|
|AGENT_CLIENT_MASTER||Agent Client Master|
|ACCOUNT_NOW_LOCKED||the account was just locked|
|ACCOUNT_ALREADY_LOCKED||the account is already locked|