Onboard a business (Digital Banking & Cards)

This guide describes how to onboard new business customers in your banking solution for Digital Banking and Cards products using Solaris' Digital Banking API. It includes step-by-step instructions for each phase of the onboarding process, including the mandatory information you must collect from your business customers and the necessary endpoints and webhooks you must integrate into your solution.

Introduction

Business onboarding overview

Onboarding a business involves collecting information and creating multiple resources using Solaris's API. Th's section describes the various legal entities and natural persons engaged in onboarding a business, as well as the information you need to collect.

Business information

When you onboard a business, you must collect two different streams of information:

  • Business information: Information about the legal person (legal entity, e.g., the company itself), including the business name, registration number, tax information, business activities, etc.
  • Person information: Information about all the natural persons running and/or legally representing the business. A business could involve multiple natural persons assigned to different roles. These roles include legal representatives, beneficial owners, signees, and authorized persons.

Business identification

Based on the information provided, businesses go through two types of identifications:

  • Legal identification: Done by Solaris to identify the legal entity.
  • Video identification: Done by our video identification service provider, IDnow, to identify the natural persons behind the business. Please note that only natural persons assigned to specific roles require video identification.

Business entities and roles

Legal person/entity

A legal person (also referred to as a legal entity) is a person or a thing that can perform different actions under the law, such as entering into contracts, owning property, etc. There are two types of legal persons: human and non-human. The non-human legal person is called a juridical person, which could be a corporation or a company, and is treated by law as a person. In contrast, the human legal person is called a natural person.

A company or a business includes a juridical person (the legal entity) and natural person(s) who own and/or legally represent the business.

Business

On Solaris's system, a business is a company's juridical person (the non-human legal person). A business must have at least one natural person attached to it, assigned to a specific role.

The natural persons attached to the business don't own the account. Instead, the business is the account holder, and a business can have multiple accounts.

Roles

The legal persons behind the business are assigned to different roles. Each person attached to a business plays at least one role: a legal representative, a beneficial owner, or both. A person could also act as a signee or an additional authorized person on the account.

The following roles are available on Solaris's system:

  • Legal representative
  • Ultimate beneficial owner
  • Signee
  • Authorized person
Important

The roles of legal representative(s) and ultimate beneficial owner(s) are mandatory in our system.

User journey

The legal representative of the business is usually the one to initiate the process of opening a bank account and must do the following steps on your frontend:

  1. Consent to the legal and regulatory requirements, such as Solaris' terms and conditions, FATCA relevance, and data terms.
  2. Enter the business' required information.
  3. Upload the required business documents.
  4. Enter the details of the business' legal representative(s).
  5. Enter the details of the business' beneficial owner(s).
  6. Complete the video identification process with IDnow (All legal representatives).
  7. Open a bank account for the business.
  8. Add any other authorized person(s) to the business account.
  9. Order and activate the card.
  10. Provide the tax information of the business and all the natural person(s) associated with the business within 90 days from opening the account.

System prerequisites

Before starting the business onboarding process, you must implement the following requirements:

1. Technical setup:

Set up your environment and get your authentication keys. For step-by-step instructions, check the Technical setup guide.

2. 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's 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.
  • Collect the customer's economic interest declaration and store the timestamp in the own_economic_interest_signed_at field.
  • Collect the customer's FATCA indication and store it in the fatca_relevant field. Store the timestamp in the fatca_crs_confirmed_at field.
note

The mentioned fields are part of the person resource in which all the customer data points are stored.

attention
  • All legal representative(s) of the business, beneficial owner(s) and authorized person(s) must consent to FATCA related fields.
  • Only legal representative(s) and authorized person(s) must consent to Solaris' terms and conditions and data terms fields.

Webhooks

Solaris recommends subscribing to the following webhook events to better automate your processes. For detailed instructions on implementing Solaris webhooks, check the webhooks documentation.


Integration flow

The following sequence diagram gives an overview of the integration flow for onboarding business customers for Digital Banking Cards:

Diagram: Business onboarding flow

Integration steps

Onboard business customers by completing the following steps:

Business registration

  1. Collect the mandatory business data in your sign-up flow, and create a business resource for your customer by completing Step 1.
  2. Upload the required business documents by completing Step 2.

Business natural person(s) registration

  1. Collect the mandatory data from each of the business' legal representatives, including the consent to the legal and regulatory requirements in your sign-up flow, and create a person resource and assign the legal representative role to this person by completing Step 3.
  2. Collect the mandatory data from each of the business' beneficial owner(s), including the FATCA relevance indication in your sign-up flow, and create a person resource and assign the beneficial owner role to this person by completing Step 4.

Business and person tax information

note

You can collect this information upon sign-up or within 90 days from opening the business account.

  1. Collect the mandatory tax information from the business and create a business tax identification resource by completing Step 5.1.
  2. Collect the mandatory tax information of the business' legal representative(s), beneficial owner(s) and authorized person(s) and create person tax identification resource(s) by completing Step 5.2.

Business identification (BKYC) and due diligence

  1. Trigger the business identification process (BKYC) for the business by completing Step 6.
  2. Redirect all of the business' legal representative(s) to complete the video identification process with IDnow.
  3. Implement the compliance questions endpoints related to the business' legal identification process. Make sure to redirect the questions (if any) to the business' legal representative(s) and provide the answers to Solaris on time.
  4. Ensure that the business' legal identification and the video identification of legal representative(s) are both successful.
  5. Ensure that all natural person(s) (e.g., legal representatives and beneficial owners) pass the customer due diligence process before proceeding with the following steps.

Account and card setup

  1. Create an account for the business by completing Step 7.
  2. Create authorized person(s) on the business account by completing Step 8. All legal representatives must be additionally added as an authorized person.
  3. Create and activate the business card by completing Step 9.

Additional roles (Optional)

  1. (If applicable), you can add other roles to the business account, such as Signees or other authorized person(s) who are not legal representatives by completing Step 10.

Mandatory features

You must integrate all the mandatory features highlighted in this section.


Step 1: Collect business data and create business resource

In this step, you must collect the mandatory data points from the business in your sign-up flow, including all the timestamps of the business's consent to the legal and compliance screens. Afterward, pass all the data points to Solaris by creating a business resource.

What is a business resource?

The business resource represents the business's details at Solaris. It contains all mandatory customer data, as well as links to other resources created for the business (e.g., legal representative(s), beneficial owner(s), accounts, tax identifications, etc.).

note
  • The mandatory data points for this endpoint depend on various factors, such as the product, business information, and branch.

API reference

Visit the following link to find all the endpoints related to the business resource, including related properties and examples.

Related webhook events

POST Create business

This endpoint creates a business resource for your customer. Add the following mandatory data points you've collected from the customer in the request body of this endpoint:

Important

You have to submit the information exactly as they appear in official documents.

  • name: The business registered name.
  • legal_form: The business legal form. (Check the appendix for possible values)
  • sector The business sector.
  • nace_code (Check the appendix for possible values)
  • foundation_date: The date the business was founded.
  • address: The business registered address (Street, Number, City, Postal Code, Country, State).
  • tax_information
    • tax_country: The country in which the business is taxable. (ISO 3166-1 alpha-2 codes)
    • tax_confirmation: The business' tax confirmation interval. Possible values are ANNUALLY and SINGLE.
    • registration_issuer: (Only for Germany) The authority that issued the business' registration. (Check the appendix for possible values)
    • registration_number: The business' registration number.
  • fatca_relevant
  • fatca_crs_confirmed_at (UTC timestamp)
  • terms_conditions_signed_at (UTC timestamp)
  • crs_company_type: The business' Common Reporting Standard (CRS) company type. (Check the appendix for possible values)
  • business_purpose: Short summary of the purpose of the business. May also include the business' web address.

Request example:

Copy
Copied
POST /v1/businesses
{
  "name": "Example GmbH",
  "sector": "OTHER_COMPANIES",
  "nace_code": "M 70.10",
   "address": {
    "line_1": "Address 1",
    "line_2": "Address 2",
    "postal_code": "10409",
    "city": "Berlin",
    "country": "DE",
    "state": "BE"
  },
  "legal_form": "GMBH",
  "foundation_date": "1990-06-01",
  "tax_information": {
    "tax_country": "DE",
    "tax_confirmation": "SINGLE",
    "registration_number": "HRB 12345",
    "registration_issuer": "Amtsgericht Berlin"
  },
  "fatca_relevant": false,
  "fatca_crs_confirmed_at": "2017-01-01T00:00:00Z",
  "crs_company_type": "FE_REPORTING",
  "business_purpose": "change the world for the better",
  "terms_conditions_signed_at": "2017-01-01T00:00:00Z",
}

Example response

The API call returns a business object with a unique business_id, which will be used to reference the created business in the remaining steps of the onboarding process.

Copy
Copied
{
  "id": "880bbac68a34add190786b9c74f4c82fcbiz",
  "name": "Example GmbH",
  "sector": "OTHER_COMPANIES",
  "nace_code": "M 70.10",
   "address": {
    "line_1": "Address 1",
    "line_2": "Address 2",
    "postal_code": "10409",
    "city": "Berlin",
    "country": "DE",
    "state": "BE"
  },
  "legal_form": "GMBH",
  "foundation_date": "1990-06-01",
  "tax_information": {
    "tax_country": "DE",
    "tax_confirmation": "SINGLE",
    "registration_number": "HRB 12345",
    "registration_issuer": "Amtsgericht Berlin"
  },
  "fatca_relevant": false,
  "fatca_crs_confirmed_at": "2017-01-01T00:00:00Z",
  "crs_company_type": "FE_REPORTING",
  "business_purpose": "change the world for the better",
  "terms_conditions_signed_at": "2017-01-01T00:00:00Z",
  "flagged_by_compliance": false,
  "balance_sheet_total": null,
  "number_employees": null,
  "registration_type": "DE_GNR_CD",
  "registration_district": "BERLIN_CHARLOTTENBURG",
  "screening_progress": "NOT_SCREENED",
  "international_operativity_expectation": [],
  "vat_number": null,
  "risk_classification_status": "NOT_SCORED",
  "customer_vetting_status": "NOT_VETTED",
  "purpose_of_account_opening": null,
  "source_of_funds": null,
  "expected_annual_revenue": null,
  "expected_annual_incoming_funds": null,
  "company_status": null
}

Click here to view the full API reference.


Automatic data collection (Optional)

You can facilitate the onboarding process for your customers by opting for the automatic data collection feature. Our external service provider Business Registry simplifies the data collection step by allowing your customers to enter the country and the company's name and the rest of the business data fields are filled out automatically.

info

Automatic data collection is an optional step that provides a good user experience. Contact your Partner Manager for more information about the usage of this feature and its associated prices.

GET Search for business commercial registration

The customer enters the company's name and country on your frontend and you pass this information using the following endpoint to automatically fetch the business' registration_issuer and registration_number:

''

This endpoint may be used free of charge.

Request URL:

Copy
Copied
GET /v1/commercial_registrations/search_by_name?country={{}}&name={{}}

Example response

Copy
Copied
{
  "name": "FLOOR 13 GmbH",
  "registration_number": "HRB 198673",
  "registration_issuer": "AMTSGERICHT MÜNCHEN"
}

Click here to view the full API reference.

GET Automatic business data collection

After getting the business registration_issuer and registration_number from the response of the previous endpoint, you can automatically fetch the remaining business details by calling the following endpoint:

info

This endpoint has an associated cost per request. Contact your Partner Manager for more information.

Request URL:

attention

Please note that for companies in Germany, you must add AMTSGERICHT before the value of the registration_issuer, e.g., AMTSGERICHT MÜNCHEN.

Copy
Copied
GET /v1/commercial_registrations/find?registration_number={{}}&registration_issuer={{}}

Example response

Copy
Copied
{
  "name": "FLOOR 13 GmbH",
  "address": {
    "country": "DE",
    "postal_code": "86919",
    "city": "Utting a.Ammersee",
    "line_1": "Seestraße 9",
    "line_2": ""
  },
  "legal_form": "GMBH",
  "tax_country": "DE",
  "registration_number": "HRB 198673",
  "registration_issuer": "AMTSGERICHT MÜNCHEN",
  "registration_date": "2012-05-09",
  "registry_updated_at": "2015-11-17",
  "legal_representatives": [
    {
      "first_name": "Stefan",
      "last_name": "Schneider"
    }
  ]
}

Click here to view the full API reference.

Foreign companies examples

If the company is not registered in Germany, you can still use this service for companies in other countries. The following examples describe how to find the business registration details for a French company.

note

The field registration_issuer is only required for companies in Germany.

GET Search for business commercial registration (France)

Request

Copy
Copied
GET v1/commercial_registrations/search_by_name?name=PARISOL&country=FR

Response

Copy
Copied
{
  "name": "PARISOL",
  "registration_number": "513 937359",
  "registration_issuer": null
}

GET Automatic business data collection (France)

Request

