# Consumer Fronting Loans

## Introduction

This guide explains the integration process of Solaris' Fronting Loan product for retail customers (Consumers) as a standalone solution, including the mandatory information you must collect from your customers and the necessary endpoints and webhooks you must integrate into your solution.

### Product specifications

Consumer fronting loans are currently **only** available for customers in **Germany** with a German bank account.

Check the [overview](/guides/lending/fronting/) page for more details on the product specifications.

### User journey

Your customers can apply for a fronting loan by completing the following steps:

1. **Application:** The customer applies for a loan on your frontend and provides the mandatory information.
2. **Consent:** The customer consents to Solaris' terms and conditions and the credit scoring process (SCHUFA).
3. **Approval:** If the application is approved, the customer must complete the identification process and sign the loan contract.
4. **Payout:** The loan amount will be credited to their account immediately.


## System prerequisites

Before integrating Solaris' Consumer Fronting Loans, 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](/guides/get-started/technical-setup).

**2. Legal and compliance screens**

Build the necessary legal and compliance screens in your sign-up flow to collect your customers' consent. The [Legal and compliance screens guide](/guides/get-started/onboarding-requirements/1-legal-compliance-screens) contains step-by-step instructions on how to create these screens and what they must contain.

The following screens are required to onboard B2C customers for lending standalone products:

