Integrate Solaris' Business Fronting Factoring product. This guide details the mandatory data collection requirements and the endpoints and webhooks necessary for your solution.
For a comprehensive overview of onboarding requirements, check the Onboarding requirements guide.
Factoring, also known as accounts receivable financing, is when a company sells its account receivables or invoices to a financial provider (i.e., a factor). The factor buys these receivables or invoices in cash from the company and handles the collection directly from the debtor (i.e., the company's customer who owes the money). Many companies resort to factoring as a financing solution to solve their short-term liquidity needs.
Solaris' business fronting factoring solution combines the logic of fronting with factoring as a financing solution in a single product.
As a Solaris partner integrating this product, you can offer your business customers factoring transactions, in which they can sell their invoices or receivables in exchange for cash.
In this case, Solaris acts as a fronting and factoring bank, which buys these receivables directly from your customer (factoring) and then sells these receivables back to you (fronting). Afterward, you would be responsible for the debt collection.
Available markets
Business fronting factoring is currently only available for business customers in Germany.
A fronting factoring transaction involves the following parties. Each party has its dedicated role and responsibilities.
| Role | In business relationship with | Responsibilites |
|---|---|---|
| Solaris partner | - Solaris - Seller - Debtor | As a Solaris partner, you're responsible for: - Commissioning and selling this product to your business customers. - Integrating this product into your solution, including all endpoints and webhooks. - Collecting the required data from the customer and doing your credit risk scoring and due diligence. - Collecting the receivables from the debtor after Solaris buys the receivables from your customer and sells them back to you. |
| Seller | - Solaris partner - Solaris - Debtor | The seller is your business customer that wants to factor their receivables using the Solaris fronting factoring solution. The seller is responsible for: - Submitting all required data points and documents. - Completing the BKYC process and passing the scoring process successfully. |
| Debtor | - Seller - Solaris partner | The debtor is the seller's customer who originally bought a service or product from the seller and is responsible for: - Paying the receivables amount to you instead of the seller. |
| Solaris | - Partner - Seller | As the fronting and factoring bank, Solaris is responsible for: - Handling the regulatory and compliance requirements for customer onboarding, such as BKYC and credit risk checks. - Buying the receivables from the seller and then selling them back to you as the partner. - Facilitating and executing the money flow between the different accounts related to the factoring transaction via API calls. |
The following diagram gives a high-level overview of the fronting factoring process and how it works between the different parties:

The following accounts are used in a fronting factoring transaction:
| Account | Owned by | Description |
|---|---|---|
| Settlement account | Solaris | A Solaris account linked to your partner ID, from which the receivable amount is transferred to the seller. |
| Collateral account | Solaris partner | A Solaris account under your name. The balance of this account must equal the receivable amount to be factored and paid to the seller; otherwise, the payout will fail. |
| Seller account | Seller | The seller's account to which Solaris will transfer the factored amount. |
| Debt collection account | Solaris partner | An internal or external account managed by you and to which the debtor transfers the receivable amount. |
| Fee collection account | Solaris partner | An internal or external account managed by you and to which Solaris transfers the factoring interest. |
| Debtor account | Debtor | The debtor account from which the receivable amount is transferred to your debt collection account. |
Once you onboard the seller and they successfully pass the scoring process and BKYC flow, you can trigger partial loan payouts using Solaris' fronting APIs.
The following example shows the money flow of a fronting factoring transaction, in which:
- the full receivable amount = 10,000 EUR,
- retention fee = 1,000 EUR, and
- factoring interest = 500 EUR.

- You can freely define the amounts of initial payout, retention fee, and factoring interest in the factoring agreement with the seller and Solaris. However, all partial payouts cannot exceed the full amount of receivables.
- As soon as the factoring application is approved and the BKYC is successful, you can trigger the partial loan payouts via Solaris APIs as you see fit, independent from the debt collection from the debtor.
- You're solely responsible for the debt collection. Solaris does not take any part in this phase.
Before integrating Solaris' business fronting factoring product, you must implement the following requirements in your solution:
1. Technical setup
Set up your environment and get your authentication keys. For instructions, see 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 explains how to create these screens and lists their mandatory contents.
Record the customer's consent on each screen as a UTC timestamp (e.g., 2019-01-01T00:00:00Z). Pass each timestamp in its respective field to Solaris.
- Collect the customer's consent to Solaris' Terms and Conditions and store the timestamp in the
terms_conditions_signed_atfield. - Collect the customer's consent to data processing and store the timestamp in the
data_terms_signed_atfield.
These fields belong to the person resource, which stores all customer data points.
Solaris recommends subscribing to the following webhook events to better automate your processes. For detailed instructions on implementing Solaris webhooks, check the webhooks documentation.
- BENEFICIAL_OWNER
- BUSINESS_CHANGED
- BUSINESS_DELETED
- BUSINESS_IDENTIFICATION
- IDENTIFICATION
- LEGAL_REPRESENTATIVE
- PERSON_CHANGED
- PERSON_DELETED
- PERSON_MOBILE_NUMBER_CREATED
- BUSINESS_FRONTING_LOAN_APPLICATION
- BUSINESS_FRONTING_PAYOUT_UPDATE
- BUSINESS_FRONTING_LOAN_PAYOUT
- BUSINESS_FRONTING_RELATIONSHIP_STATUS_CHANGED
The following diagram gives a high-level overview of the integration process for business fronting factoring:
You can integrate Solaris' business fronting factoring product by completing the 9 steps explained in the following sections. Here's an overview of these steps:
Business registration
- Collect the mandatory business data in your sign-up flow, and create a business resource for your customer by completing Step 1.
- Upload the required business documents by completing Step 2.
Business natural person(s) registration
- 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.
- 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.
Natural person(s) tax information
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.
Business identification process (BKYC)
- Trigger the business identification flow by completing Step 6.
- Redirect all of the business' legal representative(s) to complete the video identification process with IDnow.
- 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.
- Ensure that the business' legal identification and the video identification of legal representative(s) are both successful.
- Ensure all the Customer Due Diligence related properties in the business object are
green. In case of anyredoryellowstatus value, abort the customer onboarding process.
Fronting factoring application
- Create a business fronting factoring application by completing Step 7.
- Upload the required documents and link them to the application by completing Step 8.
- Link the identification to the fronting factoring application by completing Step 9.
Loan payout and money flow
- If the identification and scoring processes succeed, sign a framework agreement with the customer to outline the business relationship.
- Create a loan and trigger partial payout by completing Step 10.
- Solaris transfers the factored amount (minus the hold-up fee) from the settlement account to the seller's account.
- The factored amount is settled from your collateral account and repaid to Solaris' settlement account.
- The debtor pays the receivables amount directly to your debt collection account.
- Trigger another partial loan payout by calling [POST Create partial loan payout] with the tag
RETENTION_FEEand Solaris will transfer the retention fee to the seller's account. - Trigger the final partial loan payout with the tag
FACTORING_INTERESTand Solaris will transfer the interest amount to your fee collection account.
After successful onboarding, the customer will be in a continuous business relationship with Solaris and can apply for subsequent factoring of receivables.
The following sequence diagram gives an overview of the integration flow:
You can find detailed descriptions of these steps and their related endpoints in the following sections.
In this step, you must collect the mandatory data points from the customer in your sign-up flow, including all the timestamps of the business's consent to the legal and compliance screens.
Afterward, you pass all the data points to Solaris by creating a business resource to represent your customer.
For a complete list of endpoints, properties, and examples related to the business resource, visit the following links:
Related webhook events
- Review the special considerations for data collection highlighted in the onboarding requirements guide.
- You must submit the information exactly as it appears in official documents.
- When testing in the Sandbox, ensure that each business you create has unique values for
name,postal_code,legal_form, andregistration_number(if provided). If you create over 1000 identical business resources, the API returns a400error.
The mandatory data points required for businesses may differ depending on the country in which you're opening the account. The following example outlines the mandatory fields for Germany. For information about other countries, please refer to the Onboarding requirements guide
There are certain mappings between the fields
tax_country,sector, andlegal_form. Check this section for more information.
This endpoint creates a business resource for your customer. You must collect the following mandatory data points from the customer in your sign-up flow and pass it to Solaris in the request body of this endpoint:
nameaddressline_1line_2postal_codecitycountry
sectorlegal_formnace_codefoundation_datecrs_company_typeorregistration_typebusiness_purposetax_informationtax_countrytax_confirmationregistration_issuer: For Germany, it must be preceded by AMTSGERICHT (e.g., AMTSGERICHT Berlin).registration_number
registration_districtterms_conditions_signed_atdata_terms_signed_atbalance_sheet_totalnumber_employees
Request URL:
POST /v1/businessesClick here to view the full API reference.
Simplify your customers' onboarding process by opting for the automatic data collection feature. With our external service provider, Business Registry, customers can enter the country and company name, and the remaining business data fields will be automatically filled out.
Automated data collection is an optional step that improves user experience. For more information on this feature and its associated cost, contact your Partner Manager.
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 might be slow in certain markets.
Request URL:
GET /v1/commercial_registrations/search_by_name?country={{}}&name={{}}Example response
[
{
"name": "EWIV für Unternehmensberatung",
"registration_number": "HRA 201632",
"registration_issuer": "AMTSGERICHT Lüneburg"
}
]Click here to view the full API reference.
If the previous endpoint cannot retrieve the registration number, you must allow the user to enter it manually.
Use the following endpoint to automatically retrieve the remaining business details after obtaining the registration_issuer and registration_number from the response of the previous endpoint:
- Cost: This endpoint has an associated cost per request. Contact your Partner Manager for more information.
- Prefix (Germany): For companies in Germany, you must add
AMTSGERICHTbefore the value of theregistration_issuer(e.g.,AMTSGERICHT MÜNCHEN). - Registration Number: You must enter the complete registration number, including the letters at the beginning (e.g.,
HRB 12345). Inputting12345alone will not work. - Registration Issuer: For the
registration_issuer, we expect one of the Business Registry offices from the list available in Appendix V. We cannot accept free input as it breaks automation.
Request URL:
GET /v1/commercial_registrations/find?registration_number={{}}®istration_issuer={{}}Example response
{
"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"
}
],
"commercial_registry_industry_key": [
"66.19.0 - Sonstige mit Finanzdienstleistungen verbundene Tätigkeiten",
"70.10.9 - Sonstige Verwaltung und Führung von Unternehmen und Betrieben",
"70.22.0 - Unternehmensberatung",
"73.11.0 - Werbeagenturen"
]
}Click here to view the full API reference.
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.
The field registration_issuer is only required for companies in Germany.
GET Search for business commercial registration (France)
Request URL
GET v1/commercial_registrations/search_by_name?name=PARISOL&country=FRResponse
{
"name": "PARISOL",
"registration_number": "513 937359",
"registration_issuer": null
}GET Automatic business data collection (France)
Request URL
GET /v1/commercial_registrations/find?registration_number=513937359&country=FRResponse
{
"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"
}
]
}Check the appendix for testing data for these endpoints.
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.
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.
For a complete list of endpoints, properties, and examples related to the business document resource, visit the following links:
This endpoint uploads a document and links it to the business with the business_id specified in the request URL.
Add the following properties to the request body:
document_type: The document type. For a list of possible values, see the API reference.file: The file to be uploaded.
The request body of this endpoint is a multipart/form-data content type. Parameters are transmitted as form-data, not as a raw JSON string.
Request URL
POST /v1/businesses/{business_id}/documentsClick here to view the full API reference
After creating a business resource, 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.
In this step, collect the mandatory data points from the business' legal representative(s) and create a person object for each representative. Then, create a legal_representative resource and link it to the corresponding person object.
Legal representatives can be natural persons (individuals) or legal entities (businesses) 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 are usually recorded in the company's commercial register.
- A business must have at least one legal representative.
- If a business has more than one legal representative, you must create and link all of them to the
businessobject in the Solaris system to prevent delays during the business identification process.
A business' legal representative can be a legal entity instead of a natural person. For example, the legal representative of a GbR company could be another GmbH or AG company.
In this case, you must do the following:
- Collect the business data of the legal entity acting as the legal representative and create a business resource for it.
- The natural persons who are the legal representatives of that legal entity are the ones who must go through the KYC flow.
For each of the business' legal representatives, you must collect the following mandatory information and pass them to Solaris by creating a person resource.
API reference
For a complete list of endpoints, properties, and examples related to the person resource, visit the following links:
Related webhook events
- Review the special requirements in the Onboarding requirements guide.
- Submit information exactly as it appears in official documents.
- Sandbox Testing: Ensure that each person you create has unique values for
first_name,last_name,birth_city, andbirth_date. If you create over 1000 identical person resources, the API will return a400error. - Privacy: Do not use real personal data when testing in Sandbox.
The mandatory data points for legal representatives depend on the country in which you're opening the account. The following example shows the mandatory data points for Germany. For other countries, check the Onboarding requirements guide
You have to create a separate
personobject for each legal representative associated with the business.
Call this endpoint to create a person resource for the business' legal representative. You must collect the following mandatory data points in your sign-up flow and pass it to Solaris in the request body of this endpoint:
salutationfirst_namelast_nameaddressline_1line_2postal_codecitystatecountry
birth_datebirth_citybirth_countrynationalitymobile_number
Request URL:
POST /v1/personsClick here to view the full API reference
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 its associated person_id.
For a complete list of endpoints, properties, and examples related to the legal_representative resource, visit the following links:
Related webhook events
Call this method to create a legal_representative resource on the business and link a person to the business as a legal representative.
Attributes
type_of_representation: Alegal_representativecould have atype_of_representation, which indicates whether this legal representative can make decisions alone or jointly with other legal representatives. This attribute is optional. Possible values areALONE,JOINT, orOTHER.power_of_attorney_confirmed_at: In case ofJOINTrepresentation, legal representatives need to confirm the power of attorney's timestamp in thepower_of_attorney_confirmed_atattribute.
Request URL:
POST /v1/businesses/{business_id}/legal_representativesClick here to view the full API reference.
Check the FAQ for more information about legal representatives.
In this step:
- Collect the mandatory data points from the business' beneficial owner(s) and create a
personobject for each beneficial owner. - Create a
beneficial_ownerresource and assign it to its correspondingpersonobject. - Display the definition of the beneficial owner in your UI.
- If a business has more than one beneficial owner, you must create and link all of them to the corresponding
businessobject to avoid delays during the business identification process. - A beneficial owner MUST be a natural person and CANNOT be another company.
The Beneficial Owners (BO) 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), a 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.
- The 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
fictitiousbeneficial owners. - Beneficial owners don't require video identification.
- For more information about beneficial owners, check the FAQ in the appendices section.
Ensure that the 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:
- 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;
- 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.
- 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:
- 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;
- 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.
- 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.
For each of the business' beneficial owners, you must collect the following mandatory information and pass them to Solaris by creating a person resource.
The mandatory data points for beneficial owners depend on the country in which you're opening the account. The following example shows the mandatory data points for Germany. For other countries, check the Onboarding requirements guide
You have to create a separate
personobject for each beneficial owner associated with the business.
Call this endpoint to create a person resource for the business' beneficial owner. You must collect the following mandatory data points in your sign-up flow and pass it to Solaris in the request body of this endpoint:
first_namelast_nameaddressline_1line_2postal_codecitystatecountry
birth_datenationality
Request URL:
POST /v1/personsClick here to view the full API reference
For each person resource you created in the previous step, you must create a beneficial_owner resource, and set the value of the person_id attribute to the id of the associated person resource.
For a complete list of endpoints, properties, and examples related to the beneficial_owner resource, visit the following links:
Related webhook events
Call this method to create a beneficial_owner resource on the business and link a person to the business as a beneficial owner. You must add the following properties in the request body of this endpoint:
person_id: The ID of the person resource you created for the beneficial owner.voting_share: The beneficial owner's voting share in the business.
Please note is that if you're creating a fictitious beneficial owner, the voting_share is not required.
Request URL:
POST /v1/businesses/{business_id}/beneficial_ownersClick here to view the full API reference.
Check the FAQ for more information about beneficial owners.
In this step, you must do the following:
- Collect the mandatory tax information about the natural person(s) associated with the business and create person tax identification resource(s).
This is a mandatory requirement for businesses in all branches. You must 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.
Submitting the tax information of your customers is a requirement to open a bank account in all of Solaris branches. However, please note the following:
You can open the bank account for customers in Germany (DE branch) before they provide tax information. However, you must submit the customer's tax information to Solaris within 90 days of opening the account. Otherwise, Solaris will block the customer's account with the reason
MISSING_TAX_INFORMATIONuntil you submit the required tax information.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.The first
tax_identificationto be submitted for apersonor abusinessmust be the primary tax identification. If anothertax_identificationwith the value ofprimaryset totrueis created, it will set theprimaryvalue of the previously createdtax_identificationtofalse.A
personorbusinessmay only have onetax_identificationpercountry.When creating a
tax_identification, explicitly collect thecountryvalue from the user and do not default to their physical residence (i.e., thecountryproperty of thepersonresource).Check the Onboarding requirements guide for more information about the TIN requirements per country.
For a complete list of endpoints, properties, and examples related to the person tax identification resource, visit the following links:
Related webhook events
Call this endpoint to create a person tax identification for the customer with the person_id specified in the request URL. Collect the following tax information from your customers and pass them to Solaris in the request body:
numbercountryprimary
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 areNOT_ASSIGNED_YET,NOT_ASSIGNED_BY_COUNTRY,OTHER.reason_description: Applies only if thereason_no_tinisOTHER.tax_id_type: (Only for Spain) Possible values areNIEandNIF.
Request example:
POST /v1/persons/{person_id}/tax_identificationsClick here to view the full API reference.
Check the tax information guide for the TIN requirements per country.
In this step, must do the following:
- Trigger the business identification process to identify the business legal entity and all legal representative(s). This process is called BKYC.
- Make sure all the business' legal representative(s) are successfully identified.
- Implement the endpoints related to compliance questions.
Solaris' BKYC solution uses RESTful APIs to perform a series of identification and compliance checks for business customers.
The business identification consists of two asynchronous processes:
- Legal identification: The Solaris Banking Operations team verifies the completeness and accuracy of the data submitted by the business customer. They ensure that all legal representatives and ultimate beneficial owners are disclosed and linked to the business.
- Video identification: All of the business' legal representatives and authorized persons must undergo a video identification session with IDnow to validate their data against their identification documents.
- The business must pass both of these checks before the business identification process is successful.
- Only legal representatives and authorized persons must undergo video identification. Ultimate beneficial owners (UBOs) are exempt from this requirement.
API reference
For a complete list of endpoints, properties, and examples related to business identification (BKYC), visit the following links:
Related webhook events
Call this endpoint to initiate the business identification process, which automatically triggers both the legal identification of the business and the video identification of applicable natural person(s). Specify the identification method in the request body. The default method is idnow.
Request URL
POST /v1/businesses/{business_id}/identificationsResponse
Returns an identification object with a unique id representing the business identification resource and its overall status. Additionally, the payload contains individual identification objects for the video identification sessions of legal representatives, including their respective resource id, IDnow status, reference, and url for completing the process.
The payload also provides information on the legal identification process, including its dedicated legal_identification_status. Monitor the progress of this process by calling the API, particularly the legal_identification_missing_information field, where Solaris highlights compliance questions requiring answers from the business.
Click here to view the full API reference
During the legal identification process, Solaris' legal and compliance team may require additional information from your customers, including answers to certain compliance questions and/or additional documents.
- If Solaris needs further clarification during the business identification, you will receive a notification on the
BUSINESS_IDENTIFICATIONwebhook. - Call the GET Retrieve a business identification endpoint to retrieve the required details.
Only compliance questions
If Solaris has compliance questions for the business, the field legal_identification_missing_information contains only COMPLIANCE_QUESTIONS. In this case, collect answers from the customer on your frontend. We recommend setting document upload as optional to allow the customer to add supporting documents if needed.
Example payload
{
"legal_identification_status": "information_required",
"legal_identification_missing_information": [
"COMPLIANCE_QUESTIONS"
]
}Both compliance questions & documents
If Solaris requires both answers to compliance questions and documents, the field legal_identification_missing_information contains COMPLIANCE_QUESTIONS and a document_type (e.g., FOUNDATION_DOCUMENT). In this case, collect the answers and the mandatory documents. You must set document upload as mandatory on your frontend and submit the document to Solaris using the POST Create a Business Document endpoint.
Example payload
{
"legal_identification_status": "information_required",
"legal_identification_missing_information": [
"COMPLIANCE_QUESTIONS",
"FOUNDATION_DOCUMENT"
]
}If the status indicates missing information, follow this flow to resolve it:
To retrieve the questions and submit answers, use the following endpoints:
To get the compliance questions, call the following endpoint:
Request URL
GET /v1/businesses/{business_id}/identifications/{business_identification_id}/legal_identification/questionsResponse example
The API call returns an object that includes the question(s) with a unique ID and the corresponding text. You must redirect these questions to your customers and retrieve their answers as part of your workflow. Provide a dedicated page for answering all questions separately.
{
"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.
After receiving the compliance question answers from the customer, call the following endpoint to share them with Solaris. Make a separate API call for each answer.
Request URL
Provide the answer in the request body.
POST /v1/businesses/{business_id}/identifications/{business_identification_id}/legal_identification/questions/{question_id}/answersClick here to view the full API reference.
Call this method to update the legal identification and mark it as ready to resume the identification process after adding all answers and documents. This endpoint changes the legal_identification_status from information_required to pending.
Request URL
PATCH /v1/businesses/{business_id}/identifications/{id}/legal_identification/mark_as_readyClick here to view the full API reference.
Solaris conducts risk screening and customer vetting checks, known as the Customer Due Diligence process, on the business legal entity. The results are returned in the GET business resource. For more information, check the Customer Due Diligence guide.
During the CDD checks, the application status will change to cdd_pending. In case of any red or yellow status value for any of the CDD-related properties, the fronting application status will change to rejected. The application status will change to approved only if all the CDD-related properties have a green status value.
In this step, you must collect the mandatory information from the customer in your sign-up flow and pass this information to Solaris by creating a fronting factoring application.
The fronting factoring application includes all the required information about your customer (seller of receivables) and the debtor (the seller's customer who must now pay the amount of the receivable to you).
This endpoint creates a fronting factoring application and assigns it to the business with the business_id specified in the request URL.
Required properties:
Add the mandatory following properties to the request body:
partner_contact_name: A contact person that Solaris can contact in case of questions related to the application.partner_contact_number: The phone number of your contact person.partner_reference_number: Your generated reference number for the customer.partner_score: Your calculated score for the customer, e.g., PD threshold.requested_amount: The total invoice amount (in EUR) requested to be factored.recipient_name: The name of the recipient, e.g., the seller of the invoice.recipient_iban: The IBAN of the recipient, to whom the factored amount will be paid out.purpose: The reason for the factoring application, e.g., Factoring of receivables.purpose_description: Add the invoice number and reference in this field.transaction_description: The transaction reference, which the recipient can see. Only use SEPA allowed characters in this field.transaction_end_to_end_id: SEPA identifier (provided by the end customer who initiated the SEPA transaction), routed through the whole payment process. (string, max 35 characters without whitespace)minimum_credit_risk_criteria: An object that will contain different fields about the seller of the invoice, the debtor, and the invoice's details. Note: Solaris will inform you of the required fields that you must collect from the customer for this object.
Request example
// POST /v1/businesses/{business_id}/fronting_loan_applications
{
"minimum_credit_risk_criteria": {
"criteria_1": false,
"criteria_2": 0.02
},
"partner_contact_name": "Daniel Schmidt",
"partner_contact_number": "+49345195891",
"partner_reference_number": "tf2df3ceac0e384352b78cb6987d1d987",
"partner_score": "AA",
"purpose": "Factoring of receivables",
"purpose_description": "DDHHDHG333243",
"recipient_iban": "DE92370601930002130041",
"recipient_name": "Daniel Schmidt",
"requested_amount": {
"currency": "EUR",
"unit": "cents",
"value": 20000
},
"transaction_description": "Example transaction.",
"transaction_end_to_end_id": "DDHHDHG333243"
}Response example
The API call returns an object with a unique id for the business fronting factoring application, including the application status (initially set to pending) and the remaining attributes, which will be populated during the application lifecycle.
{
"agio": null,
"creditreform_pd": null,
"creditreform_score": null,
"duration": null,
"effective_interest_rate": null,
"factoring_fee": {
"currency": "EUR",
"unit": "cents",
"value": 0
},
"id": "89d4eaaa73ec4a73a0b9d40fb5d9da9cbfla",
"identification_id": null,
"minimum_credit_risk_criteria": {
"criteria_1": false,
"criteria_2": 0.02
},
"nominal_interest_rate": null,
"partner_contact_name": "Daniel Schmidt",
"partner_contact_number": "+49345195891",
"partner_reference_number": "tf2df3ceac0e384352b78cb6987d1d987",
"partner_score": "AA",
"purpose": "Factoring of receivables",
"purpose_description": "DDHHDHG333243",
"recipient_iban": "DE92370601930002130041",
"recipient_name": "Daniel Schmidt",
"requested_amount": {
"currency": "EUR",
"unit": "cents",
"value": 20000
},
"status": "pending",
"transaction_description": "Example transaction.",
"transaction_end_to_end_id": "DDHHDHG333243"
}This endpoint returns the current status and details of an existing business factoring loan application. For a list of possible values of the application status and their descriptions, check the appendix.
Additionally, subscribe to the webhook event BUSINESS_FRONTING_APPLICATION to receive status updates on the application.
Request URL
GET /v1/businesses/{business_id}/fronting_loan_applications/{application_id}The following diagram shows the different statuses and transitions for a business fronting application:
In this step, you must create document resources for all the required documents, such as loan agreement, credit risk report, invoices etc., and link them to the business fronting loan application.
- Depending on each use case and whether it's a fronting loan or fronting factoring, Solaris' team will inform you of the additional documents you must submit.
- You have to make a separate API request for each document.
Use the upload document endpoint to upload the loan-related documents.
After creating the document resources, you must link each document to the fronting loan or factoring application.
This endpoint links a document resource to the business fronting loan or factoring application. You must add the following properties in the request body:
document_type: The document type. For a list of possible values, check the appendix.document_id: The unique ID of the document resource.
Request URL
PUT /v1/businesses/{business_id}/fronting_loan_applications/{application_id}/documentsRequest example
{
"document_id": "69ec2a9d8dbaf5ea1b13124098a34ea3cdoc",
"document_type": "INVOICE"
}Click here to view the full API reference
In this step, you must link the business identification resource to the business fronting loan application by calling the following endpoint.
This endpoint links a business identification resource to the business fronting loan application. You must add the following properties in the request body:
identification_id: The unique ID of the identification resource, created after triggering the business identification process.
- After linking the identification resource to the loan application, the application status transitions to
identification_pending. - After a successful BKYC process, the status changes to
approved, which means that loan application is accepted, and you can trigger the loan payout process.
Request:
PUT /v1/businesses/{business_id}/fronting_loan_applications/{application_id}/identification{
"identification_id": "1063504cf74919f60ae4c806bdc9ce75bid"
}Click here to view the full API reference
After successful business identification and application approval, finalize the process:
- Create the loan: Establish the loan resource in the Solaris system.
- Trigger payouts: Execute partial payouts for the initial amount, retention fee, and factoring interest.
Create a loan for the approved application. Do not trigger the payout yet. Provide the settlement_account_iban (the Solaris account used to transfer the payout to the business).
Request example
// PUT /v1/businesses/{business_id}/fronting_loan_applications/{application_id}/loan
{
"settlement_account_iban": "DE07110101014503906016"
}Response example
The API call returns the loan details, including an id and the status of the loan, set to payout_pending.
{
"agio": 0,
"amount": {
"currency": "EUR",
"unit": "cents",
"value": 10000
},
"application_id": "89d4eaaa73ec4a73a0b9d40fb5d9da9cbfla",
"collateral_account_iban": "DE85110101014480677574",
"collection_account_iban": "DE87110101001000057123",
"duration": null,
"effective_interest_rate": null,
"id": "13651d2f3a274e768ec6d45b036e0f14bflo",
"nominal_interest_rate": null,
"recipient_iban": "DE92370601930002130041",
"recipient_name": "Daniel Schmidt",
"settlement_account_iban": "DE07110101014503906016",
"status": "payout_pending",
"status_reason": null
}This endpoint returns all the details of a business' fronting loan. Additionally, subscribe to the webhook event BUSINESS_FRONTING_LOAN_PAYOUT to receive status updates about the loan.
For a list of possible values of the
statusof the loan payout and their descriptions, check the appendix.In case of partial loan payouts, the
statusof the loan will remainpayout_pendinguntil all partial loan payouts are completed and the full loan amount is paid out. Afterward, it will change topayout_issuedtriggering this webhook eventBUSINESS_FRONTING_LOAN_PAYOUT.
Request URL
GET /v1/businesses/{business_id}/fronting_loans/{loan_id}Call this endpoint to trigger multiple loan payouts related to a fronting factoring application. You must add the following properties in the request body:
amountrecipient_ibanrecipient_nametransaction_descriptiontransaction_end_to_end_idtag: Please note the following options for transaction tags:INITIAL_PAYOUT: The initial payout of the factoring transaction (minus the retention fee and factoring interest), which Solaris will transfer to the customer's account.RETENTION_FEE: The retention fee, which Solaris will transfer to the seller's account.FACTORING_INTEREST: The factoring interest, which Solaris will transfer to your account.
You must call this endpoint again to:
- Trigger a payout with the tag
RETENTION_FEE, which Solaris will transfer to the seller's account. - Trigger a payout with the tag
FACTORING_INTEREST, which Solaris will transfer to your account.
Request example
// POST /v1/businesses/{business_id}/fronting_loans/{loan_id}/payouts
{
"amount": {
"currency": "EUR",
"unit": "cents",
"value": 8500
},
"recipient_iban": "DE15100100100003404109",
"recipient_name": "Daniel Schmidt",
"tag": "INITIAL_PAYOUT",
"transaction_description": "Example transaction.",
"transaction_end_to_end_id": "DDHHDHG333243"
}Response example
The API call returns the transaction details, including the payout id and status, set initially to transfers_pending.
{
"amount": {
"currency": "EUR",
"unit": "cents",
"value": 8500
},
"id": "963347398e47416c9df216a63ef035c2bflp",
"loan_id": "29e1a05906954ce082ec779d81de8c1ebflo",
"recipient_iban": "DE15100100100003404109",
"recipient_name": "Daniel Schmidt",
"status": "transfers_pending",
"tag": "INITIAL_PAYOUT",
"transaction_description": "Example transaction.",
"transaction_end_to_end_id": "DDHHDHG333243"
}Call this endpoint to retrieve the details and status of a specific partial loan payout.
Additionally, subscribe to the webhook event BUSINESS_FRONTING_PAYOUT_UPDATE to receive notifications when the status of a payout changes to transfers_complete.
Request URL
GET /v1/businesses/{business_id}/fronting_loans/{loan_id}/payouts/{payout_id}In the context of Solaris' fronting factoring product, the business relationship with the customer is governed by a factoring framework agreement. Once this agreement, which constitutes a continuous business relationship, has been established, the customer may apply for subsequent factor financings.
Given that the customer will be in a continuous relationship with Solaris, the business must implement the mandatory compliance requirements, such as the Terms and Conditions Consent Log.
Implement the following endpoints to manage the business relationship with the customer.
Call this endpoint to retrieve the details and status of the existing business relationship with the customer.
Additionally, subscribe to the webhook event BUSINESS_FRONTING_RELATIONSHIP_STATUS_CHANGED to receive status updates.
Check the appendix for the list of values for the field status and the descriptions.
Request URL
GET /v1/businesses/{business_id}/fronting_loans_business_relationshipResponse example
{
"business_id": "880bbac68a34add190786b9c74f4c82fcbiz",
"created_at": "2020-20-03T18:01:48.000Z",
"offboarded_at": null,
"status": "active",
"status_reason": null,
"updated_at": null
}Call the following endpoint to terminate the business relationship with the customer.
Please note that the termination could happen in the following cases:
- By the customer's request.
- When you off-board a customer (in this case, the
status_reasonwould beoffboarded_by_partner, which is a terminal state). - If the customer rejects an update to the Terms and Conditions (in this case, the
status_reasonwould bet_and_c_update_rejected). If the customer accepts the Terms and Conditions, the Customer Support team will change the status back toactive.
Request URL
POST /v1/businesses/{business_id}/fronting_loans_business_relationship/closeCongratulations! You've successfully integrated Solaris' business fronting factoring solution.
Check the following appendices section for additional information on enums and testing data.
For an overview of Solaris' lending products, check the lending products overview page.
Please note that you are required to implement the following additional features in your solution due to regulatory requirements:
Check the following links for additional related guides and API reference documentation.
- Business Fronting API Reference documentation
- Business Identification API Reference documentation
- Person Identification API Reference documentation
- Video Identification guide
- SEPA Transfers
The following table includes the enums for the field status and their descriptions in the business fronting loan application resource. For example, it's available when you call the GET Retrieve business fronting loan application.
| Status | Description |
|---|---|
scoring_pending | The company's relevant risk reports must be uploaded and linked to the fronting loan application. After the risk reports are approved, the status transitions to pending. This status is only for countries other than Germany. |
pending | The application has been successfully created, and the business identification is yet to be completed. |
identification_pending | The business identification has been linked to the application, the flow has been triggered, and the customer must complete it. |
cdd_pending | Solaris is currently running the Customer Due Diligence (CDD) checks for the business. The application status could change to rejected in case any of the CDD checks fails. |
approved | The business credit scoring and/or identification process have been completed successfully, and the fronting loan application is approved. |
rejected | The business risk reports have been rejected and/or identification has failed, and the fronting loan application is rejected. |
loan_created | The loan payout process has been triggered. |
The following table includes the enums for the field status and their descriptions for the business fronting loan payout. For example, it's available when you call the GET Retrieve business fronting loan.
| Status | Description |
|---|---|
payout_pending | The business loan payout has been triggered. |
payout_issued | All transfers to the relevant accounts are completed, and the loan is paid out to the business. |
The following table includes the enums for the field status and their descriptions for the business fronting loan payout. For example, it's available when you call the GET Retrieve business relationship.
| Status | Description | Impact |
|---|---|---|
active |
|
|
blocked | The business has not accepted an update to Solaris' Terms and Conditions. |
|
closed | The business has rejected an update to Solaris' Terms and Conditions or you've offboarded the business and is no longer your customer. |
|
The field crs_company_type is required to collect mandatory tax information and create the business tax_identification resource. The following table includes the possible values for this field and their descriptions:
| Enum | Description |
|---|---|
FE_REPORTING | Reporting Financial Institution. |
FE_NON_REPORTING | Non-Reporting Financial Institution. |
NFE_ACTIVE_OTHER | Active NFE (Non-Financial Entity) - A corporation whose shares are regularly traded on at least one recognized stock exchange (or an affiliate), a government entity, an international organization, a central bank, or a legal entity wholly owned by one of these. |
NFE_PASSIVE | Passive NFE - A non-active Non-Financial Entity. |
NFE_PASSIVE_INVESTMENT | Passive NFE (Investment) - An Investment Entity that is a Financial Institution in a jurisdiction not participating in the CRS and is managed by another Financial Institution. |
The following table includes the possible values for the field document_type and their descriptions.
| Enum | Description |
|---|---|
ANNUAL_FINANCIAL_STATEMENT | A business or company's annual financial statement. |
KYC_REPORT | The KYC report generated after successful customer identification. |
ID_DOCUMENT | A person's identification document, such as a passport or ID card. |
SIGNATURE | A signature sample. |
PICTURE | A picture or scanned document of any other type. |
QES_DOCUMENT | A document related to a Qualified Electronic Signature (QES). |
SIGNED_CONTRACT | A signed contract of any kind. |
SIGNED_QES_DOCUMENT | A document signed by a Qualified Electronic Signature (QES). |
REGISTER_APPLICATION | A document proving the application for registration (Gründungsurkunde), used for companies "in formation". |
REGISTER_CHECK | A register check. |
REGISTER_EXTRACT | A commercial register excerpt or similar document. |
FOUNDATION_DOCUMENT | The foundation document of a company or business. |
SCHUFA_COMPACT_REPORT | A compact SCHUFA report. |
SCHUFA_GWG_REPORT | A GWG (Money Laundering Act) SCHUFA report. |
SCHUFA_FULL_REPORT | A full SCHUFA report about a person. |
SCHUFA_SHORT_REPORT | A short SCHUFA report about a person. |
CREDIT_AGENCY_REPORT | A report issued by a credit agency. |
SHARE_HOLDERS_AGREEMENT | A shareholder agreement. |
SHAREHOLDERS_LIST | A list of shareholders. |
TRADING_LICENSE | A trading license. |
TRANSPARENCY_REGISTER_EXTRACT | An extract from the transparency register. |
INVOICE | An invoice of any kind. |
OTHER | Any other type of document. |
VIDEO | A video of any kind. |
VAT_CERTIFICATE | VAT registration certificate. |
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.
| Status | Description |
|---|---|
created | The identification resource has been created for the customer. |
pending | The identification process has been triggered, and the video identification URL and reference have been generated. Redirect the customer to the URL to complete the identification. |
pending_failed | The identification is currently under review by the provider. You cannot offer banking services to the customer at this stage. |
successful | The video identification was successful. The customer can be onboarded. Note that the customer's data might have been updated during the identification session. |
aborted | The customer aborted the identification process. They can retry using the same URL. |
canceled | The provider canceled the video identification. The customer should retry using the same URL. |
failed | The identification was unsuccessful. You cannot onboard the customer or offer any banking services to them. |
expired | The identification link has expired (validity period passed). You must create a new identification request. |
IDnow provides a reason whenever the identification has a canceled or aborted status. No reason is disclosed for the final failed status.
- List of accepted passports for video identification via IDnow: here
- List of accepted passports for postIdent: here
- Search for an identification document: here
The following table lists all ID types that include the bearer's address, which you can use to perform identification without having to provide a proof of address document.
| Document | Issuer Country | Type (ID/PP) |
|---|---|---|
| BGR-AO-01005 | Bulgaria | Passport |
| CHN-AO-04003 | China | Passport |
| HRV-BO-02001 | Croatia | ID |
| HRV-AO-02001 | Croatia | Passport |
| CZE-BO-04001 | Czech Republic | ID |
| CZE-BO-04002 | Czech Republic | ID |
| FRA-BO-02002 | France | ID |
| FRA-AO-03001-03003 | France | Passport |
| DEU-BO-01003 | Germany | ID |
| DEU-BO-02001 | Germany | ID |
| IND-AO-01001 | India | Passport |
| ITA-BO-04003 | Italy | ID |
| ITA-BO-03004 | Italy | ID |
| ITA-BO-03002 | Italy | ID |
| ITA-BO-03001 | Italy | ID |
| ITA-BO-03003 | Italy | ID |
| MLT-BO-02001 | Malta | ID |
| MLT-BO-03001 | Malta | ID |
| MAR-AO-02001 | Morocco | Passport |
| POL-BO-02001-02003 | Poland | ID |
| SGP-BO-01001-A | Singapore | ID |
| SGP-BO-01001 | Singapore | ID |
| SVK-BO-02001 | Slovakia | ID |
| SVK-BO-05001 | Slovakia | ID |
| SVK-BO-04001 | Slovakia | ID |
| SVN-AO-02001-02003 | Slovenia | Passport |
| SVN-AO-02004 | Slovenia | Passport |
| SVN-BO-02001 | Slovenia | ID |
| SVN-AO-01004 | Slovenia | Passport |
| ESP-BO-03001 | Spain | ID |
| ESP-BO-05001 | Spain | ID |
The following table includes the possible values for the field tax_country.
| Enum | Description |
|---|---|
AT | Austria |
BE | Belgium |
CZ | Czech Republic |
DE | Germany |
ES | Spain |
FR | France |
GB | United Kingdom |
IT | Italy |
LU | Luxembourg |
NL | The Netherlands |
PT | Portugal |
The following table includes the possible values for the field sector.
| Enum |
|---|
ECONOMICALLY_SELF_EMPLOYED |
ECONOMIC_DEPENDENT |
FOREIGN_COMPANIES |
FOREIGN_ECONOMIC_DEPENDENT |
FOREIGN_PRIVATE_INDIVIDUAL |
FOREIGN_SELF_EMPLOYED_PRIVATE_PERSON |
GERMAN_BANKS |
MUNICIPALITY_AND_MUNICIPALITY_ASSOCIATION |
OTHER_COMPANIES |
OTHER_COMPANIES_WORKMAN |
OTHER_PRIVATE_INDIVIDUAL |
The selected value for the field tax_country influences the accepted values for the field legal_form. The following lists show the possible values for legal_form for each tax_country.
Austria (AT)
AT_SEAT_OHGAT_KGAT_AGAT_GESMBHAT_EGAT_GBRAT_EVAT_SOLE_PROPRIETORSHIPAT_SELF_EMPLOYEDAT_AMTAT_KORAT_STIFTUNGENAT_GMBHAT_GMBH_CO_KG
Belgium (BE)
BE_SNCBE_SCSBE_SABE_SPRLBE_SEBE_SCABE_SCBE_SCRIBE_SEPBE_SFBE_SPRLUBE_SOLE_PROPRIETORSHIPBE_SELF_EMPLOYED
Bulgaria (BG)
BG_ADBG_OODBG_KDABG_KDBG_SDBG_SELF_EMPLOYEDBG_SOLE_PROPRIETORSHIP
Croatia (HR)
HR_DDHR_DOOHR_JDOOHR_KDHR_JTDHR_SELF_EMPLOYEDHR_SOLE_PROPRIETORSHIPHR_ORTA
Czech Republic (CZ)
CZ_ASCZ_SROCZ_KSCZ_VOSCZ_DRUZSTVOCZ_FYZICKA_OSOBACZ_SOLE_PROPRIETORSHIPCZ_SELF_EMPLOYED
France (FR)
FR_AEFR_EIFR_SNCFR_SCSFR_SAFR_SASFR_SARLFR_SEFR_SCAFR_EURLFR_SCFR_SCOPFR_SELARLFR_SOLE_PROPRIETORSHIPFR_SELF_EMPLOYED
Germany & Others (Default) Solaris accepts the following legal forms for companies in Germany and other countries not specified in this list:
AGEGEKEVNEVGBRGMBHGMBH_CO_KGGMBH_I_GRKGKGAALTDMUNICIPALITYMUNICIPAL_COMPANYNONEOHGPARTGPRIVATE_PERSONSAVINGS_BANKSESELF_EMPLOYEDSOLE_PROPRIETORSHIPUGUG_I_GRFOREIGN_CORPORATIONADORAMTKDORSTIFTUNGENSECOKGAGCOKG
Hungary (HU)
HU_NYRTHU_KFTHU_BTHU_KKTHU_SOLE_PROPRIETORSHIPHU_SELF_EMPLOYEDHU_ORTA
Italy (IT)
IT_SEIT_SNCIT_SASIT_SPAIT_SRLIT_SAPAIT_SCPAIT_SCARLIT_SCOPIT_SSIT_SOLE_PROPRIETORSHIPIT_SELF_EMPLOYED
Luxembourg (LU)
LU_SNCLU_SCSLU_SALU_SARLLU_SELU_SCALU_SCSPLU_SARLSLU_SCLU_SCOPLU_SOLE_PROPRIETORSHIPLU_SELF_EMPLOYEDLU_SECALU_ASBLLU_FONLU_SP
Poland (PL)
PL_SAPL_SPZOOPL_SEPL_SKAPL_SPKPL_SPJPL_SELF_EMPLOYEDPL_OTHER
Portugal (PT)
PT_SNCPT_SCPT_SAPT_LDAPT_SEPT_SUNIPT_EIRLPT_SCIVPT_COPPT_SOLE_PROPRIETORSHIPPT_SELF_EMPLOYED
Romania (RO)
RO_SARO_SRLRO_SCARO_SCSRO_SNCRO_SELF_EMPLOYEDRO_SOLE_PROPRIETORSHIP
Serbia (RS)
RS_ADRS_DOORS_KDRS_ODRS_SELF_EMPLOYEDRS_SOLE_PROPRIETORSHIP
Slovenia (SI)
SI_DDSI_DOOSI_KDDSI_KDSI_DNOSI_SELF_EMPLOYEDSI_SOLE_PROPRIETORSHIP
Spain (ES)
ES_SRCES_SCES_SAES_SASES_SRLES_SEES_SCAES_SLNEES_SAUES_SLUES_SPROES_SCOPES_SOLE_PROPRIETORSHIPES_SELF_EMPLOYED
Switzerland (CH)
CH_DE_AGCH_FR_SACH_IT_SACH_DE_GMBHCH_FR_SARLCH_IT_SAGLCH_SECH_DE_KOMAGCH_FR_SCACH_IT_SACACH_DE_KGCH_FR_SCMCH_IT_SACCH_DE_KIGCH_FR_SNCCH_IT_SNCCH_DE_EGCH_FR_SSCH_IT_SSCH_SELF_EMPLOYEDCH_SOLE_PROPRIETORSHIPCH_DE_KMG
The Netherlands (NL)
NL_VOFNL_CVNL_NVNL_BVNL_SENL_CVOANL_COPVNL_MTSNL_SOLE_PROPRIETORSHIPNL_SELF_EMPLOYEDNL_VERENIGINGNL_STICHT
Turkey (TR)
TR_ADI_SIRTR_ASTR_LSTR_KOM_STITR_KOLL_STITR_SELF_EMPLOYEDTR_SOLE_PROPRIETORSHIP
United Kingdom (GB)
GB_SEGB_PARTNERSHIPGB_LPGB_PLCGB_LTDGB_COPSGB_UASGB_PRCUGB_PUCUGB_SOLE_PROPRIETORSHIPGB_SELF_EMPLOYED
Dependencies exist between the fields tax_country, sector, and legal_form. The value selected for one field determines the accepted values for the next.
The following sections outline these dependencies.
The selected value for the field tax_country influences the accepted values for the field sector. The following table gives an overview about the mapping of values between the field tax_country and sector.
| Tax country | Allowed values for sector |
|---|---|
DE |
|
| All other countries |
|
The selected value for the field sector influences the accepted values for the field legal_form. The following table gives an overview about the mapping of values between the field sector and legal_form.
| Sector | Allowed values for legal form |
|---|---|
OTHER_COMPANIES |
|
OTHER_COMPANIES_WORKMAN |
|
FOREIGN_COMPANIES |
|
GERMAN_BANKS |
|
MUNICIPALITY_AND_MUNICIPALITY_ASSOCIATION |
|
ECONOMICALLY_SELF_EMPLOYED |
|
NON_PROFIT_ORGANIZATION |
|
The following table includes the possible values for the field legal_identification_status. This status tracks the progress of the legal checks performed by Solaris on the business entity.
| Status | Description |
|---|---|
created | The legal identification has been initiated and will be conducted shortly. |
information_required | Solaris is missing one or more required documents or information. Check the legal_identification_missing_information array to see what is missing. |
pending | The legal review is currently in progress. This status is set after you call the mark_as_ready endpoint. |
blocked_internally | The legal identification is put on hold due to additional internal checks. |
successful | The legal identification was completed successfully. |
failed | The legal identification failed. Check the legal_identification_reason field for details. |
expired | The legal identification was not completed within the required timeframe (90 days). |
The Statistical Classification of Economic Activities in the European Community (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 (the first four levels) are consistent across all European countries. National implementations may introduce additional levels. The fifth digit might vary by country, and suppliers of databases sometimes add further digits.
Example
If the NACE code A 01.11 (Growing of cereals (except rice), leguminous crops and oil seeds) applies to the business, supply the value as follows:
nace_code = "A 01.11"
Reference List
Visit the Eurostat Reference Data site for the full list of NACE code values required for your implementation. The list is available in multiple languages.
Requirements
- Mandatory: NACE codes are required for B2B and freelancer customers in Germany, Italy, and Spain.
- Excluded: For France, NACE codes are not used. The CODE NAF system is used instead.
Using NACE codes replaces the fields industry and industry_key.
The following table includes the possible values for the field status, which refers to the overall status of the business identification process (BKYC). This includes the legal identification of the business entity carried out by Solaris and the video identification of the business's natural persons.
| Status | Description |
|---|---|
created | The business identification resource has been created. The legal review and video identification steps will begin shortly. |
pending | The business identification is currently in progress. This may mean Solaris is reviewing the legal documents or waiting for the legal representatives to complete their video identification. |
successful | Both steps of the business identification process (legal review and video identifications) were completed successfully. |
failed | The business identification process failed and will not continue. To understand why, check the status of the legal_identification or the individual video identifications. |
expired | The business identification process was not completed within the allowed timeframe (usually 6 months). Either the legal identification or one of the video identifications was not finished on time. |
The following table lists the required documents for identification for each legal form.
For all registered legal forms, customers must input their business data (registration_number and registration_issuer).
Once the customer enters this data, Solaris automatically retrieves the required company documents, eliminating the need to request them during the onboarding flow.
Inaccurate data (registration_number and registration_issuer) causes automated retrieval to fail. In this case, you must request documents manually from the customer using the request information and request document endpoints.
Solaris may request further documents during the onboarding process depending on factors such as legal entities acting as beneficial owners, complex business structures, or specific service types.
| Legal Form | Documents required | Document Type | Data can be retrieved by Solaris |
|---|---|---|---|
| ADÖR | Register extract | REGISTER_EXTRACT | Yes - Automated |
| ADÖR | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| AG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| AG | "Aktionärsliste" for AG or AG/SE as General Partner | SHAREHOLDER_LIST | No |
| AG | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| AG_CO_KG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| AG_CO_KG | "Aktionärsliste" for AG or AG/SE as General Partner | SHAREHOLDER_LIST | No |
| AG_CO_KG | Articles of Association (Satzung) for AG/SE as General Partner | FOUNDATION_DOCUMENT | No |
| EG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| EG | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| EK | Register extract | REGISTER_EXTRACT | Yes - Automated |
| GbR | Gesellschaftsvertrag (partnership/shareholder agreement) | OTHER or SHAREHOLDER_AGREEMENT | No |
| eGbR | Register extract | REGISTER_EXTRACT | Yes - Automated |
| eGbR | Gesellschaftsvertrag (partnership/shareholder agreement) | OTHER or SHAREHOLDER_AGREEMENT | No |
| Gemeinde | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| gGmbH | Register extract | REGISTER_EXTRACT | Yes - Automated |
| gGmbH | List of Shareholders | SHAREHOLDER_LIST | Yes - Automated |
| GMBH | Register extract | REGISTER_EXTRACT | Yes - Automated |
| GMBH | List of Shareholders | SHAREHOLDER_LIST | Yes - Automated |
| GMBH_CO_KG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| GMBH_CO_KG | Shareholderlist for GmbH/UG General Partner | SHAREHOLDER_LIST | No |
| GMBH_I_GR | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| GMBH_I_GR | Gesellschaftsvertrag (partnership/shareholder agreement) | OTHER or SHAREHOLDER_AGREEMENT | No |
| GMBH_I_GR | Notariell beglaubigte Urkundenrolle/Musterprotokoll | OTHER | No |
| gUG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| gUG | List of Shareholders | SHAREHOLDER_LIST | Yes - Automated |
| KDOR | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| KG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| KGAA | Register extract | REGISTER_EXTRACT | Yes - Automated |
| KGAA | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| LTD | Register extract | REGISTER_EXTRACT | Yes - Automated |
| LTD | List of Shareholders | SHAREHOLDER_LIST | No |
| LTD | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| NEV | List of Shareholders (List of Board members) | SHAREHOLDER_LIST | No |
| NEV | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| OHG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| PARTG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| PARTG | Gesellschaftsvertrag (Partnerschaftsvertrag) | OTHER or SHAREHOLDER_AGREEMENT | No |
| SE | Register extract | REGISTER_EXTRACT | Yes - Automated |
| SE | List of Shareholders | SHAREHOLDER_LIST | No |
| SE_CO_KG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| SE_CO_KG | "Aktionärsliste" for AG or AG/SE as General Partner | SHAREHOLDER_LIST | No |
| SE_CO_KG | Articles of Association (Satzung) for AG/SE as General Partner | FOUNDATION_DOCUMENT | No |
| SE_CO_KG | Gesellschaftsvertrag (partnership/shareholder agreement) | OTHER or SHAREHOLDER_AGREEMENT | No |
| SOLE_PROPRIETORSHIP | Register extract | REGISTER_EXTRACT | No |
| Stiftungen | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| Stiftungen | Trustee Agreement / Stiftungssatzung or Statement signed by the Legal Representatives | OTHER | No |
| UG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| UG | List of Shareholders | SHAREHOLDER_LIST | Yes - Automated |
| UG_CO_KG | Register extract | REGISTER_EXTRACT | Yes - Automated |
| UG_CO_KG | Shareholderlist for GmbH/UG General Partner | SHAREHOLDER_LIST | No |
| UG_CO_KG | Gesellschaftsvertrag (partnership/shareholder agreement) | OTHER or SHAREHOLDER_AGREEMENT | No |
| UG_I_GR | Articles of Association (Satzung) | FOUNDATION_DOCUMENT | No |
| UG_I_GR | Gesellschaftsvertrag (partnership/shareholder agreement) | OTHER or SHAREHOLDER_AGREEMENT | No |
| UG_I_GR | Notariell beglaubigte Urkundenrolle/Musterprotokoll | OTHER | No |
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.
| Country | Registration number | Registration issuer | Company name |
|---|---|---|---|
| DE | HRA204605 | Oldenburg (Oldenburg) | Stiftung St. Josef-Stift |
| DE | HRB18686 | Bonn | Tekcor 1. V V UG |
| DE | HRA201632 | Lüneburg | EWIV für Unternehmensberatung |
| DE | HRA12751 | Dortmund | Industrial Mercantile International Co. |
| DE | HRB39889 | Berlin (Charlottenburg) | OKV-Ostdeutsche Kommunalversicherung auf Gegenseitigkeit |
| DE | HRA928 | Koblenz | Hans Leininger, Textilgroßhandlung |
| DE | HRA551344 | Ulm | Ravensburger Verkehrs- und Versorgungsbetriebe |
| DE | GnR729 | Landshut | BürgerEnergie Niederbayern eG |
| ES | A31239833 | ---- | BEKO ERROTA SAL |
| ES | A82234113 | ---- | HOTEL BAHIA TROPICAL SA |
| ES | D92943109 | ---- | MICHAEL SCHMIDT Y CIA ENERGIA SOLAR [...] |
| ES | B40547747 | ---- | CACTUS DIGITAL SIGNAGE SOCIEDAD LIMITADA |
| ES | V54433230 | ---- | EL SECRETO DE SUS OJOS AIE |
| ES | B93050672 | ---- | PURAENVIDIA CONSULTING SL |
| ES | G83086751 | ---- | BARCLAYS GESTION FI |
| ES | B57761249 | ---- | GRUPO SA VINYA IBIZA, SOCIEDAD LIMITADA |
| ES | A79102331 | ---- | UNIDAD EDITORIAL SA |
| FR | 304141732 | ---- | ROGER & GALLET |
| FR | 790241467 | ---- | SR SIGNALETIC |
| FR | 807956966 | ---- | MENTON PARC AUTO |
| FR | 321470072 | ---- | GROUP ETUD CONSTR HAB CONSEIL |
| FR | 642050199 | ---- | AUTOMOBILES CITROEN |
| FR | 330034968 | ---- | INNOVATION ANIMATION CULTURE TOURISME |
| FR | 388843930 | ---- | RISKAUDIT IRSN-GRS INTERNATIONAL |
| FR | 332856574 | ---- | JEAN BAPTISTE POLIZZI |
| FR | 702006230 | ---- | SOFILOGIS |
| FR | 521753418 | ---- | HOLMES AND TOOLS |
| IT | BA543920 | ---- | FONDAZIONE NICOLA E VITO ANTONIO RUGGIERI |
| IT | TP131030 | ---- | MAIORANA GIUSEPPE PICCOLO IMPRENDITORE EDILE |
| IT | BA520383 | ---- | SPECIAL CARS SRL |
| IT | BI11627 | ---- | ALLEANZA COOPERATIVA TORINESE*A.C.T. |
| IT | MI152555 | ---- | UNICREDIT SERVICES S.C.P.A |
| IT | BS505351 | ---- | FUNGHI ENERGIA & SALUTE S.R.L. |
| IT | RM1046737 | ---- | CONSORZIO G.T.I. - GRUPPO TECNOLOGIE INTEGRATE IN LIQUIDAZIONE |
| IT | ME239092 | ---- | RUACH S.C. A R.L. - CONSORZIO STABILE |
For non-DE companies, the registration_issuer field is not necessary.
The following table lists industries connected with license requirements depending on the services provided by the business customer. Upload the license with document_type as OTHER.
| Industries that require licenses |
|---|
| Alcoholic Beverages (Ausschanklizenz) |
| Brokerage or Consultancy on Financial Investments |
| Waste/ Rubbish Collection, Transportation, Trade, or Brokerage |
| Insurance broker / Insurance advisor |
| Fee-based financial investment advisor |
| Realtor (Immobilienmakler) |
| Real Estate Loan Brokerage (Immobiliardarlehensvermittler) |
| Residential Property Manager (Wohnimmobilienverwalter) |
| Site supervisor (Baubetreuer) |
| Property developer (Bauträger, Bauherr) |
| Drones |
| Tour Operator (Reisevermittler) |
| Labour Leasing (Arbeitnehmerüberlassung) |
| Tax Advisor/ Tax Consultancy (Steuerberater) |
| Taxi Business (Taxenverkehr/ Taxiservice) |
| Provision of Ambulatory (Non-stationary) Care |
| Geriatric Nurses (Altenpflegerinnen und Altenpfleger) |
| Employment Agency (Arbeitsvermittlung) |
| Auctioneer/ auction houses (Auktionator) |
| Gastronomy Establishments Without Alcoholic Beverages |
| Accommodation Establishments (Beherbergungsbetriebe) |
| Loan brokerage (Darlehensvermittler) |
| Wholesale of Medicinal Products |
| Road Haulage (Güterkraftverkehr) |
| Ambulance Services (Krankentransport) |
| Trade Fairs, Exhibitions, Markets |
| Pawn Shops (Pfandleihgewerbe) |
| Podiatrist/ Medical Podiatrist |
| Showman on Funfairs (Reisegewerbe) |
| Pension Advisor (Rentenberater) |
| Pest Control (Schädlingsbekämpfung) |
| Debtor and consumer insolvency advisor |
| Covid Test Centre (Corona Schnelltestzentrum) |
| Payment service providers (Zahlungsdienstleister) |
| Register Court |
|---|
| Aachen |
| Altenburg |
| Amberg |
| Ansbach |
| Apolda |
| Arnsberg |
| Arnstadt |
| Arnstadt Zweigstelle Ilmenau |
| Aschaffenburg |
| Augsburg |
| Aurich |
| Bad Hersfeld |
| Bad Homburg v.d.H. |
| Bad Kreuznach |
| Bad Oeynhausen |
| Bad Salzungen |
| Bamberg |
| Bayreuth |
| Berlin (Charlottenburg) |
| Bielefeld |
| Bochum |
| Bonn |
| Braunschweig |
| Bremen |
| Chemnitz |
| Coburg |
| Coesfeld |
| Cottbus |
| Darmstadt |
| Deggendorf |
| Dortmund |
| Dresden |
| Duisburg |
| Düren |
| Düsseldorf |
| Eisenach |
| Erfurt |
| Eschwege |
| Essen |
| Flensburg |
| Frankfurt am Main |
| Frankfurt/Oder |
| Freiburg |
| Friedberg |
| Fritzlar |
| Fulda |
| Fürth |
| Gelsenkirchen |
| Gera |
| Gießen |
| Gotha |
| Göttingen |
| Greiz |
| Gütersloh |
| Hagen |
| Hamburg |
| Hamm |
| Hanau |
| Hannover |
| Heilbad Heiligenstadt |
| Hildburghausen |
| Hildesheim |
| Hof |
| Homburg |
| Ingolstadt |
| Iserlohn |
| Jena |
| Kaiserslautern |
| Kassel |
| Kempten (Allgäu) |
| Kiel |
| Kleve |
| Koblenz |
| Köln |
| Königstein |
| Korbach |
| Krefeld |
| Landau |
| Landshut |
| Langenfeld |
| Lebach |
| Leipzig |
| Lemgo |
| Limburg |
| Lübeck |
| Ludwigshafen a.Rhein (Ludwigshafen) |
| Lüneburg |
| Mainz |
| Mannheim |
| Marburg |
| Meiningen |
| Memmingen |
| Merzig |
| Mönchengladbach |
| Montabaur |
| Mühlhausen |
| München |
| Münster |
| Neubrandenburg |
| Neunkirchen |
| Neuruppin |
| Neuss |
| Nordhausen |
| Nürnberg |
| Offenbach am Main |
| Oldenburg (Oldenburg) |
| Osnabrück |
| Ottweiler |
| Paderborn |
| Passau |
| Pinneberg |
| Pößneck |
| Pößneck Zweigstelle Bad Lobenstein |
| Potsdam |
| Recklinghausen |
| Regensburg |
| Rostock |
| Rudolstadt |
| Saarbrücken |
| Saarlouis |
| Schweinfurt |
| Schwerin |
| Siegburg |
| Siegen |
| Sömmerda |
| Sondershausen |
| Sonneberg |
| Stadthagen |
| Stadtroda |
| Steinfurt |
| Stendal |
| St. Ingbert (St Ingbert) |
| Stralsund |
| Straubing |
| Stuttgart |
| St. Wendel (St Wendel) |
| Suhl |
| Tostedt |
| Traunstein |
| Ulm |
| Völklingen |
| Walsrode |
| Weiden i. d. OPf. |
| Weimar |
| Wetzlar |
| Wiesbaden |
| Wittlich |
| Wuppertal |
| Würzburg |
| Zweibrücken |
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). It lists all the official legal representatives you must submit. As a further indication, these people must also be listed in the Imprint of your website (Impressum).
The Legal Representative has sole representation 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 needs the complete set of information for regulatory purposes. Therefore, enter the information for 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; submit the information as it is currently written in the official register. If you already know that these individuals will change, inform your Onboarding Manager immediately.
Why do I have to submit all legal representatives here?
As a bank, Solaris must keep a record of the companies it works with and verify the provided information. The law stipulates that Solaris must collect this information for all legal representatives.
What is a “Beneficial Owner”?
A "Beneficial Owner" is a natural person (an individual) who directly or indirectly owns more than 25% of a legal entity's voting shares. Ultimately, it is the person who benefits from the agreement and holds decision-making power. It can never be another company; Solaris must identify the natural person behind any corporate ownership.
The company has no beneficial owners – how should I proceed?
If a thorough investigation shows that no individual directly or indirectly holds more than 25% of the voting shares, Solaris is required to identify the legal representatives as "fictitious" beneficial owners. Enter their information accordingly.
I don't know the ownership structure of the company – how shall I proceed?
The ownership structure is determined in the shareholder agreement (Gesellschaftsvertrag), signed when founding the entity. Any changes should be noted in amendments or updates to this contract. Consult these documents to verify ownership.
Another company owns the company – what shall I do now?
Submit the information of the natural person (individual) who owns that shareholder company. If the shareholder is also a company (holding or corporate structure), follow the trail of indirect ownership until you find an individual or the ownership is diluted below 25%.
What do you mean by direct or indirectly & how do I calculate that?
Direct ownership: A natural person owns voting shares in the business directly.
Indirect ownership: A person owns an entity that, in turn, owns a part of the business. You must also calculate ownership if entities are stacked (multi-level hierarchy) or if one individual holds shares via multiple entities. To determine the indirect quota, multiply the ownership percentages through each level of the hierarchy. If the total exceeds 25%, that person is a beneficial owner.
Example:
Adello GmbH is the company being identified.
Shareholders of Adello GmbH:
- Peter: 30% (Direct BO)
- Susi: 10%
- Anne: 10%
- Toscana GmbH: 50%
Shareholders of Toscana GmbH:
- Hugo: 75%
- Marie: 25%
Resulting Beneficial Owners of Adello GmbH:
- Peter: Yes (Direct owner with >25%)
- Hugo: Yes (Indirect owner). Calculation: 50% (Toscana's share in Adello) x 75% (Hugo's share in Toscana) = 37.5%.
- Marie: No. Calculation: 50% x 25% = 12.5% (Below the 25% threshold).
We have different kinds of shares – which shares are the decisive ones?
Use the shares with voting power, as the beneficial owner is defined by their ability to control the company's decisions.
Does the UBO need to do something, for instance, sign something or perform a video identification?
No. Submit the information exactly as stated in their official documents (ID card or passport). Beneficial owners do not need to perform a video identification or sign documents during this process.