Copy
Copied
GET  /v1/commercial_registrations/find?registration_number=513937359&country=FR

Response

Copy
Copied
{
  "name": "PARISOL",
  "address": {
    "country": "FR",
    "postal_code": null,
    "city": "NANTERRE",
    "line_1": "RUE D ARRAS 18",
    "line_2": ""
  },
  "legal_form": null,
  "tax_country": "FR",
  "registration_number": "513 937359",
  "registration_issuer": null,
  "registration_date": "2009-07-27",
  "registry_updated_at": null,
  "legal_representatives": [
    {
      "first_name": "Stefan",
      "last_name": "Schneider"
    }
  ]
}
info

Check the appendix for testing data for these endpoints.


Step 2: Upload business documents

In this step, you must create document resources for all the required documents you've collected from the business in your sign-up flow and attach them to the business. The documents are mandatory for the business identification step.

The required documents depend on different factors, such as the business's legal form, sector, etc. Check the appendix for a list of required documents per legal form.

attention

You have to make a separate API request for each document and specify the document_type. See the appendix for a list of possible values for this field.

API reference

Visit the following links to find all the endpoints related to the business documents resource, including related properties and examples.

POST Upload a document

This endpoint uploads a document and links it to the business with the business_id specified in the request URL.

You have to add the following properties to the request body:

  • document_type: The document type. For a list of possible values, check the appendices section.
  • file: The file to be uploaded.
note

The request body of this endpoint is a multipart/form-data content type and parameters are transmitted as form-data and not as a raw JSON string.

Request URL

Copy
Copied
POST /v1/businesses/{business_id}/documents

Example response

The API returns an object with a unique ID, the document_id.

Copy
Copied
{
  "id": "69ec2a9d8dbaf5ea1b13124098a34ea3cdoc",
  "name": "Operation_authorization.png",
  "content_type": "image/png",
  "document_type": "FOUNDATION_DOCUMENT",
  "size": 10187,
  "customer_accessible": false,
  "created_at": "2022-05-20T12:46:09Z",
  "deleted_at": "null"
}

Click here to view the full API reference..


After creating a business resource and uploading the required documents, you must create the natural person(s) associated with the business and assign them to their respective roles. The natural person(s) are represented in our system by a person resource that contains their data, and then you must assign each person a dedicated role. The mandatory roles are Legal Representative and Ultimate Beneficial Owner.

Important

A business must have at least one natural person attached to it in the capacity of legal representative or beneficial owner or both simultaneously.


Step 3: Create Legal Representative(s)

In this step, you must do the following steps:

  • Create a person object for each legal representative.
  • Create a legal_representative resource and assign it to its corresponding person object.
Important

If a business has more than one legal representative, make sure to create and link all of them to the business object on our system to avoid any delays during the business identification process.

What is a legal representative?

The legal representatives are natural persons (individuals) or entities (businesses) legally appointed by a company to act on its behalf. The legal representative(s) of a company may be, for instance, its general manager(s) or its managing director(s). The names of a business' legal representatives (Gesellschafter) are usually recorded in the company's commercial register. A company must have at least one individual or entity registered as its legal representative. If a company has more than one legal representative, all of them must be registered.

info

Check the FAQ in the appendices section for more information about legal representatives.

API reference

Visit the following links to find all the endpoints related to the person resource and legal representative resource, including related properties and examples.

Related webhook events


Create person resource(s) for each legal representative

For each of the business' legal representative, you must collect the following mandatory information and pass them to Solaris in the request body of the following endpoint:

Important

You have to create a separate person object for each legal representative associated with the business.

POST Create person (legal representative)

This endpoint creates a person resource for the business' legal representative . Add the following mandatory data points you've collected from the customer in the request body of this endpoint:

Mandatory properties:

  • salutation
  • first_name: (including all middle names as printed on the ID document)
  • last_name: (including all middle names as printed on the ID document)
  • birth_date
  • birth_city
  • birth_country (ISO 3166-1 alpha-2 codes)
  • nationality (ISO 3166-1 alpha-2 codes)
  • address (Street, Number, City, Postal Code, Country, State).
  • mobile_number The mobile number will be verified during the identification process.
  • fatca_relevant
  • fatca_crs_confirmed_at (UTC timestamp)
Important

You have to submit the information exactly as they appear in official documents.

Request example:

Copy
Copied
POST /v1/persons
{
    "salutation": "MR",
    "first_name": "Peter",
    "last_name": "Mustermann",
    "nationality": "DE",
    "birth_date": "1972-12-14",
    "birth_city": "Berlin",
    "birth_country": "DE",
    "mobile_number": "+49301234567",
    "address": {
        "line_1": "Musterstraße 10",
        "line_2": "",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE"
    },
    "fatca_relevant": false,
    "fatca_crs_confirmed_at": "2017-01-01T00:00:00Z",
}

Response example

The API returns a person object with a unique id. You will use this id in subsequent API calls as the value of person_id throughout the remainder of this guide.

Copy
Copied
201 Created
{
    "id": "6aeab6ab0146e0914edf335e6c1abce6cper",
    "salutation": "MR",
    "title": null,
    "first_name": "Peter",
    "last_name": "Mustermann",
    "address": {
        "line_1": "Musterstraße 10",
        "line_2": null,
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE"
    },
    "email": null,
    "mobile_number": "+49301234567",
    "birth_name": null,
    "birth_date": "1972-12-14",
    "birth_city": "Berlin",
    "birth_country": "DE",
    "nationality": "DE",
    "employment_status": null,
    "job_title": null,
    "fatca_relevant": false,
    "fatca_crs_confirmed_at": "2017-01-01T00:00:00.000Z",
    "business_purpose": null,
    "industry": null,
    "industry_key": null,
    "terms_conditions_signed_at": null,
    "own_economic_interest_signed_at": null,
    "aml_follow_up_date": "2028-09-23",
    "aml_confirmed_on": "2022-03-23",
    "flagged_by_compliance": false,
    "expected_monthly_revenue_cents": null,
    "vat_number": null,
    "website_social_media": null,
    "business_trading_name": null,
    "nace_code": null,
    "business_address_line_1": null,
    "business_address_line_2": null,
    "business_postal_code": null,
    "business_city": null,
    "business_country": null,
    "screening_progress": "NOT_SCREENED",
    "risk_classification_status": "NOT_SCORED",
    "customer_vetting_status": "NOT_VETTED",
    "annual_income_range": null,
    "data_terms_signed_at": null,
    "branch": null,
    "birth_province": null,
    "birth_post_code": null,
    "socioprofessional_category": null,
    "purpose_of_account_opening": null,
    "main_income_source": null,
    "work_country": null,
    "work_province": null,
    "self_declared_as_pep": null,
    "international_operativity_expectation": [],
    "registration_number": null
}

Click here to view the full API reference


Create legal representative resource(s)

For each person resource you created in the previous step, you must create a legal_representative resource, and set the value of the legal_representative attribute to the id of the person in the body of each request.

Optional attributes

  • type_of_representation: A legal_representative could have a type_of_representation, which indicates whether this legal representative can make decisions alone or jointly with other legal representatives. This attribute is optional. Possible values are ALONE, JOINT, or OTHER.
  • power_of_attorney_confirmed_at: In case of JOINT representation, legal representatives need to confirm the power of attorney's timestamp in the power_of_attorney_confirmed_at attribute.
IMPORTANT
  • Solaris currently supports only legal representatives with the type_of_representation set to ALONE.

POST Create legal representative

This method creates a legal_representative resource on the business and binds a person to the business as a legal representative."

Request example:

Copy
Copied
POST /v1/businesses/{business_id}/legal_representatives
{
  "legal_representative_id": "6aeab6ab0146e0914edf335e6c1abce6cper",
  "type_of_representation": "ALONE",
}

Response example

The API call returns an object with a unique ID, which is the resource ID, and the details of the legal representative resource. This API call triggers this webhook event LEGAL_REPRESENTATIVE.

Copy
Copied
{
  "id": "a46578f4049f42aba9fe88a2a80fed53",
  "legal_representative_id": "6aeab6ab0146e0914edf335e6c1abce6cper",
  "legal_representative_type": "Person",
  "valid_until": "2022-12-31",
  "power_of_attorney_confirmed_at": null,
  "type_of_representation": "ALONE",
  "business_id": "880bbac68a34add190786b9c74f4c82fcbiz"
}

Click here to view the full API reference.


Step 4: Create Ultimate Beneficial Owner(s)

In this step, you must do the following steps:

  • Collect the required data about the company's Ultimate Beneficial Owner(s) in your sign-up flow.
  • Include the definition of the Ultimate Beneficial Owner in your UI.
  • Create a person object for each beneficial owner.
  • Create a beneficial_owner resource and assign it to its corresponding person object.
Important

Make sure to create and link all of the business' beneficial owners to the business object on our system to avoid any delays during the business identification process.

What is an Ultimate Beneficial Owner?

The Ultimate Beneficial Owners (UBO) are natural persons who, directly or indirectly, own more than 25% of a company's shares.

According to the German Money Laundering Act (Geldwäschegesetz - GwG), an Ultimate Beneficial Owner is a natural person who:

  • Ultimately owns or controls the business.
  • On whose behalf a transaction is ultimately carried out.
  • On whose behalf a business relationship is ultimately established.
Important notes
  • The Ultimate Beneficial Owner must be a natural person (individual) and not a legal entity (company). If your business is owned by another company (holding or corporate structure), you need to follow the trail of indirect ownership until you find an individual.
  • After a thorough investigation, if no individual owns directly or indirectly more than 25% of the company's voting shares, you must add the legal representative(s) as fictitious beneficial owners.
  • Ultimate Beneficial Owners don't require video identification.
  • For more information about Ultimate Beneficial Owners, check the FAQ in the appendices section

API reference

Visit the following links to find all the endpoints related to the person resource and legal representative resource, including related properties and examples.

Related webhook events

Beneficial owner legal definition

Please ensure that the Ultimate Beneficial Owner's full definitions and the checkbox are available to your customers in your sign-up flow.

Full definition in English

The ultimate beneficial owner in the sense of the German Money Laundering Act (Geldwäschegesetz - GwG) is the natural person who ultimately owns or controls the contracting party, or on whose behalf a transaction is ultimately carried out or a business relationship is ultimately established. This particularly includes: 1. In case of legal persons, foundations without legal capacity and, in the case of other companies, any natural person who directly or indirectly holds more than a 25% share of the capital, controls more than 25% of the voting rights or exercises control in any comparable manner (+). Establishing the identity of the beneficial owner can be waived, though, for companies that are listed in an organised market in the EU with in accordance with Sec on 2 para. 5 of the Securities Trading Act or, in case of listed companies from a third country, if they are subject to EU-equivalent transparency requirements regarding voting rights or equivalent international standards; 2. In case of foundations or other legal arrangements with legal capacity (or similar) used to manage or distribute assets or property as trustee (trust management), or through which third parties are instructed with the management or distribution of assets or property, the ultimate beneficial owner is:

  • any natural person who is a trustor/settlor, trustee or protector, if applicable
  • any natural person who is a member of the board of the foundation,
  • any natural person designated as a beneficiary,
  • the group of natural persons in whose favour the assets are mainly to be administered or distributed, provided that the natural person who is to be the ultimate beneficial owner of the assets or property has not yet been determined
  • any natural person who, by any other means, directly or indirectly exercises control over the asset management or property or the distribution of income.
  1. In the event of acting on behalf of another party, the ultimate beneficial owner includes the party upon whose initiative the transaction is performed. If the contracting party acts as a trustee, he also acts on behalf of another party. (+) Indirect control exists particularly if corresponding shares are held by one or more associations pursuant to Sec on 20 para. 1 GwG which are controlled by a natural person. Control exists particularly if the natural person can directly or indirectly exert a controlling influence on the association pursuant to Sec on 20 para. 1 GwG. Sec on 290 para. 2 to 4 German Commercial Code (Handelsgesetzbuch - HGB) applies mutatis mutandis to the existence of a controlling influence. If, after extensive audits have been performed and without the facts according to Sec on 43 para. 1 GwG applying, no natural person has been identified or if there is any doubt that the identified person is the ultimate beneficial owner, the ultimate beneficial owner shall be the legal representative, managing partner or partner of the contracting party.

Full definition in German

