This guide provides all the essential information about Solaris' BankIdentPlus product, including key concepts, integration details, and available testing options.
BankIdent Plus is a secure and easy way for customers to verify their identity when opening a new account. It combines a digital signature, known as a Qualified Electronic Signature (QES), with a bank transfer to confirm the customer's identity.
The process includes taking a selfie, uploading an image of an ID card, approving a digital signature (QES), and making an initial top-up to the newly opened account.
The process is divided into three steps:
1. Identity Check The customer takes a selfie, scans their ID card, and provides a digital signature (QES). This confirms their identity.
2. Account Opening Solaris automatically checks the customer’s details and performs the Customer Due Diligence (CDD) process. When no associated risk is identified (Green status), an account is opened for the customer.
3. First Top-Up Show the IBAN to the customer, who then makes a small deposit to the new account. This transfer verifies ownership of the external bank account used for the top-up.
The following flowchart illustrates the complete lifecycle of a BankIdent Plus onboarding, from registration to final account activation.
Integrate Solaris' Bankident plus by completing the following steps:
- Collect the mandatory customer data and consent to the legal and regulatory requirements in your sign-up flow, and create a person resource for your customer.
- Create and verify the customer's mobile number.
- The customer consents to the terms and conditions and agrees to open an account.
- Inform the customer that they will be redirected to IDnow to complete the pre-identification process.
- During the IDnow process, the customer will be asked to:
- Confirm their full name
- Agree to IDnow’s terms and conditions
- Scan their ID card (front, back, and security features)
- Take a short video selfie
- Electronically sign their information
After the customer completes the previous steps, they must wait while Solaris completes the following:
Compliance Checks:
Solaris performs internal compliance checks. See more information on the Customer Due Diligence (CDD) process here. To proceed with account opening, the CDD status must be Green status listed here. Any other status results in the termination of the identification process. The account opens ONLY after CDD is successfully completed.Account Opening:
If all compliance checks pass, Solaris triggers the account opening process automatically. Before moving to the next steps, your system must wait for theIDENTIFICATIONwebhook with statuspending_ref_transferto receive updates on the progress.Unlike the standard account opening process where the partner calls the API endpoint after a successful CDD, BankIdent Plus automates this step. Solaris triggers the account opening internally.
You do not need to call the standard account opening request.
IBAN Display and Account Restrictions
Once the account opens successfully with statusdebit_block, show the new IBAN to the customer in your interface. At this stage:- The account only accepts the expected reference transfer.
- It is blocked from any outgoing transaction (debit block).
- Any funds sent that don’t match the reference transfer requirements return immediately.
- The customer must transfer funds to their new account using the displayed IBAN.
- This transfer must be a SEPA transfer (Regular or Instant SCT) from an existing bank account in the customer's own name.
- If the transfer fails:
- For example, if the money is sent from an account the customer does not own, the transfer is rejected.
- Your frontend can optionally:
- Show that the attempt failed.
- Inform the customer how many attempts remain.
- Important Rules:
- The customer has a maximum of 3 attempts within 30 days to complete the reference transfer.
- If all attempts fail or no valid transfer is received within 30 days, the identification process terminates.
- Solaris automatically triggers an Ordinary Account closure request towards the IBAN.
- Any future incoming transactions are rejected.
- Data retention takes place as per the agreed Customer Data Retention Policies.
If BankIdentPlus identification fails, the customer can be allowed to try again using a different identification method.
- If the account has already been opened, they have 60 days from the failure date to retry.
- After 60 days, the entire onboarding process must start over. This includes:
- Creating a new user profile
- Verifying the mobile number again
- Setting up a new device connection
- Any of the alternative identification methods provided by the partner can be offered to the customer, incase Bankident Plus fails.
If there is a need to cancel a BankIdentPlus identification after the account has been opened, you can choose to fail the identification in order to accelerate the account closure process. Use the Mark an identification as failed endpoint to terminate the identification process.
Before integrating this feature, you must implement the following requirements in your solution:
1. Product Setup
Identification and Account opening configurations need to be assigned to you by your partner manager.
2. Technical setup
Set up your environment and get your authentication keys. For step-by-step instructions, check the Technical setup guide.
3. Legal and compliance screens
Build the necessary legal and compliance screens in your sign-up flow to collect your customers' consent to the necessary legal and compliance requirements. The Legal and compliance screens guide contains step-by-step instructions on how to create these screens and what they must contain.
Record the customer's consent on each screen as a UTC timestamp (e.g., 2019-01-01T00:00:00Z). Afterward, you must pass each timestamp in its respective field to Solaris.
- Collect the customer's consent to Solaris' Terms and Conditions and store the timestamp in the terms_conditions_signed_at field.
- Collect the customer's consent to data processing and store the timestamp in the data_terms_signed_at field.
4. Devices
Before an identification can be created you have to:
- Create a mobile number for the user
- Create a device binding for the customer. More information on how to do that can be found in the Device Binding guide.
You must subscribe to the following webhook events to ensure that your system receives notifications for crucial events in the identification process. Webhooks help you monitor various status changes during the identification process.
The following diagram illustrates the complete lifecycle of the identification status and the transitions you will receive via the IDENTIFICATION webhook:
| Status | Description |
|---|---|
aborted / canceled | Non-Terminal. The identification session was interrupted. The user can retry using the same link. The status remains here until a new outcome overwrites it. |
pre_successful | The Pre-Identification has been finished successfully. Solaris will now proceed with compliance checks (CDD). |
pending_account_creation | Compliance screening (CDD) has finished successfully. Solaris will now proceed with the account opening flow. |
pending_ref_transfer | Critical Signal. It confirms the account is open and the IBAN is ready. You must trigger your UI to display the IBAN to the customer at this stage. |
successful | The final terminal state. The reference transfer has been received, and the account debit block is removed. |
failed | This terminal state can occur at two stages: either due to a failed compliance check (Phase 2) or after 3 failed reference transfer attempts (Phase 3). |
- IDENTIFICATION
- PERSON_CHANGED
- PERSON_DELETED
- PERSON_MOBILE_NUMBER_CREATED
- PERSON_MOBILE_NUMBER_DELETED
- IDENTIFICATION_REFERENCE_TRANSFER_ATTEMPT
Updates from the IDENTIFICATION_REFERENCE_TRANSFER_ATTEMPT webhook will notify the partner about the remaining number of reference transfer attempts left.
In addition to the Solaris technical prerequisites, you must also integrate IDnow into your solution. You can achieve this by using IDnow's mobile SDKs (available for iOS and Android) .
For instructions on how to set up IDnow in your solution, see the following IDnow documentation links:
To create a smoother process, it is possible to integrate another SDK which includes ID card reading via the NFC chip. To verify the ID card the customer simply has to tab their ID instead of relying on the capture of hologram images. If you would like to enable this, please reach out to your account manager.
Creating a person
This endpoint creates a person resource for your customer. You must collect the mandatory data points from your customer in the sign-up flow and pass them to Solaris in the request body of this endpoint.
Request URL
POST /v1/personsResponse
The API returns a person object with a unique ID for the person (i.e., the person_id). You will need this id to append the person resource with additional information in the remaining steps of this guide.
Click here to view the full API reference
Device Binding
Before the BankPlus Identification can be created, the device binding flow needs to be followed. See Device Binding for reference.
Pre-Identification
This endpoint creates an identification resource for the person specified in the request URL. You must add the following properties in the request body:
- method : The identification method, use bank_plus .
- language : language for the idnow flow
Attributes needed for account opening:
- product_name
- account_type
- account_bic
- account_currency
- Optional: account_purpose
For more information see account opening guide
It is only possible to use account types that you have an existing configuration for. If you are unsure what configurations are present or need additional account types enabled, please reach out to your partner manager.
Click here to view full API reference.
Request identification
This endpoint requests Solaris to begin the process for the person identification specified in the URL. The identification status will change to pending after calling this endpoint.
Click here to view the full API reference.
You must redirect your customer to the URL returned in the previous call to start the AutoIdent + QES or initiate via IDnow SDK.
You can track the various status of this process by subscribing to the IDENTIFICATION webhook.
To retrieve the complete details of the identification, please use the GET Retrieve a person Identification API endpoint
Account Opening
Once an account has been created the IBAN can be accessed when required by requesting the identification account resource.
Click here to view the full API reference
These details are also available by subscribing to the IDENTIFICATION webhook.
If the BankIdent Plus identification process fails (for example, due to a failed reference transfer), you can recover the customer journey using a fallback identification method.
If the customer successfully completes a supported fallback identification within 60 days of the failure, you can reactivate their existing account instead of restarting the account creation process.
- IDnow VideoIdent
- PostIdent
- Manual Identification
To reactivate an account, the following conditions must be met:
- Timeline: The reactivation request must occur within 60 days of the BankIdent Plus failure.
- Compliance: The person’s Customer Due Diligence (CDD) status must be
green. - Identity: A successful fallback identification resource must exist for the person.
Call this endpoint to reactivate the account associated with the failed BankIdent Plus process. This returns the account details (IBAN, BIC) required for the customer to start using their account.
PATCH /v1/persons/{person_id}/identification_account/reactivate{
"iban": "DE05011010100000000043",
"account_currency": "EUR",
"account_bic": "SOBKDEB2XXX",
"product_name": "CURRENT_ACCOUNT_CONSUMER_GERMANY",
"account_type": "CHECKING_PERSONAL",
"account_purpose": "primary",
"account_id": "5526853938474f3e92b22a03ea57a544cacc"
}412 Precondition Failed: The account cannot be reactivated. This occurs if the 60-day limit has passed or no successful fallback identification exists.
Click here to view the full API reference
Additional API references
You can mark an identification as failed if a user does not wish to proceed with the reference transfer. Failing the identification manually initiates the ordinary account closure faster.
Click here to view the full API reference
We support simulating different outcomes of the separate identification steps to support your automated or manual testing. In order to enable testing that does not require wait times or specific data requirements, we support simulating all major asynchronous events in the flow. The endpoint is as follows:
PATCH /v1/persons/{person_id}/identifications/{id}/simulate_outcome{
"scenario": "SUCCESSFUL_PRE_IDENT"
}{
204 No content
}Click here to view the full API reference.
Please keep in mind that not every simulation event will immediately update the identification status. Some updates will take up to a few seconds.
| Event | Description | Outcome |
|---|---|---|
SUCCESSFUL_PRE_IDENT | Simulates the user successfully finishing the Pre-Identification with the external provider (Eg: Idnow). Results in identification status pre_successful and will trigger Customer Due Diligence next. | pre_successful |
CANCELED_PRE_IDENT | Simulates the Pre-Identification being cancelled by the external provider before it can be finished. Results in identification status canceled. Since this status is not terminal, SUCCESSFUL_PRE_IDENT or FAILED_PRE_IDENT can be simulated next. | cancelled |
ABORTED_PRE_IDENT | Simulates the Pre-Identification being aborted by the user before it was finished. Results in identification status aborted. Since this status is not terminal, SUCCESSFUL_PRE_IDENT or FAILED_PRE_IDENT can be simulated next. | aborted |
FAILED_PRE_IDENT | Simulates a failure of the the Pre-Identification reported by the external provider (e.g. fraud suspicion). Results in identification status failed . | failed |
SUCCESSFUL_ACCOUNT_OPENING | Simulates the successful opening of an account (skipping the need for CDD results). Results in identification status pending_ref_transfer and will make the new IBAN available in the GET identification_account endpoint. | pending_account_opening (will become pending_ref_transfer after a wait time) |
FAILED_ACCOUNT_OPENING | Simulates a failure when opening an account (dummy reason will be set). Results in identification status failed. | failed |
SUCCESSFUL_REFERENCE_TRANSFER | Simulates the customer successfully transferring funds into the account. Results in identification status successful. | pending_ref_transfer (will become successful after a wait time i.e, final terminal status) |
FAILED_REFERENCE_TRANSFER_NAME_CHECK | Simulates a failed attempt by the customer to successfully transfer funds into the account. Result depends on the count of attempts. After 3 failed attempts the identification will be failed. | pending_ref_transfer (if simulated for the 3rd time: failed) |