Account opening

Introduction

attention

This guide describes the new asynchronous approach to opening a bank account with Solaris. It will replace the old synchronous process using the account creation endpoints, which will be deprecated soon.

Opening a bank account with Solaris is usually the last step of your customers' onboarding journey. After collecting the required data and documents and identifying your customer, you have to open a bank account suitable for the Solaris product you're integrating.

The account creation process with Solaris involves creating an account opening request (AOR), which must include information about the following:

  • The customer for whom you're opening an account.
  • The Solaris product for which you want to open an account.
  • The account type, which is mapped to the product.
  • The account BIC, which is mapped to the branch in which you want to open an account.
  • The account currency.

Once you create an AOR, Solaris will run different internal checks and validations to ensure that the customer has fulfilled all the onboarding requirements corresponding with the product, branch, and customer type.

Solaris will only open an account for the customer if all validations are successful. You'll be notified of the status of the AOR (success or rejection) on a dedicated webhook event.

This guide describes how you can implement the account opening request process in your solution.

Affected products

This process is relevant for the following products:


Prerequisites

To avoid rejections, you must ensure the customer fulfills the prerequisites related to the product you're integrating before creating an account opening request. Some of these prerequisites include, but are not limited to, the following:

  • All the mandatory data points are populated in the customer's person and/or business resource.
  • The customer has been successfully identified.
  • The customer passed the Customer Due Diligence (CDD) checks successfully.

Check the onboarding guide of the product you're integrating for the complete list of prerequisites.


Process flow

Creating an account opening request involves calling a couple of endpoints and subscribing to a dedicated webhook event. The process looks as follows:

  1. Create an account opening request for the customer by calling POST Create an account opening request and include all required fields in the request body.
  2. Solaris will run different validations depending on the customer type, product, and branch to ensure the customer has fulfilled all the onboarding requirements.
  3. Subscribe to the webhook event ACCOUNT_OPENING_REQUEST to get notified about the result of the AOR.
  4. Solaris will send a notification on the webhook event ACCOUNT_OPENING_REQUEST in case of success or failure.
  5. Depending on the result of the AOR, you can either:

    • Success: Continue with the customer onboarding.
    • Failure: Check the rejection reason and create a new AOR or abort the customer onboarding.

Diagram: Account opening request process flow

Validations

Solaris runs several internal validations before opening an account for the customer. These validations are specific to your banking use case. These validations check the following criteria:

  • Customer type: The type of customers you're onboarding (B2C, B2B, or freelancers).
  • Product: The Solaris product you're integrating (Checking accounts, restricted accounts, etc.).
  • Branch: The branch in which you're opening an account (Germany, France, Italy, or Spain).

These metrics are part of your partner configurations assigned to you by your Partner Manager. Solaris will run a different set of validations for each combination you have. For example, the validations for a B2B checking account in Germany will differ from a B2B checking account in Italy, etc.

What kind of validations does Solaris run?

Solaris will run different validations, as explained above. Such validations will include, but are not limited to, the following:

  • Customer identification (KYC): There's a successful identification for the customer.
  • CDD checks: All the checks for the Customer Due Diligence process are successful.
  • Customer age: The customer is of legal age (i.e., at least 18 years old).
  • Allowed number of accounts: The customer does not exceed the allowed number of active bank accounts.
note

You can request a complete list of validations based on your banking use case from your Partner Manager.

Account opening request status flow

Status Description
INITIATED An AOR has been successfully created for the customer.
IN_PROGRESS An AOR is currently being processed by Solaris. Internal validations are currently running.
COMPLETED An AOR is successful, and an account has been opened for the customer. A webhook notification will be triggered for this status.
REJECTED An AOR is rejected. A webhook notification will be triggered for this status. Depending on the rejection reason, you can either create a new AOR or abort the customer onboarding process.

API reference

POST Create an account opening request

Call this endpoint to create an account opening request for the customer and add the following mandatory properties in the request body:

  • customer_id: The customer's person_id (for B2C or freelancer customers) or business_id (for B2B customers).
  • customer_type: The customer's type: Business (for B2B customers) and Person (for B2C or freelancer customers).
  • product_name: The product name for which you want to open an account.
  • account_type: The account type corresponding with the product and customer type.
  • account_purpose: The purpose of the account. Only mandatory if you're offering multiple accounts to the customer (not included sub-accounts).
  • account_bic: The account BIC corresponding with the branch in which you want to open an account.
  • account_currency: The account currency.
note

There are some dependencies between the fields customer_type, product_name, account_type, account_bic, and account_currency. Depending on your banking use case, your Partner Manager will inform you of the values to use for these fields.

Request example

Copy
Copied
// POST /v1/accounts/opening_requests
{
  "customer_id": "b109ee6f66d2a061e006bd31c6455df2cper",
  "customer_type": "Person",
  "product_name": "CURRENT_ACCOUNT_CONSUMER_GERMANY",
  "account_type": "CHECKING_PERSONAL",
  "account_bic": "SOBKDEB2XXX",
  "account_currency": "EUR"
}

Click here to view the full API reference.

GET Retrieve an account opening request

Copy
Copied
GET /v1/accounts/opening_requests/{id}

Click here to view the full API reference.

GET Index all account opening requests

Copy
Copied
GET /v1/accounts/opening_requests

Click here to view the full API reference.

Webhooks

Subscribe to the following webhook event to receive the result of an AOR:

note

This webhook event will be triggered only in the case of success or failure.


Fields mapping

There are some dependencies between the fields customer_type, product_name, account_type, account_bic, and account_currency.

The following diagram gives an example of how the fields are mapped. The example depicts the case of checking accounts.

To view a larger version, right-click the image and click "Open in a new tab."

Diagram: Fields mapping example

Customer type

The field customer_type indicates the customer type (B2C, B2B or Freelancers). For B2C and Freelancers, use Person. For B2B, use Business.

Product name

The field product_name indicates the product for which you want to open an account. The naming of the values for this field is a combination of the product name, customer type, and sometimes also the branch (e.g., CURRENT_ACCOUNT_CONSUMER_GERMANY).

Account types

The field account_type indicates the account type corresponding with the product and the customer type. Only accounts that can be opened via this process are listed in the API reference. Accounts opened by Solaris are excluded.

Account BICs

The field account_bic indicates the account's Bank Identifier Code (BIC) corresponding with the branch.

Branch Allowed BICs
Germany SOBKDEBBXXX, SOBKDEB2XXX
France SOBKFRP2XXX
Italy SOBKITM2XXX
Spain SOBKESM2XXX