Wirtschaftlich Berechtigter im Sinne des Geldwäschegesetzes, ist die natürliche Person, in deren Eigentum oder unter deren Kontrolle der Vertragspartner letztlich steht, oder auf deren Veranlassung eine Transaktion letztlich durchgeführt oder eine Geschäftsbeziehung letztlich begründet wird. Hierzu zählen insbesondere: 1. Bei juristischen Personen, außerrechtsfähigen Stiftungen und bei sonstigen Gesellschaften jede natürliche Person, welche unmittelbar oder mittelbar mehr als 25 Prozent der Kapitalanteile hält, mehr als 25 Prozent der Stimmrechte kontrolliert oder auf vergleichbare Weise Kontrolle ausübt(2). Auf die Abklärung des wirtschaftlich Berechtigten kann aber verzichtet werden bei Gesellschaften, die innerhalb der EU an einem organisierten Markt im Sinne des § 2 Abs. 5 des Wertpapierhandelsgesetzes notiert sind, oder bei börsennotierten Unternehmen aus einem Drittstaat, wenn sie dem Gemeinschaftsrecht entsprechenden Transparenzanforderungen im Hinblick auf Stimmrechtsanteile oder gleichwertigen internationalen Standards unterliegen; 2. Bei rechtsfähigen Stiftungen und Rechtsgestaltungen, mit denen treuhänderisch Vermögen verwaltet oder verteilt oder die Verwaltung oder Verteilung durch Dritte beauftragt wird, oder diesen vergleichbaren Rechtsformen zählt zu den wirtschaftlich Berechtigten:

  • jede natürliche Person, die als Treugeber, Verwalter von Trusts (Trustee) oder Protektor, sofern vorhanden,
  • jede natürliche Person, die Mitglied des Vorstands der Stiftung ist,
  • jede natürliche Person, die als Begünstigte bestimmt worden ist,
  • die Gruppe von natürlichen Personen, zu deren Gunsten das Vermögen hauptsächlich verwaltet oder verteilt werden soll, sofern die natürliche Person, die Begünstigte des verwalteten Vermögens werden soll, noch nicht bestimmt ist,
  • jede natürliche Person, die auf sonstige Weise unmittelbar oder mittelbar beherrschenden Einfluss auf die Vermögensverwaltung oder Ertragsverteilung ausübt.
  1. Bei Handeln auf Veranlassung zählt zu den wirtschaftlich Berechtigten derjenige, auf dessen Veranlassung die Transaktion durchgeführt wird. Soweit der Vertragspartner als Treuhänder handelt, handelt er ebenfalls auf Veranlassung.

Create person resource(s) for each beneficial owner

For each of the business' beneficial owners, you must collect the following mandatory information and pass them to Solaris in the request body of the following endpoint:

Important

You have to create a separate person object for each beneficial owner associated with the business.

POST Create person (beneficial owner)

This endpoint creates a person resource for the business' beneficial owner. Add the following mandatory data points you've collected from the customer in the request body of this endpoint:

Mandatory properties:

  • salutation:
  • first_name: (including all middle names as printed on the ID document)
  • last_name: (including all middle names as printed on the ID document)
  • birth_date
  • nationality (ISO 3166-1 alpha-2 codes)
  • fatca_relevant
  • fatca_crs_confirmed_at (UTC timestamp)
Important

You have to submit the information exactly as they appear in official documents.

Request example:

Copy
Copied
POST /v1/persons
{
    "salutation": "MR",
    "first_name": "Max",
    "last_name": "Mustermann",
    "nationality": "DE",
    "birth_date": "1982-06-20",
    "fatca_relevant": false,
    "fatca_crs_confirmed_at": "2017-01-01T00:00:00Z",
}

Response example

The API returns a person object with a unique id. You will use this id in subsequent API calls as the value of person_id throughout the remainder of this guide.

Copy
Copied
201 Created
{
    "id": "dc1a6812a14f6cc338cd084208535bcdcper",
    "salutation": "MR",
    "title": null,
    "first_name": "Max",
    "last_name": "Mustermann",
    "address": {},
    "email": null,
    "mobile_number": null,
    "birth_name": null,
    "birth_date": "1982-06-20",
    "birth_city": null,
    "birth_country": null,
    "nationality": "DE",
    "employment_status": null,
    "job_title": null,
    "fatca_relevant": false,
    "fatca_crs_confirmed_at": "2017-01-01T00:00:00.000Z",
    "business_purpose": null,
    "industry": null,
    "industry_key": null,
    "terms_conditions_signed_at": null,
    "own_economic_interest_signed_at": null,
    "aml_follow_up_date": "2028-09-23",
    "aml_confirmed_on": "2022-03-23",
    "flagged_by_compliance": false,
    "expected_monthly_revenue_cents": null,
    "vat_number": null,
    "website_social_media": null,
    "business_trading_name": null,
    "nace_code": null,
    "business_address_line_1": null,
    "business_address_line_2": null,
    "business_postal_code": null,
    "business_city": null,
    "business_country": null,
    "screening_progress": "NOT_SCREENED",
    "risk_classification_status": "NOT_SCORED",
    "customer_vetting_status": "NOT_VETTED",
    "annual_income_range": null,
    "data_terms_signed_at": null,
    "branch": null,
    "birth_province": null,
    "birth_post_code": null,
    "socioprofessional_category": null,
    "purpose_of_account_opening": null,
    "main_income_source": null,
    "work_country": null,
    "work_province": null,
    "self_declared_as_pep": null,
    "international_operativity_expectation": [],
    "registration_number": null
}

Click here to view the full API reference

Additionally, you need to clarify whether there is an additional agreement that allows any external person or business to have a right of ownership. To collect this information, display the following question to your customers as a check box during the sign-up process:

Are there contracts or agreements concluded outside the company register which reflect a possible ownership based on voting rights distributions?

If the customer checks this box, they must provide supplementary documentation to reflect the ownership. The required documents have the document type: SHARE_HOLDERS_AGREEMENT. Additionally, you need to store the response and timestamp of the customer's response and provide it when requested by Solaris.


Create beneficial owner resource(s)

For each person resource you created in the previous step, you must create a beneficial_owner resource. Set the value of the person_id attribute to the id of the person in the body of each request, along with the following properties:

  • voting_share
  • fictious

POST Create beneficial owner(s)

This method creates a beneficial_owner resource on the business and binds a person to the business as a beneficial owner.

Request example:

Copy
Copied
POST /v1/businesses/{business_id}/beneficial_owners
{
  "person_id": "dc1a6812a14f6cc338cd084208535bcdcper",
  "voting_share": "70.50",
  "fictitious": "false",
  "relationship_to_business": "DOMINANT_INFLUENCE_OVER_SHARE_CAPITAL"
}

Response example

The API call returns an object with a unique ID, which is the resource ID, and the details of the beneficial owner resource. This API call triggers this webhook event BENEFICIAL_OWNER.

Copy
Copied
{
  "id": "a9d0975ce42e38dc8e4da435786dce8dcbeow",
  "beneficial_owner_id": "dc1a6812a14f6cc338cd084208535bcdcper",
  "person_id": "dc1a6812a14f6cc338cd084208535bcdcper",
  "valid_until": null,
  "voting_share": "70.5",
  "business_id": "880bbac68a34add190786b9c74f4c82fcbiz",
  "fictitious": "false",
  "relationship_to_business": "DOMINANT_INFLUENCE_OVER_SHARE_CAPITAL"
}

Click here to view the full API reference.


Step 5: Create tax identifications

In this step, you must do the following:

  • Collect the mandatory tax information about the business' legal entity and create a business tax identification resource.
  • Collect the mandatory tax information about the natural person(s) associated with the business and create person tax identification resource(s).
info

You can prompt your customers to provide the tax information during the sign-up flow or within 90 days of opening an account. Solaris recommends collecting such information as part of your sign-up flow for faster onboarding.

What's tax identification?

As a financial institution, Solaris must comply with various tax regulations, including the Common Reporting Standard (CRS) developed by the Organization for Economic Cooperation and Development (OECD) and the German Steuerumgehungsbekämpfungsgesetz (StUmgBG).