1. [Terms and Conditions](/guides/get-started/onboarding-requirements/1-legal-compliance-screens#solaris-terms--conditions)
2. [Customer information](/guides/get-started/onboarding-requirements/1-legal-compliance-screens#customer-information)
3. [Economic interest](/guides/get-started/onboarding-requirements/1-legal-compliance-screens#economic-interest)


**Consent timestamps**

You must record the customer's consent on each screen as a UTC timestamp (e.g., `2019-01-01T00:00:00Z`) and pass it to Solaris in the following fields:

* **Solaris Terms and Conditions:** `terms_conditions_signed_at`
* **Data Processing Terms:** `data_terms_signed_at`
* **Economic Interest Declaration:** `own_economic_interest_signed_at`


These fields are part of the `person` resource where all customer data points are stored.

## Webhooks

Solaris recommends subscribing to the following webhook events to better automate your processes:

* [`IDENTIFICATION`](/api-reference/onboarding/webhooks/webhook-events/paths/identification/post): The status of a person identification has changed.
* [`IDENTIFICATION_ORIGINATION`](/api-reference/lending/identification-origination/#tag/Webhook-events): Triggered when the identification origination status changes and the payload includes the `signing_id` and/or `identification_id`, needed to trigger the identification flow.
* [`PERSON_CHANGED`](/api-reference/onboarding/webhooks/webhook-events/paths/person_changed/post): One or more attributes of the person object changed.
* [`PERSON_DELETED`](/api-reference/onboarding/webhooks/webhook-events/paths/person_deleted/post): Solaris deletes all personal data related to the given person from its system according to GDPR regulations. You are legally required to delete all personal information related to the customer specified in the payload as soon as you receive this webhook notification.
* [`ACCOUNT_SNAPSHOT`](/api-reference/lending/account-snapshot/#tag/Webhook-events): The status of a customer's account snapshot has changed.
* [`CONSUMER_FRONTING_APPLICATION`](/api-reference/lending/fronting/#tag/Webhook-events): Triggered when the status of the consumer loan application changes.


## Integration flow

The following sequence diagram gives an overview of the integration flow for the Consumer Fronting Loans solution:

![Diagram: Consumer fronting loans flow](/assets/consumer-fronting-flow.cd1467065add39ad6c272de31568b7129822e51da157e41c4a9e2095a8445ac4.da581abd.png)

### Integration steps

Integrate Solaris' Consumer Fronting Loans by completing the following steps:

| Category | Step | Description |
|  --- | --- | --- |
| **Registration** | [Step 1](#step-1-collect-customer-data-and-create-person-resource) | Collect data and create a person resource. |
| **Credit** | [Step 2](#step-2-create-customer-credit-record) | Create a credit record (SCHUFA). |
| **Application** | [Step 3](#step-3-create-consumer-fronting-loan-application) | Create the loan application. |
| **Snapshot** | [Step 4](#step-4-create-account-snapshot) | Create and link an account snapshot (if required). |
| **Docs** | [Step 5](#step-5-upload-required-documents-and-link-them-to-the-loan-application) | Upload and link supporting documents. |
| **ID & Sign** | [Step 6](#step-6-complete-the-customer-identification-and-e-signing-process) | Complete video identification and QES signing. |
| **Payout** | [Step 7](#step-7-create-the-loan) | Trigger the loan payout. |


**Note:** After the loan payout, Solaris immediately sells the loan's contract and receivables back to you (or your investors). Solaris **does not** perform any loan servicing, dunning, or collection.

### Mandatory features

You must integrate all mandatory features for Consumer Fronting highlighted in the [Onboarding requirements guide](/guides/get-started/onboarding-requirements/6-mandatory-features/#lending) before going live.

## Step 1: Collect customer data and create person resource

The customer must provide the mandatory data points in your sign-up flow, including all the timestamps of the customer's consent to the [legal and compliance screens](#system-prerequisites). Afterward, pass all the data points to Solaris by creating a person resource to represent your customer.

**API reference**

For a complete list of endpoints, properties, and examples related to the `person` resource, visit the following links:

- [Person resource API reference](/api-reference/onboarding/persons/#tag/Persons)
  - [POST Create person](/api-reference/onboarding/persons/#tag/Persons/paths/~1v1~1persons/post)
  - [GET Retrieve a person](/api-reference/onboarding/persons/#tag/Persons/paths/~1v1~1persons~1%7Bid%7D/get)
  - [PATCH Update person](/api-reference/onboarding/persons/#tag/Persons/paths/~1v1~1persons~1%7Bid%7D/patch)


**Related webhook events**

- [`PERSON_CHANGED`](/api-reference/onboarding/webhooks/webhook-events/paths/person_changed/post)
- [`PERSON_DELETED`](/api-reference/onboarding/webhooks/webhook-events/paths/person_deleted/post)


Important points about data collection
- Review the special requirements in the [Onboarding requirements guide](/guides/get-started/onboarding-requirements/2-data-collection/#important-considerations-for-data-collection).
- 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`, and `birth_date`. If you create over 1000 identical person resources, the API will return a `400` error.
- **Privacy:** Do not use real personal data when testing in Sandbox.


### POST Create person

Create a person resource to represent your customer. You must include the following data points in the request body to satisfy the requirements for German Consumer Loans.

**Mandatory fields for retail customers in Germany:**

* `salutation`
* `first_name`
* `last_name`
* `email`
* `mobile_number`
* `birth_date`
* `birth_city`
* `birth_country`
* `nationality`
* `employment_status`
* `address`:
  * `line_1`
  * `line_2` (optional)
  * `postal_code`
  * `city`
  * `country`
* `tax_information`:
  * `marital_status`
* `terms_conditions_signed_at`
* `data_terms_signed_at`
* `own_economic_interest_signed_at`


**Request URL**


```shell
POST /v1/persons
```

* [API Reference: Create person](/api-reference/onboarding/persons/#tag/Persons/paths/~1v1~1persons/post)


## Step 2: Create customer credit record

In this step, you must create a consumer credit record and link it to the person resource of the relevant customer.

### What is a credit record?

The credit record contains the customer's credit data and history. Creating a credit record is mandatory for Lending integrations, as it is used for credit scoring to determine the customer's creditworthiness and eligibility.

Important
**Regional Availability:**

* **Germany:** The credit record is required. Information is retrieved from SCHUFA (German credit bureau).
* **France, Italy, Spain:** A credit record is **not** required. Instead, creating a tax identification for the customer substitutes this requirement.


### Create a credit record

To create a credit record, you must choose a `source` in the request body:

1. **`source: solarisBank` (Automated)**
Solaris retrieves the customer's record directly from SCHUFA. This is the standard recommended process.
2. **`source: partner` (Manual Upload)**
You collect the credit record manually from SCHUFA or third-party providers and upload it to Solaris.
  * **Requirement:** You must Base64-encode the file and pass the content in the `file` field.


**Endpoints:**

Depending on your customer type, use one of the following endpoints:

**Retail Customers**


```shell
POST /v1/persons/{person_id}/credit_records
```

* [API Reference: Create retail credit record](/api-reference/lending/credit-record/#operation/PersonCreditRecordWeb.V1.CreditRecords.CreateOperation)


**Freelancers**


```shell
POST /v1/freelancers/persons/{person_id}/credit_records
```

* [API Reference: Create freelancer credit record](/api-reference/lending/credit-record/#operation/PersonCreditRecordWeb.V1.CreditRecords.CreateFreelancerOperation)


### GET Retrieve a credit record

Call this endpoint to check the status and validity of an existing credit record.

**Request URL**


```shell
GET /v1/persons/{person_id}/credit_records/{credit_record_id}
```

**Expiry Logic:**
If the `status` of the retrieved credit record is `expired`, you must create a new record for the customer before proceeding with a loan application.

* [API Reference: Retrieve credit record](/api-reference/lending/credit-record/#operation/PersonCreditRecordWeb.V1.CreditRecords.ShowOperation)


## Step 3: Create consumer fronting loan application

After collecting the mandatory personal information and creating a `person` resource, you must collect additional information related to the loan application and pass it to Solaris using the following endpoint.

### POST Create consumer fronting loan application

This endpoint creates a consumer fronting loan application. The application includes all required information (applicant info, credit record, loan terms, IBAN) which Solaris' credit scorer uses to initiate credit checks.

**Mandatory Properties:**

* **SEPA References:**
  * `transaction_description`: Reference visible to the recipient. **Constraint:** SEPA characters only.
  * `transaction_end_to_end_id`: ID routed through the payment process. **Constraint:** String, max 35 characters, no whitespace.
* **Loan Terms:**
  * `requested_loan_amount`, `requested_loan_term`, `requested_interest_rate`.
  * `repayment_day_of_month`: Day for monthly installments.
  * `loan_purpose`: Reason for the application.
* **Recipient Details:**
  * `recipient_name` & `recipient_iban`: Payout destination.
  * `partner_snapshot_allowed`: (`boolean`) Determines if a partner snapshot is required.
* **Financial & Scoring Data:**
  * `net_income_amount`: Monthly net income object.
  * `living_situation`: Housing status (e.g., `LIVING_IN_RENTED_HOUSE`).
  * `living_situation_amount`: Monthly housing costs object.
  * `existing_credit_repayment_excluding_mortgage`: Other debt obligations object.
  * `private_insurance_amount`: Monthly insurance costs (Default: `0`).
  * `number_of_kids`: Children under 18 (Default: `0`).
  * `credit_record_id`: The ID of the credit record created for the customer.


**Request URL**


```shell
POST /v1/consumers/persons/{person_id}/fronting_loan_applications
```

**Response example**

* [API Reference: Create application](/api-reference/lending/fronting/#operation/FrontingLoansWeb.V1.Consumer.Application.CreateOperation)


Status Flow Logic
The next step depends on the `partner_snapshot_allowed` field:

* **True:** The status transitions to `account_snapshot_pending`. You must create an account snapshot and link it as explained in [Step 4](#step-4-create-account-snapshot).
* **False:** The status transitions to `binding_offer_scoring_pending`. You must continue the flow from [Step 5](#step-5-upload-required-documents-and-link-them-to-the-loan-application).


### GET Retrieve consumer fronting loan application

This endpoint returns the current `status` and details of an existing consumer fronting loan application.

**Request URL**


```shell
GET /v1/consumers/persons/{person_id}/fronting_loan_applications/{application_id}
```

* [API Reference: Retrieve application](/api-reference/lending/fronting/#operation/FrontingLoansWeb.V1.Consumer.Applications.ShowOperation)


For a list of possible values of the application status and their descriptions, check the [appendix](#consumer-fronting-loan-application-status).

## Step 4: Create account snapshot

In this step, you must create an account snapshot for the customer and link it to their consumer loan application. Complete this step **only** if the field `partner_snapshot_allowed` is set to `true`.

### What is an account snapshot?

The account snapshot contains a breakdown of the customer's account information, such as balance, transactions, bookings, and recurrent repayment amounts over a specific period. It is mandatory for Lending integrations, as it is used for credit scoring to verify the customer's financial data.

### Create an account snapshot

Call the endpoint below to create a snapshot. You must specify the `source` field to determine the integration method.

**Request URL**


```shell
POST /v1/persons/{person_id}/account_snapshots
```

* [API Reference: Create snapshot](/api-reference/lending/account-snapshot/#operation/AccountSnapshotWeb.V1.AccountSnapshots.CreateOperation)


### Method 1: FinTecSystems (FTS)

Use this method to integrate the FTS wizard.

1. Integrate the FTS wizard in your solution (see [FTS Documentation](https://docs.fintecsystems.com/)).
2. Call the endpoint with `source: FIN_TECH_SYSTEMS`. Optionally, include the `iban`.
3. Use the returned `wizard_session_key` to initialize the FTS wizard.
4. The customer enters their credentials in the wizard.


**Request:**

**Response:**

### Method 2: Finreach

Use this method to integrate the FinX widget.

1. Integrate the FinX widget (see [FinX Documentation](https://docs.finx.finleap.cloud/#section/Native-Mobile-App-Integration)).
2. Call the endpoint with `source: FINREACH`.
3. Redirect the customer to the URL provided in the `location` field.


**Request:**

**Response:**

### Method 3: Partner (Manual Upload)

Use this method if you have your own connection to a third-party provider and want to upload the data directly.

* Set `source` to `PARTNER`.
* Include the full data structure in `snapshot_data`.


**Request:**

### Method 4: Solaris (Internal)

Use this method if the customer already has a Solaris account.

* Set `source` to `SOLARISBANK`.
* Include the `account_id` of the Solaris account.


**Request:**

**Response:**

### GET Retrieve account snapshot

Call this endpoint to check the status and validity of an existing snapshot.

**Request URL**


```shell
GET /v1/persons/{person_id}/account_snapshots/{account_snapshot_id}
```

* If the status is `expired`, you must create a new snapshot.
* Subscribe to the `ACCOUNT_SNAPSHOT` webhook for status updates.


* [API Reference: Retrieve snapshot](/api-reference/lending/account-snapshot/#operation/AccountSnapshotWeb.V1.AccountSnapshots.ShowOperation)


### PUT Link account snapshot to consumer fronting loan application

After creating an account snapshot, use this endpoint to link it to the application. You must add the `account_snapshot_id` in the request body.

After linking, the application `status` changes to `scoring_pending`.

**Request example**

* [API Reference: Link snapshot](/api-reference/lending/fronting/#operation/FrontingLoansWeb.V1.Consumer.Applications.LinkAccountSnapshotOperation)


## Step 5: Upload required documents and link them to the loan application

In this step, you must upload the required documents and link them to the consumer fronting loan application. The necessary documents are agreed upon with Solaris' credit risks team and legal team during the project phase (e.g., proof of income).

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

### API reference

For a complete list of endpoints, properties, and examples related to the `person document` resource, visit the following links:

- [Person documents API reference](/api-reference/onboarding/persons/#tag/Person-documents)
  - [POST Create a document for a person](/api-reference/onboarding/persons/#tag/Person-documents/paths/~1v1~1persons~1%7Bperson_id%7D~1documents/post)
  - [GET Retrieve metadata about a document](/api-reference/onboarding/persons/#tag/Person-documents/paths/~1v1~1persons~1%7Bperson_id%7D~1documents~1%7Bid%7D/get)
  - [GET Download a document](/api-reference/onboarding/persons/#tag/Person-documents/paths/~1v1~1persons~1%7Bperson_id%7D~1documents~1%7Bid%7D~1file/get)
  - [GET Index a person's documents](/api-reference/onboarding/persons/#tag/Person-documents/paths/~1v1~1persons~1%7Bperson_id%7D~1documents/get)
  - [PATCH Update document attributes](/api-reference/onboarding/persons/#tag/Person-documents/paths/~1v1~1persons~1%7Bperson_id%7D~1documents~1%7Bid%7D/patch)
  - [DELETE Delete a document](/api-reference/onboarding/persons/#tag/Person-documents/paths/~1v1~1persons~1%7Bperson_id%7D~1documents~1%7Bid%7D/delete)


#### POST Create document

This endpoint uploads a document and links it to the person with the `person_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**


```shell
POST /v1/persons/{person_id}/documents
# request parameters
..
Content-Disposition: form-data; name="file"; filename="filename.png"
Content-Type: image/png
..
Content-Disposition: form-data; name="document_type"

OTHER
..
```

[Click here to view the full API reference](/api-reference/onboarding/persons/#tag/Person-documents/paths/~1v1~1persons~1%7Bperson_id%7D~1documents/post)

## Scoring

After linking the required resources, Solaris' credit scoring system analyzes the application data, financial information, and transaction history to assess creditworthiness.

**Outcomes:**

1. **Identification Required (Standard):**
  * If the application passes scoring, the status transitions to `offered`.
  * Proceed to [Step 6](#step-6-complete-the-customer-identification-and-e-signing-process).
2. **Identification Skipped (Existing Customer):**
  * If the customer is already identified (and no new identification is required), the status directly transitions to `accepted`.
  * You can skip Step 6 and trigger the loan payout immediately in [Step 7](#step-7-create-the-loan).
3. **Rejected:**
  * If the application fails scoring, the status transitions to `rejected`.
  * **Action:** Notify the customer of the rejection.


Legal Requirement: Loan Offer
Regardless of the identification route, you **must** generate the loan offer and send it to the customer. You must collect their explicit acceptance of the loan agreement before triggering the payout.

## Step 6: Complete the customer identification and e-signing process

In this step, you must prompt the customer to complete the identification process via a video identification session (IDnow). During this session, an agent will verify the customer's data and collect the customer's **qualified electronic signature (QES)** on the loan contract.

### POST Create identification origination

This endpoint creates a customer identification for the purpose of issuing the loan. It also triggers the e-signing process for the QES.

**Request example**

**Response:** Returns an `identification_origination_id`. Status is initially `identification_trigger_pending`.

* [API Reference: Create origination](/api-reference/lending/identification-origination/#operation/IdentificationOriginationWeb.V1.IdentificationOrigination.CreateOperation)


### PUT Link identification origination to loan application

Link the identification resource to the loan application. The status transitions to `identification_trigger_pending`.

**Request example**

* [API Reference: Link identification](/api-reference/lending/fronting/#operation/FrontingLoansWeb.V1.Consumer.Applications.LinkIdentificationOperation)


### GET Retrieve identification origination

Call this endpoint to check the `identification_origination_status` and get the `esigning_id` and `identification_id` required to prompt your customer to complete the process.

Once the identification flow is created, the loan application `status` transitions to `identification_pending`.

**Request URL**


```shell
GET /v1/identification_origination/persons/{person_id}/identifications/{identification_origination_id}
```

* [API Reference: Retrieve origination](/api-reference/lending/identification-origination/#operation/IdentificationOriginationWeb.V1.IdentificationOrigination.ShowOperation)


For a list of possible values of the `status` of the identification origination and their descriptions, check the [appendix](#identification-origination-status).

### GET Retrieve identification details

Use the `identification_id` to get the video identification details, such as the IDnow `reference` and `url`. Redirect the customer to this URL.

**Request URL**


```shell
GET /v1/persons/{person_id}/signings/{id}
```

* [API Reference: Retrieve details](/api-reference/identity/identifications/#tag/Person-signings/paths/~1v1~1persons~1%7Bperson_id%7D~1signings~1%7Bsigning_id%7D/get)


For a list of possible values of the `status` of the IDnow process and their descriptions, check the [appendix](#idnow-status).

### GET Retrieve the signed contracts

After successful identification (`status: successful`), call this endpoint to retrieve the signed documents.

**Request URL**


```shell
GET /v1/persons/{person_id}/signings/{id}
```

Document Types
The loan-related documents will have a `document_type` value of `SIGNED_CONTRACT`. You can distinguish them by the document ID suffix:

* `_ldoc`: Indicates a signed **SDD mandate**.
* `_cdoc`: Indicates a signed **Loan Contract**.


## Step 7: Create the loan

After the identification and e-signing reaches the status `successful` (or if ID was skipped), trigger the loan payout. The fronting application status must be set to `accepted` before you can proceed.

### POST Trigger loan payout

This endpoint triggers the transfer from the Solaris settlement account to the customer.

**Request example**

**Response:** Returns `loan_id` and status `payout_pending`.

* [API Reference: Trigger payout](/api-reference/lending/fronting/#operation/FrontingLoansWeb.V1.Consumer.Applications.PayoutOperation)


### GET Retrieve consumer fronting loan

Retrieve loan details and track the `CONSUMER_FRONTING_LOAN_PAYOUT` webhook.

**Request URL**


```shell
GET /v1/consumers/persons/{person_id}/fronting_loans/{loan_id}
```

See [Appendix I](#consumer-fronting-loan-payout-status) for a full list of status values and descriptions.

* [API Reference: Retrieve loan](/api-reference/lending/fronting/#operation/FrontingLoansWeb.V1.Consumer.Loans.ShowOperation)


### Money flow

After triggering payout, you must execute the following transfers:

1. **Payout:** Solaris transfers funds from the **Settlement Account** -> **Customer Account**.
2. **Agio (If applicable):** Solaris transfers the agio (commission) from the **Settlement Account** -> **Your Collection Account**.
3. **Settlement:** You must transfer the **full loan amount** (Net + Agio) from **Your Collateral Account** -> **Solaris Settlement Account**.
4. **Sale:** Solaris sells back the loan agreement and receivables to you (or other investors).


Critical
The loan payout amount must equal the minimum balance of the collateral account. Otherwise, the payout will fail.

When all transfers complete, the status changes to `payout_issued`.

## Related resources

* [Consumer Fronting API Reference](/api-reference/lending/fronting/#tag/Consumer-fronting)
* [Identification Origination API Reference](/api-reference/lending/identification-origination/#tag/Identification-Origination)
* [Video Identification Guide](/guides/kyc/videoident)
* [SEPA Transfers Guide](/guides/digital-banking/sepa-transfers/)


## Appendix I: Enums

### Consumer fronting loan application status

| Status | Description |
|  --- | --- |
| `account_snapshot_pending` | If `partner_snapshot_allowed` is `true`, status is `account_snapshot_pending` until you link a snapshot. |
| `binding_offer_scoring_pending` | If `partner_snapshot_allowed` is `false`, status is `binding_offer_scoring_pending`. Scoring follows. |
| `scoring_pending` | An account snapshot has been linked. Credit scoring is in progress. |
| `offered` | Scoring passed. Identification is pending. |
| `identification_trigger_pending` | Identification resource linked. |
| `identification_pending` | Identification flow triggered. Waiting for customer action. |
| `accepted` | Identification successful (or skipped). Application approved. |
| `rejected` | Scoring or Identification failed. |
| `expired` | Application expired (time limit exceeded). |
| `loan_created` | Payout triggered. |


### Consumer fronting loan payout status

| Status | Description |
|  --- | --- |
| `payout_pending` | Payout triggered. |
| `payout_issued` | Transfers completed. Money sent to customer. |


### Document types

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. |


### Identification documents

1. List of accepted passports for video identification via IDnow: [here](https://go.idnow.de/bafin2017/documents)
2. List of accepted passports for postIdent: [here](//assets.ctfassets.net/8zxfdz0ps59a/3MjoXQpeatxH4C2rfiDUc3/f89f426b11539d21d4f680f20d37c607/dp-postident-ausweisliste-filiale.pdf)
3. Search for an identification document: [here](https://www.consilium.europa.eu/prado/en/search-by-document-country.html)


#### List of passports with address

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 |


### Identification origination status

| Status | Description |
|  --- | --- |
| `identification_trigger_pending` | The identification origination resource has been created, which triggers both the video identification and e-signing process. |
| `esign_pending` | The e-signing process has been generated. You have to call the GET identification origination method to get the `identification_id` and the `esigning_id` you need to prompt your customers to complete both processes. |
| `identification_completion_pending` | The customer's identification process must be completed. You have to obtain the video identification URL by calling the GET signing method using the `esigning_id` and redirect your customer to complete the video identification with IDnow. |
| `screening_pending` | The customer has completed the video identification and e-signing and Solaris is performing the customer's screening and risk checks. |
| `failed` | The customer's e-signing or identification or risk screening has failed. |
| `completed` | The customer identification process is successful. |
| `expired` | The customer identification has expired, i.e., the customer has failed to complete the required identification steps within the specifed period. |


### 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.

| 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.