Users and Accounts Overview
This guide provides an overview of users and accounts, two primary resources on the Solaris platform. It covers how to create and manage these resources, as well as their most common statuses and workflows.
Users and accounts at a glance
- A user is anyone who holds an account or payment card on the Solaris platform. Users are created and managed via the Consumer API .
- An account is an e-money (EMI) account that allows a user to accept and make payments in the UK and EEA without the need for a bank account. EMI accounts come with addressable account numbers, sort codes, BICs, IBANs and Bank IDs. Accounts are managed via the Account API .
- All accounts are created with an associated agreement code which specifies the terms and conditions of the account including fees, charges and limits etc.
User and account lifecycle
Creating users and accounts
Postcode validation
When creating a user or updating their contact information, validation will be run on the Postcode of their current address, as detailed in the User address data section.
Users (referred to as "Consumers") are created via the Consumer/AddConsumers method, which will create both the consumer and the respective account simultaneously.
When creating a consumer, the IsSkipKYC
parameter determines which KYC journey should be used:
-
If KYC is to be conducted by Solaris EMI, the partner must pass this parameter as
false
. This will initiate the relevant KYC checks synchronously, and there will be a delay before a response from the API as these are run. -
If KYC is being undertaken by the partner on behalf of Solaris EMI, then this must be passed as
true
.
Closing accounts
Accounts can be closed either via the API or by directly requesting the account closure from Solaris.
Closing accounts via the API
To successfully action a closure via the API, the account must have:
- An account balance and available balance of zero.
- No pending settlement transactions.
- No currently active sub accounts.
Provided these conditions are met, the Consumer/SetConsumerAsLockout method can be used to close the account. When successfully called:
- The consumer's status will be set to Locked Out .
- The associated account status will be set to Closed .
- Any cards associated with the account will be set to Issuer Cancelled .
Closing Accounts
Setting a consumer's status to Locked Out cannot be reverted via the API.
Notes on closing accounts via the API:
- If you are providing customer services directly to your end users and intend to use the API for account closures, you must provide your account closure process and procedures in your Customer Service Policies, which will need to be reviewed and approved by Solaris Partner Services.
- If you intend to close a Card Program, do not use the API to close individual accounts. Card Program closure activities must be handled by Solaris.
User statuses
Outbound transfers
Unless a user's status is Active, outbound transfers are not permitted from their account.
Status | Code | Description | Settable via API |
---|---|---|---|
Active | 01 | Live, active user with all relevant functionality permitted. | Yes |
Inactive | 02 | Prior to set up being completed. The user's account has not yet been activated. | No |
Checked | 04 | Additional information is required for setup to be completed. No transfers or transactions allowed. | No |
Declined | 07 | Account has been declined by Solaris, for example due to failure to pass the relevant KYC checks. | No |
Limited | 09 | Prior to setup being completed. Additional information may be required or a sign up fee not paid, for example. The user can receive payments into their account while in this status. | No |
Locked Out | 12 | User is locked out and will not be able to login to or access any functionality of the Solaris API. | Yes |
Suspended | 13 | The user has been suspended - all user activity is blocked. | Yes |
User related webhook notifications
- The User status change notification provides a notification when the status of a user changes.
- The User contact update notification can notify you when a user's contact information - mobile number, address or email address has been updated by Solaris.
- The User login block/unblock notification can inform you when a user has been blocked or unblocked from accessing the Solaris platform.
Accounts
Account statuses
info
It is not possible to set account statuses via the API.
Status | Code | Description |
---|---|---|
Live (Active) | 01 | The account is active with all functionality permitted. |
Suspended | 02 | Account is temporarily suspended for either investigation or as a status prior to closure. |
Inactive | 03 | The account is in the process of being set up. |
Closed | 04 | The account is closed. Once set to this status, the account cannot be reopened and the user will not be able to gain access to it. |
Frozen | 05 | The account is under investigation for fraudulent activity. No fund movements into or out of the account are permitted. |
Dormant | 06 | The account has not been used for a pre-determined time - typically 90 days without any transactions (excluding fees), and has been set as dormant to protect any funds in the account. |
Limited | 07 | The account setup is not yet fully complete. For example, fraud (or KYC if in scope) checks are currently being performed. No transfers or transactions permitted. |
Account related webhook notifications
- The Account Balance change notification provides a notification when the balance of an account changes.
- The Account status change notification provides details of a change in account status.
- The Authorization notification and Transaction notification provide notifications on authorizations and transactions respectively, and can be used, for example, to build a record of pending transactions for a given account.
User address data
Partners are responsible for the collection of accurate and consistently formatted address data. In order to facilitate this, Solaris' recommendation is to use a specialized third party address retrieval/validation service. This is especially pertinent for partners intending to offer physical cards, in order to mitigate against failed card delivery.
Postcode validation
Postcode validation will always be be run when calling either of the following methods:
- Consumer/AddConsumers - to create a consumer
- Consumer/UpdateConsumerContactDetails - to update a consumer's contact information
This validation logic will be run against the PresentAddress
object's Postcode
parameter. The validation pattern will be based on the ISO 3166-1 numeric country code value specified in the respective ISOCountryCode
parameter (shown below). An incorrectly matched post code will result in an error response with error code 3486
.
Country (ISO 3166-1 numeric code) | Validation pattern used |
---|---|
United Kingdom (826) | (GIR 0AA)\|(^[A-z]{1,2}\d{1,2}([A-z]{0,1})[\x20]{0,1}([A-z]{0,1}){0,1}\d{1,2}([A-z]{1,2})) |
Austria (040) Belgium (056) Bulgaria (100) Hungary (348) Liechtenstein (438) Norway (578) Slovenia (705) |
^[0-9]{4}$ |
Croatia (191) Estonia (233) Finland (246) France (250) Germany (276) Greece (300) Italy (380) Slovakia (703) Spain (724) Sweden (752) |
^[0-9]{5}$ |
Cyprus (196) | ^[0-9]{4,5}$ |
Denmark (208) | ^(?=.{4,7}$)(?!-)(DK)?(-)?([0-9]{4})+$ |
Gibraltar (292) | (^(GIR0AA)$)|(^(?=.{5,7}$)[A-z]{1,2}\d{1,2}([A-z]{0,1})[\x20]{0,1}([A-z]{0,1}){0,1}\d{1,2}([A-z]{1,2})$) |
Iceland (352) | ^[0-9]{3}$ |
Ireland (372) | ^[0-9\s*,A-Z\s*]{3,7}$ |
Latvia (428) | ^(?=.{4,7}$)(?!-)(LV)?(-)?([0-9]{4})+$ |
Lithuania (440) | ^(?=.{5,8}$)(?!-)(LT)?(-)?([0-9]{5})+$ |
Luxembourg (442) | ^(?=.{4,6}$)(?!-)(L)?(-)?([0-9]{4})+$ |
Malta (470) | ^[A-Z]{3}[0-9]{4}$ |
Netherlands (528) | ^[0-9]{4}[A-Z]{2}$ |
Poland (616) | ^[0-9]{2}(-)?[0-9]{3}$ |
Portugal (620) | ^[0-9]{4}(-)?[0-9]{3}$ |
Romania (642) | ^[0-9]{6}$ |
Russian Federation (643) | ^[1-6][0-9]{5}$ |