Therefore, Solaris must collect tax information on all individuals and legal entities that are tax residents of a reportable jurisdiction (i.e., a jurisdiction that's obliged under CRS to exchange tax information with other reportable jurisdictions).

The tax information of a person or a business (legal entity), such as tax identification number (TIN) and the tax residency (the country where the customer is taxable) is stored in a tax_identification resource on Solaris's system. There are two types of tax identification resources:

  1. Person tax identification: Used to store the tax information of the following customer types:

    • Retail customers
    • Freelancers or sole proprietors
    • Business legal representatives
    • Business beneficial owners
    • Authorized persons on a business account
    • Authorized persons on a retail account
  2. Business tax identification: Used for a business' legal entity.


1. Business tax identification

You must first collect the tax information about the business' legal entity and pass them to Solaris by creating a business tax identification resource. Additionally, make sure that this property crs_company_type is populated in the business resource as the selected value for this field determines whether additional tax information for the natural person(s) behind the business is required or not. Check this section Person tax information for more information.

API reference

Visit the following link to find all the endpoints related to the business tax identification resource, including related properties and examples.

Related webhook events

POST Create business tax identification

This endpoint creates a business tax identification for the business with the business_id specified in the request URL. To create a tax_identification resource, collect the following tax information from the business and pass them to Solaris using the following endpoint.

Important
  • If a business has multiple tax residencies (i.e., taxable in multiple countries), you must create a separate tax identification resource for each tax residency and specify only one of them as primary.
  • A business can only have one tax identification per country.

Mandatory properties:

Add the following properties in the request body of the following endpoint:

  • number: The business's Tax Identification Number (TIN), issued by the public authorities. Please note:
    • The API automatically validates the number based on the format required for the customer's country. If the supplied TIN does not follow the proper format for the given country, the API will return a 400 error.
    • Check the appendix Tax Identification Number (TIN) by country for details on how to validate the customer's TIN.
  • country: The country where the business has their tax residence. Uses the two-character ISO 3166-1 alpha-2 codes.
  • primary: Indicates whether this is the business's primary tax residency. Please note:
    • The first tax_identification to be submitted for a business must be the primary tax identification. If another tax_identification with the value of primary set to true is created, it will set the primary value of the previously created tax_identification to false.
    • Each business may only have one tax_identification per country.

If the business has not submitted their TIN to your solution yet (i.e., the value of number is null), then include the following properties in the request:

  • reason_no_tin: Possible values are NOT_ASSIGNED_YET, NOT_ASSIGNED_BY_COUNTRY, OTHER.
  • reason_description: Free text description of why no TIN was provided. Applies only if the reason_no_tin is OTHER.
  • tax_id_type: The type of the tax ID. Possible values are NIE and NIF.
Important

When creating a tax_identification, always explicitly collect the country value from the user in the frontend. Do not default to the customer's physical residence (i.e., the country property of the business resource).

Request URL

Copy
Copied
POST /v1/businesses/{business_id}/tax_identifications
{
  "country": "DE",
  "number": "12345678901",
  "primary": true
}

Response example

The API returns a tax_identification resource with a unique ID.

Copy
Copied
{
  "id": "6d768d88f291f5744f9f30e9c6f2efd4ctin",
  "country": "DE",
  "number": "12345678901",
  "primary": "true",
  "reason_no_tin": "null",
  "reason_description": "null",
  "valid_until": "2022-08-24",
  "tax_id_type": "string"
}

Click here to view the full API reference.

Business tax declaration

After collecting the tax information from the business, your UI should prompt the legal representative (i.e., the person opening the bank account) to accept and sign the tax declaration:

  • Display the tax declaration text in your frontend to the customer.
  • Add a checkbox that the customer can tick to confirm reading and understanding the tax declaration.
  • Record the timestamp of the customer's signature of the tax declaration and pass it to our API in the attribute fatca_crs_confirmed_at (A property in the create business resource).

You have to prompt one legal representative of the business to sign our Tax Declaration. Your interface must display the following sentence along with the Tax Declaration:

By ticking this box, I confirm that I have read and understood the Tax Declaration below, and confirm that I am authorized to sign on behalf of the legal entity referred to under ‘Account Holder' in this form in respect of all accounts to which this form relates.

This self-disclosure replaces all previous self-disclosures of the account holder and/ or his controlling entities concerning the FATCA agreement and the CRS. The company hereby confirms that, for the duration of the contractual relationship with Solaris, it is obliged to notify the latter within 30 days, on its own initiative, should the information contained in this form have changed.

The company agrees to submit a new form and/or to provide the required forms and documents within 90 days, should the declarations contained in this form no longer be correct. It should be noted that Solaris uses this form to collect data according to the FATCA Agreement and the German Law on the Automatic Exchange of Financial Account Information in Tax Matters (Finanzkonten- Informationsaustauschgesetz – FKAustG), according to which German financial institutions are required to collect all relevant data from their account holders and verify their plausibility.

In case of reportable US citizens or companies, or organizations subject to the tax law of a CRS-participating state (except Germany), the following information must be reported annually to the German Federal Tax Office (Bundeszentralamt für Steuern - BZSt): (i) certain personal data such as name, address, date of birth, and the tax identification number (or their functional equivalent); (ii) account information and/ or participation information such as participation percentage, gross income, etc. If a passive NF(F)E comprises controlling entities who are US persons or are resident for tax purposes of a participating state (except Germany), the above data is also reported together with the data pertaining to controlling entities.

Following the notification of this information to the BZSt, it is forwarded to the U.S. Tax Authority (IRS) or to the competent tax authority (-ies) of other CRS-participating states. I confirm that all statements in this form are correct and complete to the best of my knowledge and belief.

Diese Selbstauskunft ersetzt alle vorausgegangenen Selbstauskünfte des Kontoinhabers bzw. dessen beherrschenden Personen bezüglich dem FATCA-Abkommen und dem CRS. Die Gesellschaft bestätigt hiermit, dass sie sich für die Dauer der Vertragsbeziehung mit der Solaris verpflichtet, dieser innerhalb von 30 Tagen aus eigener Initiative mitzuteilen, wenn sich eine in diesem Formular eingegebene Angabe ändert.

Die Gesellschaft erklärt sich damit einverstanden, innerhalb von 90 Tagen ein neues Formular und/oder die erforderlichen Formulare und Dokumente einzureichen, wenn eine in diesem Formular enthaltene Bestätigung nicht mehr korrekt ist. Es wird darauf verwiesen, dass die solarisBank mit diesem Formular Daten gemäß dem FATCA-Abkommen und dem FKAustG er- hebt. Danach sind deutsche Finanzinstitute dazu verpflichtet, alle relevanten Daten von ihren Kontoinhabern zu erheben und auf Plausibilität zu prüfen.

Im Falle von meldepflichtigen U.S. Personen bzw. Gesellschaften oder in einem CRS- teilnehmenden Staat (außer Deutschland) steuerlich ansässigen Gesellschaften sind die folgenden Informationen jährlich an das Bundeszentralamt für Steuern (BZSt) zu melden: (i) bestimmte personenbezogene Daten wie Name, Adresse, Geburtsdatum und die Steueridentifikationsnummer (bzw. deren funktionale Entsprechung) sowie (ii) Konto- bzw. Beteiligungsinformationen wie Beteiligungshöhe, Bruttoerträge etc. Wenn ein Passiver NF(F)E beherrschende Personen hat, welche U.S. Personen sind oder in einem CRS-teilnehmenden Staat (außer Deutschland) steuerlich ansässig sind, so werden die obigen Daten zusammen mit den relevanten Daten der beherrschenden Personen ebenso gemeldet.

Im Anschluss an die Meldung der Informationen an das BZSt werden die Informationen an die U.S.- Steuerbehörde (IRS) oder an den/die zuständige(n) Steuerbehörde(n) anderer CRS-teilnehmender Staat(en) weitergeleitet. Ich bestätige, dass alle Erklärungen in diesem Formular nach bestem Wissen und Gewissen richtig und vollständig sind.


2. Person tax identification(s)

You must create collect additional tax information from the natural person(s) linked to the business in the following cases:

  • If the crs_company_type property is classified as PASSIVE_NFE or PASSIVE_NFE_INVESTMENT, you must create a person tax identification for all beneficial owners associated with the business in each applicable tax residency.

  • If the business tax residency is in Germany, you have to collect the tax information and create a person tax identification for all natural persons associated with the business, such as legal representatives, beneficial owners, and authorized persons.

API reference

Visit the following link to find all the endpoints related to the person tax identification resource, including related properties and examples.

Related webhook events

POST Create person tax identification

This endpoint creates a person tax identification for the customer with the person_id specified in the request URL. To create a tax_identification resource, collect the following tax information from your customers and pass them to Solaris using the following endpoint.

Important
  • If a customer has multiple tax residencies (i.e., taxable in multiple countries), you must create a separate tax identification resource for each tax residency and specify only one of them as primary.
  • A person can only have one tax identification per country.

Mandatory properties:

Add the following properties in the request body of the following endpoint:

  • number: The customer's Tax Identification Number (TIN), issued by the public authorities. Please note:
    • The API automatically validates the number based on the format required for the customer's country. If the supplied TIN does not follow the proper format for the given country, the API will return a 400 error.
    • Check the appendix Tax Identification Number (TIN) by country for details on how to validate the customer's TIN.
  • country: The country where the customer has their tax residence. Uses the two-character ISO 3166-1 alpha-2 codes.
  • primary: Indicates whether this is the customer's primary tax residency. Please note:
    • The first tax_identification to be submitted for a Person must be the primary tax identification. If another tax_identification with the value of primary set to true is created, it will set the primary value of the previously created tax_identification to false.
    • Each Person may only have one tax_identification per country.

If the customer has not submitted their TIN to your solution yet (i.e., the value of number is null), then include the following properties in the request:

  • reason_no_tin: Possible values are NOT_ASSIGNED_YET, NOT_ASSIGNED_BY_COUNTRY, OTHER.
  • reason_description: Free text description of why no TIN was provided. Applies only if the reason_no_tin is OTHER.
Important

When creating a tax_identification, always explicitly collect the country value from the user in the frontend. Do not default to the customer's physical residence (i.e., the country property of the person resource).

Request example:

Copy
Copied
POST /v1/persons/{person_id}/tax_identifications
{
  "country": "DE",
  "number": "12345678901",
  "primary": true
}

Response example:

The API returns a tax_identification resource with a unique id.

Copy
Copied
{
  "id": "6d768d88f291f5744f9f30e9c6f2efd4ctin",
  "country": "DE",
  "number": "12345678901",
  "primary": true,
  "reason_no_tin": null,
  "reason_description": null
}

Click here to view the full API reference.

Tax ID validation

Solaris's syntax validation rules for tax IDs enable you to verify your customers' tax identification numbers (TIN) on the spot and reduce wrong entries.

The Solaris API automatically validates the format of the supplied tax identification number (TIN) based on the requirements of the customer's country. If the TIN does not follow the proper format, the API will return a 400 error.

Invalid tax ID 400 error example

Copy
Copied
{
    "errors": [
        {
            "id": "029f7bc9-a4dc-4512-b3ee-65d2eb089804",
            "status": 400,
            "code": "invalid_model",
            "title": "Invalid Model",
            "detail": "number is not a valid person tax identification number for country: ES, for reference please check: https://en.wikipedia.org/wiki/National_identification_number#Spain",
            "source": {
                "field": "number",
                "message": "is not a valid person tax identification number for country: ES, for reference please check: https://en.wikipedia.org/wiki/National_identification_number#Spain"
            }
        }
    ]
}
note

The tax ID validation is only available for person tax identifications, such as retail customers and freelancers, and not businesses. It's activated by default for new customers.

info

Check the appendix for the TIN requirements per country.


Step 6: Complete the business identification (BKYC) and due diligence process

In this step, you will trigger the business identification process to identify the business legal entity and the legal representative(s) on the business account. This process is called BKYC.

What is BKYC?

BKYC is Solaris's digital identification solution that facilitates the Know Your Customer (KYC) process for businesses. It's completely digital and AML compliant, harnessing state-of-the-art RESTful APIs to bring together a series of identification and compliance checks for business customers.

How does BKYC work?

The business identification consists of two simultaneous processes:

  • Legal Identification: Solaris identifies the legal entity and verifies the provided business details and documents in the corresponding Commerce Register (Handelsregister in Germany) to ensure that the disclosed data is complete and accurate. Additionally, this process verifies that all business legal representatives and ultimate beneficial owners are disclosed and linked to the business. This is an internal process carried out by Solaris's Banking Operations team.

  • Video Identification(s): All legal representatives and any authorized person on the business must be identified in a video identification session by our identification partner, IDnow, to validate their details against their identification documents.

Important notes
  • Both identification processes must be successful for the business identification process to be considered successful.
  • Only legal representatives and any natural person authorized to act on the account, such as an authorized person or signee, need to be video-identified. Ultimate Beneficial Owners don't need to go through video identification.

Business identification

API reference

Visit the following link to find all the endpoints related to the business identification resource, including related properties and examples.

Related webhook events

POST Initiate business identification

In this step, you initiate the business identification process, referred to as solarisident, which automatically triggers both the legal identification of the business and the video identification of all applicable natural person(s).

You can trigger the business identification process by calling the following endpoint and specifying the identification method in the request body. The default method is idnow.

Request example

Copy
Copied
POST /v1/businesses/{business_id}/identifications
{
  "method": "idnow"
}

Response example

The API response returns an identification object with a unique id, which is the ID of the business identification resource, as well as the status of the identification process (as a whole).

Additionally, the payload includes individual identification objects for the video identification sessions for legal representative(s), including the id of the person identification resource, IDnow status and IDnow reference and url to which you must redirect the legal representative to complete the identification process.

The payload also includes information about the legal identification process, including its dedicated status. You also need to track the progress of this process, particularly the missing information field. Solaris will highlight through this field if there are compliance questions that require answers from the business.

Copy
Copied
{
  "id": "4c74c804eaea5d2a2d64ef400a27a4d3bid",
  "method": "idnow",
  "reference": null,
  "status": "created",
  "completed_at": null,
  "legal_representatives": [
    {
      "person_id": "992de312a545bb24a88ddbf57ae8b1ffcper",
      "identifications": [
        {
          "id": "79c98baa85904c668981855f07f03216cidt",
          "reference": "TST-SMFKT",
          "url": "https://go.test.idnow.de/solarisbankvideoidentstaging/identifications/79c98baa85904c668981855f07f03216cidt",
          "status": "pending",
          "completed_at": null,
          "method": "idnow"
        }
      ]
    },
    {
      "person_id": "7606b518e71be9c2adf72a811f9fae6fcper",
      "identifications": [
        {
          "id": "1bb49f9dec3a57ae69ad3c3183316c9dcidt",
          "reference": "TST-VWKRA",
          "url": "https://go.test.idnow.de/solarisbankvideoidentstaging/identifications/1bb49f9dec3a57ae69ad3c3183316c9dcidt",
          "status": "pending",
          "completed_at": null,
          "method": "idnow"
        }
      ]
    }
  ],
  "legal_identification_status": "created",
  "legal_identification_reason": null,
  "legal_identification_missing_information": [],
  "business_id": "880bbac68a34add190786b9c74f4c82fcbiz"
}

Click here to view the full API reference.


Manual video identification

In the following cases, your solution might need to manually trigger video identification for the legal representatives or other applicable natural person(s):

1. New legal representatives found

During the legal identification of the business, our operations team might find additional legal representatives related to the business which have not been disclosed at the beginning of the onboarding process. In this case, the team creates the new persons on our system and assigns them to the business.

Afterward, your solution must manually trigger the video identification of the newly added legal representative(s) by completing the following steps:

  1. You'll receive a webhook notification from the event legal_representative, which includes the legal_representative_id of the discovered legal representative.
  2. Initiate a video identification with idnow for the new person.
  3. Trigger the identification session. The API response will return the identification URL to which you must redirect the legal representative to complete the video identification.

2. Failed video identification(s)

If any of the initially triggered video identification(s) failed for whatever reason, and you want to create a new identification, you also have to trigger the video identification manually.

API reference

Visit the following link to find all the endpoints related to the different methods of customer identification (KYC), including related properties and examples.

note

The previous link includes all endpoints for different KYC methods. This section includes the relevant endpoints required for video identification with IDnow.

Related webhook events


POST Check identification eligibility (Optional)

As an initial verification step, you can check whether the relevant customer is eligible for the given identification method or not based on their data, such as nationality, place of residence, or identification document.

This endpoint validates whether the person specified in the request URL is eligible to complete a given identification method. You must add the identification method for which you want to check the customer's eligibility in the request body.

Request example

Copy
Copied
POST /v1/persons/{person_id}/identification_eligibility_checks
{
  "method": "idnow"
}

Response example

The API call returns a response as to whether the person is eligible for identifying with a particular method or not. In case of failure, a reason is provided in the field failure_reason.

Copy
Copied
{
    "method": "idnow",
    "eligible": true,
    "failure_reason": "null"
}

Click here to view the full API reference

GET List supported documents for a person identification

Prior to redirecting your customer to complete the identification process, you can fetch the supported documents to share it with the customer beforehand.

This endpoint returns an array of document types that a customer may use to identify themselves along with a list of allowed issuing countries. The issuing_countries are provided as ISO country codes (ISO-3166-1 alpha 2). If the customer does not provide a supported document type in the identification process, then their identification will eventually fail.

Request URL

Copy
Copied
GET /v1/persons/{person_id}/identifications/{id}/supported_documents

Click here to view the full API reference

POST Create 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, select idnow.
  • language: The customer's preferred language for the identification process. Possible values are EN and DE.
  • proof_of_address_type: The type of document submitted by the customer as a proof of address. This field is mandatory if the customer's identification document does not include their address.
  • proof_of_address_issued_at: The date when the proof of address document was issued. This field is mandatory if the customer's identification document does not include their address. It must NOT be older than 6 months.
attention

This endpoint does not send a request to the identification provider to start the identification process.

Request example

Copy
Copied
POST /v1/persons/{person_id}/identifications
{
  "method": "idnow",
  "language": "DE",
  "proof_of_address_type": "GAS_BILL",
  "proof_of_address_issued_at": "2022-03-03"
}

Response example

The API call returns an identification object with a unique id, the identification_id, as well as the identification status, set initially to created.

Copy
Copied
{
    "id": "6dc54352d6793a892e0702850d07b831cidt",
    "reference": null,
    "url": null,
    "status": "created",
    "completed_at": null,
    "method": "idnow",
    "proof_of_address_type": "GAS_BILL",
    "proof_of_address_issued_at": "2022-03-03",
    "language": "DE",
    "iban": null,
    "terms_and_conditions_signed_at": null,
    "authorization_expires_at": null,
    "confirmation_expires_at": null
}

Click here to view the full API reference.

PATCH Request person identification

This endpoint triggers the identification flow with IDnow for the specific customer. The status of the identification will change to pending after calling this endpoint.

Request URL

Copy
Copied
PATCH /v1/persons/{person_id}/identifications/{id}/request

Response example

The API call returns the identification object with the status pending. The status remains pending until the customer completes the identification. Additionally, the payload includes the url (valid for 14 days), which the customer can use to identify via the web browser, and the reference, which is the identification token (format: ABCDEFGH ), an internal IDnow identifier the customer can use to video-identify through IDnow's mobile application (available on iOS and Android).

Copy
Copied
{
    "id": "6dc54352d6793a892e0702850d07b831cidt",
    "reference": "TST-KCCEY",
    "url": "https://go.test.idnow.de/solarisbankvideoidentsandbox/identifications/6dc54352d6793a892e0702850d07b831cidt",
    "status": "pending",
    "completed_at": null,
    "method": "idnow",
    "proof_of_address_type": "GAS_BILL",
    "proof_of_address_issued_at": "2022-03-03",
    "language": "DE",
    "iban": null,
    "terms_and_conditions_signed_at": null,
    "authorization_expires_at": null,
    "confirmation_expires_at": null,
    "estimated_waiting_time": 60
}

Click here to view the full API reference.

Redirect the customer to IDnow to complete the identification process. You can also share with the customer the supported documents that they must present during the session.

IDnow Video-identification process

  • Before being put in touch with a video identification agent, your customer is redirected to an IDnow-branded landing page, where they are asked to give their consent to IDnow's Terms & Conditions and confirm that they have a valid ID document at hand. This ID document will be shown via webcam to the agent during the video identification.

  • Additionally, your customer must also provide their valid mobile number during their identification. IDnow agent will verify this mobile number by sending an SMS OTP, which the customer will need to provide during the call. Solarisbank will re-use the verified mobile number of a successful IDnow video identification as the customer's verified mobile number.

  • Once connected with an IDnow agent, your customer is greeted on behalf of Solarisbank ( « You are identifying for a service of Solarisbank » ) or on your behalf ( « You are identifying for a service of /Your Brand Name/, empowered by Solarisbank » ), depending on the setup you have agreed upon with Solarisbank.

  • The call takes place either in English or in German. The agent goes on to verify the customer's mobile number and the customer's data, such as first_name and last_name. In addition, the agent populates specific additional attributes of the person resource during the call.

note

While most video identifications are immediately set to successful, an identification status could be set to an intermediary status pending_successful. In such cases, a second-line agent at IDnow reviews the outcome of the video identification. This process typically takes minutes but can take up to 24 hours before the identification status is updated to a final successful status. However, you can already offer services to the customer until the review results.

GET Retrieve person identification

This endpoint returns a completed person identification (i.e., the person identification process was successful). If you use the include_documents filter, this method will also return the documents submitted by the customer during the identification process.

To download any of the documents submitted during the identification process, you can use the document unique id and download the files using the Document resource endpoints.

Request URL

Copy
Copied
GET /v1/persons/{person_id}/identifications/{id}

Response example

Copy
Copied
{
  "id": "6dc54352d6793a892e0702850d07b831cidt",
  "reference": "TST-KCCEY",
  "url": "https://go.test.idnow.de/solarisbankvideoidentsandbox/identifications/6dc54352d6793a892e0702850d07b831cidt",
  "status": "successful",
  "completed_at": "2022-07-14T18:18:28.000Z",
  "method": "idnow",
  "proof_of_address_type": "GAS_BILL",
  "proof_of_address_issued_at": "2022-03-03",
  "language": "DE",
  "person_id": "7cf09c3c5547b974a664201f24b454eecper",
  "address": {
    "line_1": "Amrumerstrasse",
    "line_2": "14",
    "postal_code": "13353",
    "city": "Berlin",
    "country": "DE"
  },
  "documents": [
    {
      "id": "448b75fa1c57eecda41d91c66c22faa6cdoc",
      "name": "file1.pdf",
      "content_type": "application/json",
      "document_type": "KYC_REPORT",
      "size": 803580
    },
    {
      "id": "94eb22a9311be9a1fbb698c448b0b337cdoc",
      "name": "file2.jpg",
      "content_type": "image/jpeg",
      "document_type": "SIGNATURE",
      "size": 25349
    }
  ]
}

Click here to view the full API reference.

Other identification endpoints


Compliance questions

Our legal and compliance team might have additional questions or require further information from your customers during the legal identification process.

For this purpose, you have to implement the following additional endpoints in your solution:

  • Get the compliance questions posted by Solaris.
  • Redirect the questions to your customers and collect their answers.
  • Forwards the answers to Solaris.
  • Mark the identification as ready for review to resume the legal identification process

In cases where Solaris requires more clarity on certain topics during the business identification, you will receive a notification on the BUSINESS_IDENTIFICATION webhook. Afterward, you need to call the GET Retrieve a business identification to get the details.

If Solaris has compliance questions for the business, the payload will have the following fields with these values:

  • legal_identification_status = information_required
  • legal_identification_missing_information = COMPLIANCE_QUESTIONS

These questions are created by Solaris, and you are required to redirect them to your business customer and provide the ability for them to answer those questions.

GET Retrieve compliance questions

To get the compliance questions, call the following endpoint:

Request URL

Copy
Copied
GET /v1/businesses/{business_id}/identifications/{business_identification_id}/legal_identification/questions

Response example

The API call returns an object, including the question(s) with a unique ID and the question text. You have to redirect these questions to your customers and get their answers in your workflow.

Copy
Copied
{
  "question_id": "ebb463137becc09788dfe21fc066e670qstn",
  "question_text": "Please provide the license for security / guarding services (Bewachungsgewerbe): § 34a GewO",
  "legal_identification_id": "14eb210435e09ab7f6a06c8b9b86ce27lid",
  "business_identification_id": "4c74c804eaea5d2a2d64ef400a27a4d3bid",
  "business_id": "880bbac68a34add190786b9c74f4c82fcbiz",
  "answer_id": null,
  "answer_text": "string",
  "asked_at": "2021-07-16T13:38:06.000Z",
  "answered_at": null
}

Click here to view the full API reference.

You should provide your customers with a dedicated page to answer all the questions separately.

Create answers for compliance questions

After getting the answers to the compliance questions from your customer, call the following endpoint to share the answers with Solaris.

note

You have to make a separate API call for each answer.

Request URL

You have to provide the question's answer in the request body of this endpoint.

Copy
Copied
POST /v1/businesses/{business_id}/identifications/{business_identification_id}/legal_identification/questions/{question_id}/answers

Click here to view the full API reference.

PATCH Update business legal identification

After adding all answers to the compliance questions, use this method to update the legal identification and mark it as ready to resume the identification process. Calling this endpoint changes the legal_identification_status from information_required to pending.

Request URL

Copy
Copied
PATCH /v1/businesses/{business_id}/identifications/{id}/legal_identification/mark_as_ready

Click here to view the full API reference.


Customer due diligence

attention

In addition to the identification process, Solaris runs different risk screening and customer vetting checks (i.e., Customer Due Diligence process) on the following:

  • The business legal entity: Result is returned in the GET business resource.
  • All legal representatives: Result is returned in the GET person resource.
  • All beneficial owners: Result is returned in the GET person resource.
  • Any other authroized person on the business account: Result is returned in the GET person resource.

The status of the risk screenings of all those entities must be green for the business to be onboarded.

Check the related guide for more information.


Identification statuses

There are three different statuses related to the business identification process:

1. Solarisident status

The Solarisident process includes both legal identification and the video-identification. It's represented on the system with the property status, which is automatically set to created when creating a business identification.

Successful legal identification and video identification(s) set the status of the business identification (solarisident) to successful.

Check the appendix section for more information about the different status values and descriptions.

2. Legal identification status

The legal identification process is represented by the property legal_identification_status. When a business identification is created, this value is automatically set to created.

Check the appendix section for more information about the different status values and descriptions.

Video identification process

For each natural person undergoing video identification, a unique video-identification object is returned in the API response, including status, which is IDnow status, initially set to pending as long as the corresponding legal representative has not video-identified with idnow.

Check the appendix section for more information about the different status values and descriptions.


Step 7: Create business account

Congratulations

You've successfully completed the business identification process, and you can now open a business account for the customer.

Present the customer with a button to open their account, using the following formulations for the button text:

Order / Open account

Bestellen / Konto eröffnen

If you wish to use a different text, please consult with your Onboarding Project Manager.

API reference

Visit the following links to find all the endpoints related to person accounts, including related properties and examples.

POST Create a business account

After the customer clicks the button to open an account, call this API endpoint and include the business's business_id in the request URL. Additionally, specify the account type by adding the following property in the request body:

  • type: The type of account. Set the value to CHECKING_BUSINESS.
warning

If the company for whom you are opening a business account is in foundation (i.e., in Gründung), then the account will be active for 15 weeks. If the company does not transition to "founded" during this period, then Solaris will put a DEBIT_BLOCK on the account.

Request URL:

Copy
Copied
POST /v1/businesses/{business_id}/accounts
{
    "type": "CHECKING_BUSINESS",
    "purpose": "primary" 
}

Response example

The API call returns an object with a unique ID, which is the account_id as well as the account details, such as IBAN and BIC.

Copy
Copied
{
  "id": "efe320cbe121418c982b6af45bc9cacc",
  "iban": "DE43110101005555555555",
  "bic": "SOBKDEB2XXX",
  "type": "CHECKING_BUSINESS",
  "purpose": "primary",
  "currency": "EUR",
  "balance": {
    "value": 1000,
    "unit": "cents",
    "currency": "EUR"
  },
  "available_balance": {
    "value": 1000,
    "unit": "cents",
    "currency": "EUR"
  },
  "locking_status": "NO_BLOCK",
  "locking_reasons": "AML_FOLLOW_UP_OVERDUE",
  "account_limit": {
    "value": 1000,
    "unit": "cents",
    "currency": "EUR"
  },
  "person_id": "0ba2211cab11af6094d60ead81f2bd9dcper",
  "business_id": "52e6a9b8a559d842ed7d8901b0e1bf4bcbiz"
}

Click here to view the full API reference.


Step 8: Create authorized person(s)

An authorized person is a natural person who is authorized to act on the account. The authorized person receives authorization challenges on their verified mobile number to authorize transactions. Authorized persons can be:

  • Legal representatives of the business. Please note that legal representatives are by default authorized to act on the business's account. However, all legal representatives must be explicitly set as authorized_person on our system.
  • Other persons authorized by a legal representative to act on the account. Legal representatives authorizing other persons on the account must have their type_of_representation set to ALONE or null.

API reference

Visit the following links to find all the endpoints related to business authorized persons, including related properties and examples.

POST Create authorized person

note

You must first create a person resource for each authorized person. See previous sections for instructions.

This method links a person to a business account as an authorized_person, as long as the following attributes of the person resource are populated:

  • address_line_1 (street)
  • birth_city
  • birth_date
  • country
  • first_name
  • last_name
  • nationality
  • salutation
attention

Legal representatives can be added as authorized_person without authorization. However, to assign other natural person(s) who are not legal representatives as authorized persons on the business account, any legal representative with type_of_representation set to ALONE or null must approve the action by confirming the request via 2FA. See Step 10.

Request URL:

You must add the person_id of the person who will act as an authorized person on the account (e.g., legal representative) in the request body.

Copy
Copied
POST /v1/businesses/{business_id}/accounts/{account_id}/authorized_persons

Example response:

Copy
Copied
{
  "id": "568b5241afd0ce435c56ea0efef2bd0dcpea",
  "authorized_person_id": "3b8cfd40fb4dce5a231251ea06a014cper"
}

Click here to view the full API reference.


Step 9: Create and activate card

Now that you have fully onboarded the business, you can create a card for them.

API reference

Visit the following link to find all the endpoints related to cards, including related properties and examples.

POST Create a card for a business

This endpoint initiates the card creation process for the customer. Include the account_id returned by the POST Create an account API call (in the previous step) along with the person_id of the legal representative in the request URL. Additionally, include the following properties in the request body:

  • line_1: The cardholder's name (i.e., legal representative) which will be printed on the card. Pay attention to the special rules governing card names mentioned here.
  • type: The card type. Possible values to choose from for retail customers are:MASTERCARD_BUSINESS_DEBIT,VISA_BUSINESS_DEBIT, VIRTUAL_VISA_BUSINESS_DEBIT, and VIRTUAL_MASTERCARD_BUSINESS_DEBIT.
note

The business card holder is the business' legal representative.

Request URL:

Copy
Copied
POST /v1/persons/{person_id}/accounts/{account_id}/cards

Response example:

A card will be created in the system, and Solaris will issue a card creation request with SIA. The API will respond with the ID of the card and the status of PROCESSING.

Copy
Copied
{
  "id": "8febdba4912a747808ccc6f95f82aaa4",
  "status": "PROCESSING"
}

Click here to view the full API reference.

GET Retrieve card details

Before you can activate the card, make the following API call to retrieve the details of the card. The status must have the value of INACTIVE. The status change may take a few seconds after the initial POST Create card request, as Solaris submits card creation requests asynchronously to SIA.

Request URL:

Copy
Copied
GET /v1/cards/{card_id}

Response example:

The API will respond with the card details when the status changes to INACTIVE. Until then, the response will look the same as the one from the previous call.

Copy
Copied
{
  "id": "8febdba4912a747808ccc6f95f82bbb4",
  "type": "VISA_BUSINESS_DEBIT",
  "status": "INACTIVE",
  "expiration_date": "2022-09-07",
  "person_id": "2444a25c7485027c4737fca70f10c958",
  "account_id": "33c91e76c888d578e6ce1b22086cc7e7",
  "business_id": null,
  "representation":{ 
    "line_1": "FIRSTNAME LASTNAME", 
    "masked_pan": "434970******4567", 
    "formatted_expiration_date": "09/22" 
  },
  "creation_date": "2020-02-31T10:23:16.000Z",
  "sia_account_number": "500001650679"
}

Click here to view the full API reference.

POST Activate a card

Once the card is INACTIVE and you have retrieved the details using the previous API call, you can call the following endpoint:

Request URL:

Copy
Copied
POST /v1/cards/{card_id}/activate

Response example:

The status of the card will change to ACTIVE, and the customer will be able to use it right away.

Copy
Copied
{
  "id": "8febdba4912a747808ccc6f95f82bbb4",
  "type": "VISA_BUSINESS_DEBIT",
  "status": "ACTIVE",
  "expiration_date": "2022-09-07",
  "person_id": "2444a25c7485027c4737fca70f10c958",
  "account_id": "33c91e76c888d578e6ce1b22086cc7e7",
  "business_id": null,
  "representation": {
    "line_1": "FIRSTNAME LASTNAME",
    "masked_pan": "537458******4567",
    "formatted_expiration_date": "09/22"
  }
}

Click here to view the full API reference.

Card push provisioning

If your customer wants to use their card in a digital wallet, such as Google Pay, Apple Pay, or Samsung Pay wallet, implement the relevant endpoints in the Card Push Provisioning guide.


Step 10: Create other optional roles

In this step, you can create other optional roles based on your specific use cases. The optional roles are:

  • Additional authorized_person: You can add other persons who are not legal representatives as authorized persons on the business account.
  • Signee: A signee is a natural person who is not a legal representative or an authorized person, but is granted certain rights on the business account.

Create additional authorized person(s)

In this step, you can add other persons, who are not legal representatives as authorized_person. This action triggers a change request operation and must be authorized by one of the business's legal representatives.

POST Create authorized person

This endpoint assigns the authorized_person role to a person on the business account. Please note that this action triggers the Change request process and the legal representative must authorize this action via 2FA.

Important
  • You must create the person resource first before assigning the authorized_person role.
  • The person must be video identified. You have to trigger manual video identification for the person by following the steps in section Manual video identification.

Request URL:

Copy
Copied
POST /v1/businesses/{business_id}/accounts/{account_id}/authorized_persons

Response example:

The API call returns an object with a unique ID, and the URL needed to authorize the action.

Copy
Copied
{
  "id": "d6c778822b2d7bd3b778935bcfd0d1d3csc",
  "status": "AUTHORIZATION_REQUIRED",
  "updated_at": "2017-07-15T14:04:35.000Z",
  "url": ":env/v1/change_requests/:id/authorize"
}

Click here to view the full API reference.

POST Authorize adding an additional authorized person

In this step, you have to call the URL provided in the response of the previous API call and specify the person_id of the legal representative who will authorize the request, along with the verified mobile_number to which the one-time-password (OTP) will be sent.

Request URL:

Copy
Copied
POST /v1/change_requests/{change_request_id}/authorize
{
  "person_id":"5af2ea4271038d5c53e68ccbf4fe43b3cper",
  "delivery_method": "mobile_number"
}

The API call sends a 6-digit OTP to the verified mobile number of the legal representative.

POST Confirm adding an additional authorized person

This endpoint confirms the authorization request done in the previous API call. After the legal representative enters the received OTP, call this endpoint to confirm the operation.

Request URL:

Copy
Copied
POST /v1/change_requests/{change_request_id}/confirm
{
  "person_id":"5af2ea4271038d5c53e68ccbf4fe43b3cper",
  "tan": "123456"
}

Create signee

Signees are persons who are not legal representatives or authorized persons, but have the power to:

  • sign certain documents, or
  • have access to certain information, or
  • execute certain actions

This is an optional role that can be added after a successful business identification.

POST Create signee

This endpoint assigns the signee role to the person related to the givenbusiness.

attention

You have to create the person resource first (if not created) and then assign the role to the person.

Request URL:

Copy
Copied
POST /v1/businesses/{business_id}/signees

Response example:

The API call returns an object with a unique ID.

Copy
Copied
{
  "id": "string",
  "person_id": "string",
  "business_id": "string"
}

Click here to view the full API reference.


What's next?

Congratulations! You've successfully completed the business onboarding process for Digital Banking and Cards.

Check the following appendices section for additional information on enums and testing data.

Mandatory features

You must implement the following additional mandatory features in your solution.

Compliance requirements

Authentication & authorization

Digital Banking & Cards


Appendix I: Enums

CRS company type

The field crs_company_type is required to collect the mandatory tax information and create the business tax_identification resource. The following table includes the possible values for this field and their descriptions:

EnumDescription
FE_REPORTINGReporting financial institution.
FE_NON_REPORTINGNon-reporting financial institution.
NFE_ACTIVE_OTHERActive NFE - A corporation whose shares are regularly traded on at least one recognized stock exchange (or a company affiliated with it), a government entity, an international organization, a central bank, or a legal entity wholly owned by NFE
NFE_PASSIVE Passiver NFEPassive NFE - Non-active NFE
NFE_PASSIVE_INVESTMENTInactive NFE/NFFE or an Investment Entity that is a Financial Institution in a jurisdiction not participating in the CRS and that is managed by another Financial Institution

Document types

The following table includes the possible values for the field document_type and their descriptions.

EnumDescription
ANNUAL_FINANCIAL_STATEMENTA business or a company's annual financial statement.
KYC_REPORTThe KYC report generate after a successful customer identification.
ID_DOCUMENTAn person's identification document, such as passport or ID.
SIGNATUREA signature example.
PICTUREA picture or a scanned document of any other type.
QES_DOCUMENTA document related to a Qualified Electronic Signature (QES).
SIGNED_CONTRACTA signed contract of any kind.
SIGNED_QES_DOCUMENTA document signed by a Qualified Electronic Signature (QES).
REGISTER_CHECKA register check.
REGISTER_EXTRACTA business or a company's commercial register excerpt or a similar document.
FOUNDATION_DOCUMENTThe foundation document of a company or business.
SCHUFA_COMPACT_REPORTA compact SCHUFA report.
SCHUFA_GWG_REPORTA GWG SCHUFA report.
SCHUFA_FULL_REPORTA full SCHUFA report about a person.
SCHUFA_SHORT_REPORTA short SCHUFA report about a person.
CREDIT_AGENCY_REPORTA report issued by a credit agency.
SHARE_HOLDERS_AGREEMENTA business or a company's shareholders agreement.
SHAREHOLDERS_LISTA business or a company's shareholders list.
TRADING_LICENSEA business or a company's trading license.
TRANSPARENCY_REGISTER_EXTRACTAn extract of a transparency register.
INVOICEAn invoice of any kind.
OTHERAny other type of document.
VIDEOA video of any kind.
VAT_CERTIFICATEVAT registration certificate

Idnow status

The following table includes the possible values for the field status for the video identification process carried out by IDnow and the related description of each status.

StatusDescription
createdThe identification resource has been created for the customer.
pendingThe identification process has been triggered and the video identification URL and reference are generated. You must redirect the customer to the URL to complete the identification process with IDnow.
pending_successfulThe video identification was successful, but will be reviewed by the identification provider. You can already offer banking services to the customer at this stage. Once reviewed by the provider, the identification will be marked either as resolved positively (successful) or negatively (failed or canceled). A bank account will be automatically blocked if the identification is eventually marked as failed or canceled.
pending_failedThe identification is currently under review. You cannot offer banking services to the customer at this stage. The identification might eventually turn to successful, but it is unlikely.
successfulThe video identification was successful. The customer can be onboarded. Please note that the customer's data might have been updated during the identification session.
abortedThe customer aborted the identification process. The customer can still video-identify using the same URL.
canceledThe provider canceled the video identification. The customer should video-identify again using the same URL.
failedThe identification was unsuccessful. You *cannot onboard the customer or offer any banking services to them.

IDnow provides a reason for the canceled and aborted status. No reason can be disclosed for the final failed status.

Identification documents

  1. List of the accepted passports for videoIdent: here
  2. List of accepted passports for postIdent: here
  3. Search for a identification document: here

List of passports with address

The following table shows the list of documents, that has the address included in the identification document, and allows you to perform identification without the proof of address document.

DocumentIssuer CountryType (ID/PP)
MLT-BO-02001MaltaID
MLT-BO-03001MaltaID
SVK-BO-02001SlovakiaID
SVK-BO-05001SlovakiaID
SVK-BO-04001SlovakiaID
ITA-BO-04003ItalyID
ITA-BO-03004ItalyID
ITA-BO-03002ItalyID
ITA-BO-03001ItalyID
ITA-BO-03003ItalyID
DEU-BO-01003GermanyID
DEU-BO-02001GermanyID
SGP-BO-01001-ASingaporeID
SGP-BO-01001SingaporeID
CZE-BO-04001Czech RepublicID
CZE-BO-04002Czech RepublicID
IND-AO-01001IndiaPassport
CHN-AO-04003ChinaPassport
BGR-AO-01005BulgariaPassport
SVN-AO-02001-02003SloveniaPassport
SVN-AO-02004SloveniaPassport
SVN-BO-02001SloveniaID
SVN-AO-01004SloveniaPassport
POL-BO-02001-02003PolandID
ESP-BO-03001SpainID
ESP-BO-05001SpainID
HRV-BO-02001CroatiaID
HRV-AO-02001CroatiaPassport
FRA-BO-02002FranceID
FRA-AO-03001-03003FrancePassport
MAR-AO-02001MoroccoPassport

Legal form

The following are the possible values for the field legal_form per country.

Austria

  • AT_SE
  • AT_OHG
  • AT_KG
  • AT_GESMBH
  • AT_EG
  • AT_GBR
  • AT_EV
  • AT_SOLE_PROPRIETORSHIP
  • AT_SELF_EMPLOYED

Belgium

  • BE_SNC
  • BE_SCS
  • BE_SA
  • BE_SPRL
  • BE_SE
  • BE_SCA
  • BE_SC
  • BE_SCRI
  • BE_SEP
  • BE_SF
  • BE_SPRLU
  • BE_SOLE_PROPRIETORSHIP
  • BE_SELF_EMPLOYED

Czech Republic

  • CZ_AS
  • CZ_SRO
  • CZ_KS
  • CZ_VOS
  • CZ_DRUZSTVO
  • CZ_FYZICKA_OSOBA
  • CZ_SOLE_PROPRIETORSHIP
  • CZ_SELF_EMPLOYED

France

  • FR_SNC
  • FR_SCS
  • FR_SA
  • FR_SAS
  • FR_SARL
  • FR_SE
  • FR_SCA
  • FR_EURL
  • FR_SC
  • FR_SCOP
  • FR_SOLE_PROPRIETORSHIP
  • FR_SELF_EMPLOYED

Germany & others

Solaris accepts the following legal forms for companies in Germany and other countries that are not specified in our system:

  • AG
  • EG
  • EK
  • GBR
  • GMBH
  • GMBH_CO_KG
  • GMBH_I_GR
  • KG
  • KGAA
  • LTD
  • MUNICIPALITY
  • MUNICIPAL_COMPANY
  • NONE
  • OHG
  • PARTG
  • PRIVATE_PERSON
  • SAVINGS_BANK
  • SE
  • SELF_EMPLOYED
  • SOLE_PROPRIETORSHIP
  • UG
  • UG_I_GR
  • FOREIGN_CORPORATION

Italy

  • IT_SE
  • IT_SNC
  • IT_SAS
  • IT_SPA
  • IT_SRL
  • IT_SAPA
  • IT_SCPA
  • IT_SCARL
  • IT_SCOP
  • IT_SS
  • IT_SOLE_PROPRIETORSHIP
  • IT_SELF_EMPLOYED

Luxembourg

  • LU_SNC
  • LU_SCS
  • LU_SA
  • LU_SARL
  • LU_SE
  • LU_SCA
  • LU_SCSP
  • LU_SARLS
  • LU_SC
  • LU_SCOP
  • LU_SOLE_PROPRIETORSHIP
  • LU_SELF_EMPLOYED

Portugal

  • PT_SNC
  • PT_SC
  • PT_SA
  • PT_LDA
  • PT_SE
  • PT_SUNI
  • PT_EIRL
  • PT_SCIV
  • PT_COP
  • PT_SOLE_PROPRIETORSHIP
  • PT_SELF_EMPLOYED

Spain

  • ES_SRC
  • ES_SC
  • ES_SA
  • ES_SAS
  • ES_SRL
  • ES_SE
  • ES_SCA
  • ES_SLNE
  • ES_SAU
  • ES_SLU
  • ES_SPRO
  • ES_SCOP
  • ES_SOLE_PROPRIETORSHIP
  • ES_SELF_EMPLOYED

The Netherlands

  • NL_VOF
  • NL_CV
  • NL_NV
  • NL_BV
  • NL_SE
  • NL_CVOA
  • NL_COPV
  • NL_MTS
  • NL_SOLE_PROPRIETORSHIP
  • NL_SELF_EMPLOYED

United Kingdom

  • GB_SE
  • GB_PARTNERSHIP
  • GB_LP
  • GB_PLC
  • GB_LTD
  • GB_COPS
  • GB_UAS
  • GB_PRCU
  • GB_PUCU
  • GB_SOLE_PROPRIETORSHIP
  • GB_SELF_EMPLOYED

Legal identification status

The following table includes the possible values for the field legal_identification_status for the legal identification process of the business legal entity carried out by Solaris and the related description of each status.

StatusDescription
createdThe legal identification was initiated and will be conducted shortly.
information_requiredThe legal identification cannot be conducted because Solaris is missing one or more required documents. Refer to the legal_identification_missing_information array to determine which document(s) is/are missing.
blocked_internallyThe legal identification is put on hold due to additional internal checks
successfulThe legal identification was conducted successfully.
failedThe legal identification was marked as failed. Refer to the legal_identification_reason to find out why.
expiredThe legal identification was not updated to terminal status in 90 days

NACE code

The Statistical Classification of Economic Activities in the European Community, commonly known as NACE, is the industry standard classification system used in the European Union.

NACE uses four hierarchical levels:

  • Level 1: 21 sections identified by alphabetical letters A to U;
  • Level 2: 88 divisions identified by two-digit numerical codes (01 to 99);
  • Level 3: 272 groups identified by three-digit numerical codes (01.1 to 99.0);
  • Level 4: 629 classes identified by four-digit numerical codes (01.11 to 99.00).

The first four digits of the code, which is the first four levels of the classification system, are the same in all European countries. National implementations may introduce additional levels. The fifth digit might vary from country to country and further digits are sometimes placed by suppliers of databases.

For example, if the NACE code A 01.11 (Growing of cereals (except rice), leguminous crops and oil seeds) would apply to the person/business, supply the value like such:

nace_code = "A 01.11"
info

Please note that using NACE codes replaces using the fields industry and industry_key.

Please see the following resources for a complete list of NACE codes:

Solarisident status

The following table includes the possible values for the field status, which refers to the overall status of the business identification process (BKYC), including the legal identification of the business legal entity carried out by Solaris and the video identification of the business's natural persons.

StatusDescription
createdThe legal identification was initiated and will be conducted shortly.
pendingA business identification (solarisIdent) is mark_as_successful by partner
successfulBoth steps of the business identification process (solarisIdent) were completed successfully.
failedThe business identification process (solarisIdent) will not continue. The business couldn't be identified. A reason will not be provided. Verify the status of either the legal identification or the individual video identifications instead.
expiredThe business identification process (solarisIdent) was not completed within six months of being initiated. Either the legal identification or one of the individual video identifications was not finished on time.

Registration district and registration issuer

The following are the possible values for the fields registration_district and registration_issuer. These fields are only relevant for customers in Germany.

  • AACHEN
  • ALTENBURG
  • AMBERG
  • AMTSGERICHT
  • ANSBACH
  • APOLDA
  • ARNSBERG
  • ARNSTADT
  • ARNSTADT_ZWEIGSTELLE_ILMENAU
  • ASCHAFFENBURG
  • AUGSBURG
  • AURICH
  • BAD_HERSFELD
  • BAD_HOMBURG_VDH
  • BAD_KREUZNACH
  • BAD_OEYNHAUSEN
  • BAD_SALZUNGEN
  • BAMBERG
  • BAYREUTH
  • BERLIN_CHARLOTTENBURG
  • BIELEFELD
  • BOCHUM
  • BONN
  • BRAUNSCHWEIG
  • BREMEN
  • CHEMNITZ
  • COBURG
  • COESFELD
  • COTTBUS
  • DARMSTADT
  • DEGGENDORF
  • DORTMUND
  • DRESDEN
  • DUISBURG
  • DUEREN
  • DUESSELDORF
  • EISENACH
  • ERFURT
  • ESCHWEGE
  • ESSEN
  • FLENSBURG
  • FRANKFURT_AM_MAIN
  • FRANKFURT_ODER
  • FREIBURG
  • FRIEDBERG
  • FRITZLAR
  • FULDA
  • FUERTH
  • GELSENKIRCHEN
  • GERA
  • GIESSEN
  • GOTHA
  • GOETTINGEN
  • GREIFSWALD
  • GREIZ
  • GUESTROW
  • GUETERSLOH
  • HAGEN
  • HAMBURG
  • HAMM
  • HANAU
  • HANNOVER
  • HEILBAD_HEILIGENSTADT
  • HILDBURGHAUSEN
  • HILDESHEIM
  • HOF
  • HOMBURG
  • INGOLSTADT
  • ISERLOHN
  • JENA
  • KAISERSLAUTERN
  • KASSEL
  • KEMPTEN_ALLGAUE
  • KIEL
  • KLEVE
  • KOBLENZ
  • KOELN
  • KOENIGSTEIN
  • KORBACH
  • KREFELD
  • LANDAU
  • LANDSHUT
  • LEBACH
  • LEIPZIG
  • LEMGO
  • LIMBURG
  • LUEBECK
  • LUDWIGSHAFEN_A_RHEIN_LUDWIGSHAFEN
  • LUDWIGSLUST
  • LUENEBURG
  • MAINZ
  • MANNHEIM
  • MARBURG
  • MEININGEN
  • MEMMINGEN
  • MERZIG
  • MOENCHENGLADBACH
  • MONTABAUR
  • MUEHLHAUSEN
  • MUENCHEN
  • MUENSTER
  • NEUBRANDENBURG
  • NEUNKIRCHEN
  • NEURUPPIN
  • NEUSS
  • NORDHAUSEN
  • NUERNBERG
  • OFFENBACH_AM_MAIN
  • OLDENBURG_OLDENBURG
  • OSNABRUECK
  • OTTWEILER
  • PADERBORN
  • PASEWALK
  • PASSAU
  • PINNEBERG
  • POESSNECK
  • POESSNECK_ZWEIGSTELLE_BAD_LOBENSTEIN
  • POTSDAM
  • RECKLINGHAUSEN
  • REGENSBURG
  • RIBNITZ_DAMGARTEN
  • ROSTOCK
  • RUDOLSTADT
  • RUDOLSTADT_ZWEIGSTELLE_SAALFELD
  • SAARBRUECKEN
  • SAARLOUIS
  • SCHWEINFURT
  • SCHWERIN
  • SIEGBURG
  • SIEGEN
  • SOEMMERDA
  • SONDERSHAUSEN
  • SONNEBERG
  • ST_INGBERT_ST_INGBERT
  • ST_WENDEL_ST_WENDEL
  • STADTHAGEN
  • STADTRODA
  • STEINFURT
  • STENDAL
  • STRALSUND
  • STRAUBING
  • STUTTGART
  • SUHL
  • TOSTEDT
  • TRAUNSTEIN
  • ULM
  • VOELKLINGEN
  • WALSRODE
  • WAREN_MUERITZ
  • WEIDEN_ID_OPF
  • WEIMAR
  • WETZLAR
  • WIESBADEN
  • WISMAR
  • WITTLICH
  • WUPPERTAL
  • WUERZBURG
  • ZWEIBRUECKEN

Registration type

  • AT_FB_CD
  • AT_GEM_CD
  • AT_IDENT_CD
  • AT_LAE_CD
  • AT_ZVR_CD
  • BE_OND_CD
  • BG_BULSTAT_CD
  • BG_OTHER_CD
  • BG_UIC_CD
  • BG_VAT_CD
  • CY_DRCOR_CD
  • CY_NOTAP_CD
  • CY_TIC_CD
  • CY_VAT_CD
  • CZ_ICO_CD
  • CZ_NID_CD
  • DE_GNR_CD
  • DE_HRA_CD
  • DE_HRB_CD
  • DE_NOTAP_CD
  • DE_PR_CD
  • DE_VR_CD
  • DK_CVR_CD
  • DK_FT_CD
  • DK_NOTAP_CD
  • EE_FON_CD
  • EE_RG_CD
  • ES_NIF_CD
  • FI_ALV_CD
  • FI_NOTAP_CD
  • FI_SIRA_CD
  • FI_Y_CD
  • FR_CIB FR_SIREN_CD
  • GEN_IPF_CD
  • GEN_NBR_ENTTY_CD
  • GEN_NCB_ENTTY_CD
  • GEN_NSA_ENTTY_CD
  • GEN_NSI_ENTTY_CD
  • GEN_OTHER_CD
  • GEN_PS_CD
  • GEN_TAX_CD
  • GEN_TRD_RGSTR_ENTTY_CD
  • GEN_VAT_CD
  • GR_AFM_CD
  • GR_IMO_CD
  • HR_MB_CD
  • HR_MBS_CD
  • HR_OIB_CD
  • HU_CEG_CD
  • HU_FB_CD
  • HU_KOZ_CD
  • HU_TOR_CD
  • IE_CRO_CD
  • IE_VAT_CD
  • IT_CCIAA_CD
  • IT_CF_CD
  • IT_UCITS_CD
  • LT_INV_CD
  • LT_JAR_CD
  • LU_RSC_CD
  • LV_FON_CD
  • LV_NBR_CD
  • LV_VAT_CD
  • MT_CNUM_CD
  • MT_OLE_CD
  • MT_VAT_CD
  • NL_KVK_CD
  • NL_RSIN_CD
  • PL_KRS_CD
  • PL_NIP_CD
  • PL_REGON_CD
  • PL_VAT_CD
  • PT_FSA_CD
  • PT_NIF_CD
  • RO_CUI_CD
  • RO_TAX_CD
  • RO_TRN_CD
  • SE_FIN_CD
  • SE_MOM_CD
  • SE_ORG_CD
  • SI_DAV_CD
  • SI_DDV_CD
  • SI_MAT_CD
  • SK_ICO_CD

Appendix II: BKYC required documents

The following table includes the required documents for identification for each legal form:

Legal formRequired documentsDescriptionNotes
GbR
  • SHARE_HOLDERS_AGREEMENT
  • SHARE_HOLDERS_AGREEMENT
  • FOUNDATION_DOCUMENT
  • Shareholder Lists (of Beneficial Owner Companies, possibly also an overview of shareholder/owner structure, insofar as the structure extends over several levels)
  • Articles of association (Gesellschaftsvertrag)
  • Certificate of incorporation (Gründungsurkunde)
Documents must be signed by all business partners. Solaris may request additional information based on the document contents (e.g., all shareholders, distribution of shares, etc). For GmbH/UG & Co. KGs, these requirements apply for the entity that is registered in the trade register as shareholder (i.e., Komplementär-Gesellschafter).
GmbH_CO_KG
  • SHAREHOLDERS_LIST; if not available, then:
  • SHARE_HOLDERS_AGREEMENT; if not available, then:
  • FOUNDATION_DOCUMENT
  • Shareholder Lists (of Beneficial Owner Companies, possibly also an overview of shareholder/owner structure, insofar as the structure extends over several levels)
  • Articles of association (Gesellschaftsvertrag)
  • Certificate of incorporation (Gründungsurkunde)
Document must include a notarial stamp, seal, and signature.
UG_I_GR
  • SHAREHOLDERS_LIST
  • SHARE_HOLDERS_AGREEMENT
  • FOUNDATION_DOCUMENT
  • Shareholder Lists (of Beneficial Owner Companies, possibly also an overview of shareholder/owner structure, insofar as the structure extends over several levels)
  • Articles of association (Gesellschaftsvertrag)
  • Certificate of incorporation (Gründungsurkunde)
Document must include a notarial stamp, seal, and signature.
UG & Co. KG
  • SHAREHOLDERS_LIST; if not available, then:
  • SHARE_HOLDERS_AGREEMENT; if not available, then:
  • FOUNDATION_DOCUMENT
  • Shareholder Lists (of Beneficial Owner Companies, possibly also an overview of shareholder/owner structure, insofar as the structure extends over several levels)
  • Articles of association (Gesellschaftsvertrag)
  • Certificate of incorporation (Gründungsurkunde)
Document must include a notarial stamp, seal, and signature.
AG (not listed)
  • SHAREHOLDERS_LIST
  • SHARE_HOLDERS_AGREEMENT
  • FOUNDATION_DOCUMENT
  • Shareholder Lists (of Beneficial Owner Companies, possibly also an overview of shareholder/owner structure, insofar as the structure extends over several levels)
  • Articles of association (Gesellschaftsvertrag)
  • Certificate of incorporation (Gründungsurkunde)
Document must include a notarial stamp, seal, and signature.
SE (not listed)
  • SHAREHOLDERS_LIST
  • SHARE_HOLDERS_AGREEMENT
  • FOUNDATION_DOCUMENT
  • Shareholder Lists (of Beneficial Owner Companies, possibly also an overview of shareholder/owner structure, insofar as the structure extends over several levels)
  • Articles of association (Gesellschaftsvertrag)
  • Certificate of incorporation (Gründungsurkunde)
Document must include a notarial stamp, seal, and signature.
e.V.
  • SHAREHOLDERS_LIST
  • SHARE_HOLDERS_AGREEMENT
  • FOUNDATION_DOCUMENT
  • Liste der Vorstandsmitglieder
  • Vereinsregisterauszug (no older than three months)
  • Vereinssatzung

Appendix III: Testing samples for GET Search for business commercial registration

The following table includes testing samples for the GET Search for business commercial registration endpoint, including values for the fields country, registration_number, registration_issuer, and name.

CountryRegistration numberRegistration issuerCompany name
DEHRB198673MÜNCHENFLOOR 13 GMBH
DEHRA23670BERLINOHG Erich-Steinfurth-Strasse 7
DEHRA4029WITTLICHSG-AUTO-WASCHTREFF WERNER KG
DEHRB571744STUTTGARTKlima Investment GmbH & Co. KGaA
DEHRB18686BonnTekcor 1. V V UG (haftungsbeschraenkt)
DEHRB54636DUESSELDORFAF Azurit AG
DEHRA204605Stiftung St., JosephStift, Stiftung kirchlichen Rechts
DEHRA94238HAMBURGPR-AUTO Peter Reimann e.K.
ESA46103834----MERCADONA SA
ESN00434391----HYUNDAI MOTOR EUROPE SE
ESB17262213----AUTOLINE SOCIEDAD LIMITADA
ESB19202969----SEIJAS ALONSO YA CIA, S.R.C.
ESG91487967----CASAS Y CAMPOS S.C.
ESW2501222J----COLLIERS INTERNATIONAL INVESTMENT & ASSET MANAGEMENT
ESD81586729----COLGATE PALMOLIVE HOLDING S COM P A
FR513937359----PARISOL
FR332199462----NATIOCREDIMURS - SOCIETE EN NOM COLLECTIF
FR582051843----GASTINNE RENETTE SOCIETE EN COMMANDITE SIMPLE
FR304463284----AVENTIS PHARMA S.A.
FR807956966----MENTION PARC AUTO
FR539358994----SOCIETE EN COMMANDITE PAR ACTIONS ETCHE ONA
FR438755092----SOC EUROPEEN DE BREVETS AUTOMOBILES SE
ITTO824350----BUSINESS NETWORK S.P.A.
ITME247881----TORO S.C.R.L.
ITGE447187----SOCIET SEMPLICE MONT BLANC
ITPN51072----S.N.C. GEFCO DI LUIGI DAL BON & C
ITAO43300----CALDARELI SERVIZI ASSICURATIVI S.A.A DI VALTER CALDARELLI
ITMI1712979----LUIGI DE PRA S.A.P.A
ITAN146244----FIAT SERVIZI PER L'INDUSTRIA S.C.P.A O SEMPLICEMENTE SE.P.IN
ITFI514669----SCLE DELTA TRAZIONE SOCIETA' CONSORTILE A RESPONSABILITA
ITTO1215674----S.R.L. SPORTIVA DILETTANTISTICA SPORT LAB
ITTP131030----MAIORANNA GIUSEPPE PICCOLO IMPRENDITORE EDILE
note

For non DEcompanies, the registration_issuer is not necessary.


Appendix IV: Tax Identification Number (TIN) per country

France TIN

In France, the TIN is 15 digits long, and the last two digits are letters.

Italy TIN

The Italian equivalent of the TIN is the codice fiscale. It is calculated by a legally established algorithm and must be verified by your frontend implementation.

Codice fiscale validation

Please refer to the decree of the Finance Ministry for the source of this algorithm.

Example: RSSMRA99D20F205R

Position12345678910111213141516
DigitRSSMRA99D20F205R
Position in fiscal codeMeaning of digitsHow it is computed
1-3Last nameLast names composed of multiple parts are always considered as a continuous sequence of characters; For women, this is always the maiden name; If the surname has three or more consonants, then the first, second, and third consonants are used; If the surname has two consonants, then the first and second consonants and first vowel are used; If the surname has one consonant and two vowels, then the first consonant and then the first and second vowels are used; If the surname has one consonant and one vowel, then the first consonant is used, then the first vowel, then "x"; If the surname has only two vowels, then the first and second vowel are used, followed by "x".
4-6First nameLast names composed of multiple parts are always considered as a continuous sequence of characters; If the first name has three or more consonants, then the first, second, and third consonants are used; If the first name has two consonants, then the first and second consonants and the first vowel are used; If the first name has one consonant and two vowels, then the first consonant and the first and second vowels are usedd; If the first name has one consonant and one vowel, then the first consonant and first vowel are used, followed by "x"; If the first name has only two vowels, then the first and second vowel are used, followed by "x".
7-8Year of birthLast two digits of the birth year (e.g., for customers born in 1975, these digits would be 75).
9Month of birthThe month is assigned a letter based on the rules described in table 4 (e.g., if a person is born in June, this digit would contain the letter H).
10-11Day of birth & genderThese two digits are computed based on the gender. For male persons: the digits correspond with the exact date of birth (01 to 31); For female persons: the digits correspond with the exact date of birth + 40, so value is from 41 to 71. E.g., if a female person is born on the 10th day in the month, then these two digits would be 50. The birth month assigned a letter based on the rules described in table 4 (e.g., if a person is born in June, this digit would contain the letter H).
12-15Place of birthThese digits consist of one letter and three numbers. For persons in Italy, then they represent the town and province of birth; For persons outside of Italy, then they represent the country of birth.
16Control characterThe digits at the even positions are converted to the values listed in Table 1; The digits at the odd positions are converted to the values listed in Table 2; The resulting numbers are summed and divided by 26; Then, this resulting number is converted to the letter that corresponds with its numeric value, as described in Table 3.
DuplicatesIn the event that the first 15 digits of an existing codice fiscale would be the same for two or more persons, there is a method to avoid creating a duplicate codice fiscale once it has been registered. The first number of the codice fiscale starting from the right is converted to a letter as described in Table 5. E.g., for the second person with same codice fiscale, the first number from the right is converted to a letter; for the third person with the same codice fiscale, the first and second numbers from the right are converted to letters.

Table 1

CharacterValueCharacterValueCharacterValueCharacterValue
0099I8R17
11A0J9S18
22B1K10T19
33C2L11U20
44D3M12V21
55E4N13W22
66F5O14X23
77G6P15Y24
88H7Q16Z25

Table 2

CharacterValueCharacterValueCharacterValueCharacterValue
01921I19R8
10A1J21S12
25B0K2T14
37C5L4U16
49D7M18V10
513E9N20W22
615F13O11X25
717G15P3Y24
819H17Q6Z23

Table 3

CharacterValueCharacterValueCharacterValueCharacterValue
0A7H14O21V
1B8I15P22W
2C9J16Q23X
3D10K17R24Y
4E11L18S25Z
5F12M19T
6G13N20U

Table 4

MonthValueMonthValueMonthValueMonthValue
JanuaryAAprilDJulyLOctoberR
FebruaryBMayEAugustMNovemberS
MarchCJuneHSeptemberPDecemberT

Table 5

CharacterValueCharacterValueCharacterValueCharacterValue
0L3P6S9V
1M4Q7T
2N5R8U

Spain TIN

The Spanish equivalent of a TIN is the NIF (Número de Identificación Fiscal).

  • for Spanish citizens, the TIN value is the same as the National ID (DNI - Documento Nacional de Identidad) and contains 8 digits and 1 letter.
  • for non-citizens in Spain, the TIN value is the same as Foreigner ID (NIE - Número de Identidad/Identificación de Extranjero) and contains 7 digits and two letters (1 letter at the beginning and 1 letter at the end).

Appendix V: FAQs

Legal Representative FAQs

The company I am about to register is a „Gesellschaft mit beschränkter Haftung“ (GmbH) – who is my legal representative?

The easiest and surest way to figure that out is to check your current register excerpt (Handelsregisterauszug). In there you'll find all the official legal representatives which you would need to tell us. As a further indication, these people also need to be listed in the Imprint of your website (Impressum).

The Legal Representative has sole representations rights – do I need to add the other legal representatives as well?

Yes. Even though this legal representative could conclude the process on behalf of the company alone in the following steps, Solaris would need the complete set of information for regulatory purposes. Therefore, please enter the information about all legal representatives associated with the business.

One of our legal representatives is currently unavailable – do we need to reach them to complete the process?

Yes. All legal representative(s) must be identified in a video identification session to complete the business identification process(BKYC).

Our legal representatives are about to change soon – shall I include the new ones already?

No; please submit the information as it is currently written in the official register. If you already know that these individuals will change, then please inform your Onboarding manager accordingly, and they will help sort things out.

Why do I have to submit all legal representatives here?

As a bank, Solaris is obliged to keep a record about the companies it works with and check whether the provided information is correct. Solaris makes every effort to keep the flow as smooth as possible. Nevertheless, the law stipulates that Solaris must collect this information for all legal representatives.

Ultimate Beneficial Owner FAQs

What is a “Beneficial Owner”?

A so-called “Beneficial Owner” is a natural person (a human) who owns directly or indirectly more than 25% of the voting shares of a legal entity today. Ultimately it is the person who benefits from the entered agreement and has the eventual decision power. It can never be another company, as Solaris would need to look up the owner of that company. There is a more detailed (legally-worded) definition here as well. It may significantly help cases with beneficial owners incorporated as trusts or other non-commercial entity types.

The company has no beneficial owners – how should I proceed?

It might be the case after a thorough investigation that nobody has directly or indirectly enough voting shares of the business. In that case, Solaris is required to take the legal representatives instead. Please enter their information accordingly.

I don't know the ownership structure of the company – how shall I proceed?

Ultimately, the ownership structure of a company is determined in the shareholder agreement (Gesellschaftervertrag), which has been signed at least when founding the entity. In the meantime, this may have changed but would need to be noted in an amendment or update of this contract.

Another company owns the company – what shall I do now?

Please submit the information of the natural person (human) owning your shareholders. If this is also another company (holding- or corporate-structure), you would need to follow the trail of indirect ownership until you either find an individual or the ownership is diluted under 25% ownership (through indirect ownership).

What do you mean by direct or indirectly & how do I calculate that?

Direct ownership refers to a natural person (individual) owning him-/herself voting shares in the business. Indirect ownership refers to somebody owning one entity that then owns a specific part of the business. It also qualifies if the entities are stacked into each other (several companies in between). Also, if one individual holds voting shares via different entities in the business, you would need to add up his/ her total indirect ownership to see whether the total engagement reaches more than 25%. When the shareholding structure is stacked over several hierarchies, you multiply the ownership-quotas of each entity to get the ultimate quota for the respective person.

Example:

Adello GmbH needs to provide its beneficial owners. Adello's shareholders are Peter 30% of shares, Susi 10% of shares, Anne 10% of shares, and Toscana GmbH 50% of shares. Toscana's shareholders: Hugo 75% of shares and Marie 25% of shares Direct beneficial owners of Adello: Peter Indirect beneficial owners of Adello: Hugo with 37,5% of shares (Toscana's share in Adello 50% x Hugo's ownership quota in Toscana 75%). Please note that Marie is not a beneficial owner as she has indirectly only 12,5% in Adello.

We have different kinds of shares – which shares are the decisive ones?

Please refer to the shares with decisive voting power as the beneficial owner is ultimately the person deciding the significant strokes of the company.

Does the UBO need to do something, for instance, sign something or perform a video identification?

No, please only submit the information of that person as stated in his/her official documents (ID card or passport). There is no further double-checking of that information. Therefore, the beneficial owner does not need to do anything during this identification process.