Consumer Overdrafts
This guide explains the integration process for Solaris' Overdraft product for retail customers (Consumers), including the mandatory information you must collect from your customers and the necessary endpoints and webhooks you must integrate into your solution.
Introduction
Product specifications
Consumer overdrafts are currently only available for customers in Germany with a current bank account with Solaris. For step-by-step instructions on person onboarding for Digital Banking and Cards, check the Person onboarding guide.
Check the overview page for more details on the product specifications.
User journey
Your customers can apply for an overdraft on your frontend by completing the following steps:
- Provide the mandatory information for overdrafts onboarding.
- Consent to Solaris' performing an account snapshot and credit checks in relation to the overdraft application.
- Once the customer passes the credit checks, the application will be approved, and the customer receives a notification and the pre-contractual overdraft agreement and terms and conditions to review.
- The customer must sign the overdraft's terms and conditions and agreement.
- Solaris creates the overdraft on the customer's account and the customer can use the overdraft limit right away.
Credit scoring
Solaris uses an automated credit scoring system to make informed credit decisions on consumer overdraft applications. The scorer collects and analyzes different information, such as the customer's financial information, credit data, transaction history, and outstanding loans, to assess their creditworthiness and determine their risk level and credit eligibility.
Based on different checks done throughout the application lifecycle, the scorer estimates the probability of default (PD), assigns a rating class to the customer, which determines whether an overdraft is offered and the limit amount granted.
Credit risk analysis
The scorer uses the following information in the credit risk analysis:
1. Account snapshot
Solaris collects information about the customer's account data and history from their current account with Solaris. Such information includes account balance, transaction history, bookings, and recurrent repayment amounts.
2. Information from credit agencies
Credit information and score about the customer, collected from external credit bureaus (e.g., SCHUFA).
note
Currently, external Credit Bureaus refer to SCHUFA. However, Solaris' scorer interface supports handling any number of external sources.
Webhooks
Solaris recommends subscribing to the following webhook events to better automate your processes:
CONSUMER_OVERDRAFT_APPLICATION
: The status of a consumer overdraft application has changed.CONSUMER_OVERDRAFT
: The status of a consumer overdraft has changed.OVERDRAFT_LIMIT_CHANGE
: The overdraft limit has changed.
For detailed instructions on implementing Solaris webhooks, check the webhooks documentation.
Integration flow
The following sequence diagram gives an overview of the integration flow for the Consumer Overdrafts solution:
Integration steps
Important
Overdrafts can only be offered to existing customers who already have a current account.
Integrate Solaris' Consumer Overdrafts by completing the following steps:
Consumer overdraft application creation
- Collect the required information for the overdraft application from your customers on your frontend.
- Customers consent to performing an account snapshot and credit checks in relation to the overdraft application.
- Create a credit record for the customer by completing Step 1.
- Create a consumer overdraft application by completing Step 2.
- Solaris' credit scoring system assesses the credit record and application data and issues a verdict on the overdraft application with either rejection or acceptance.
Overdraft creation and servicing
If Solaris rejects the overdraft application, notify the customer of the rejection on your frontend.
If Solaris accepts the overdraft application:
- Notify the customer of the approval on your frontend.
- Download SECCI and overdraft terms and conditions forms by completing Step 3
- Send Solaris' special terms and conditions for overdrafts and the pre-contractual overdraft agreement to the customer as a PDF.
- Record the customer's consent to the terms and conditions and the overdraft loan agreement as a UTC timestamp.
- Create the overdraft on the customer's account by completing Step 4.
- Solaris credits the overdraft limit to the customer's account as an external balance.
- Check the section Servicing overdrafts for additional information on how to maintain and service overdrafts for your customers.
You can find detailed descriptions of these steps and their related endpoints in the following sections.
Step 1: Create consumer 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 usually required in lending products integrations as it's used for credit scoring to determine the customer's creditworthiness and eligibility.
Important
- The credit record is only valid for onboardings in Germany since the information is retrieved from SCHUFA, which is a German credit bureau.
- For lending onboardings in other countries, such as France, Italy, and Spain, creating a tax identification for the customer substitutes a credit record.
Integrate the following endpoints to create credit records for your retail customers.
API reference
Visit the following link to find all the endpoints related to the credit record resource, including related properties and examples.
To create a credit record for your customer, you can use one of the following endpoints depending on your customer type. You can create a credit record in two ways:
1. Via Solaris:
To create a credit record via Solaris, set the source
field to solarisBank
in the request body and Solaris will pull the customer's record directly from SCHUFA.
2. Manual upload:
In this case, you will collect the credit record manually through SCHUFA and/or other third-party service providers and upload the file to Solaris. Set the source
field to partner
and include the file content in the file
field (Base64-encoded).
POST Create a credit record for a retail customer
Request URL
POST /v1/persons/{person_id}/credit_records
Click here to view the full API reference
POST Create a credit record for a freelancer
Request URL
POST /v1/freelancers/persons/{person_id}/credit_records
Click here to view the full API reference
GET Retrieve a credit record
This endpoint returns the information about a customer's existing credit record, including the status and validity of the credit record. Add the person_id
and the credit_record_id
in the request URL. If the status
of the credit record is expired
, you must create a new one for the customer.
Request URL
GET /v1/persons/{person_id}/credit_records/{credit_record_id}
Click here to view the full API reference
Step 2: Create consumer overdraft application
In this step, you must pass the mandatory information you collected from the customer in your sign-up flow to Solaris by creating a consumer overdraft application.
The overdraft application includes all the required information about the customer and links to other mandatory resources, such as credit_record
or account_iban
.
POST Create consumer overdraft application
This endpoint creates a consumer overdraft application for the customer with the person_id
specified in the request URL.
Mandatory properties:
Add the following mandatory properties in the request body:
credit_record_id
: The unique ID of a person's credit record, generated after creating a credit record.net_income_amount
: The customer's net income, declared in the sign-up flow.identification_id
: The unique identification ID of a person generated after completing the person identification process.employment_status
: The consumer's employment status, declared by the customer in the sign-up flow. Possible values are:EMPLOYED
,UNEMPLOYED
,PUBLIC_SECTOR_EMPLOYEE
,PROFESSIONAL_SOLDIER
,FREELANCER
,HOUSEWORK
,APPRENTICE
,MANAGEMENT
,RETIRED
,STUDENT
,SELF_EMPLOYED
, orMILITARY_OR_COMMUNITY_SERVICE
.account_iban
: The IBAN of a person account.
Optional properties:
partner_requested_limit
: A field to request a specific overdraft limit amount. Add the amount in Euro, cents.minimum_credit_risk_criteria
: An object that contains different credit risk related properties that are required for the credit scoring system. This field could be mandatory depending on your use case. If applicable, Solaris will share with you the fields that you must collect from the customer.
Request URL
POST /v1/persons/{person_id}/consumer_overdraft_applications
Response example
The API call returns an object with a unique id
for the consumer overdraft application, including the application status
, set initially to scoring_pending
, and the remaining attributes, which will be populated during the application lifecycle.
{
"status_description": "string",
"status": "scoring_pending",
"person_id": "dc1a6812a14f6cc338cd084208535bcdcper",
"partner_risk_class": "D",
"partner_reference_number": "123456",
"partner_id": "6ee8e4c8bdc2f9b15870c989706aa9cccpar",
"partner_contact_number": "+491565904345",
"partner_contact_name": "Peter Mustermann",
"overdraft_id": "null",
"net_income_amount": {
"value": 1000,
"unit": "cents",
"currency": "EUR"
},
"minimum_credit_risk_criteria": {
"criteria_1": false,
"criteria_2": 0.2
},
"limit": {
"value": 0,
"unit": "cents",
"currency": "EUR"
},
"identification_id": "9dfe2f4edaa67138be0c0c1cd3a7d849cidt",
"id": "b83z264de98741018419b53648e20ca9coap",
"employment_status": "EMPLOYED",
"credit_record_id": "fbb7d15fa4c54ba0b077592665ef04a4ccrd",
"created_at": "2020-20-03T18:01:48.000Z",
"account_iban": "DE87110101001000057123"
}
Click here to view the full API reference
GET Retrieve consumer overdraft application
This endpoint returns the current status and details of an existing consumer overdraft application. For a list of possible values of the application status
and their descriptions, check the appendix.
Additionally, subscribe to the webhook event CONSUMER_OVERDRAFT_APPLICATION
to receive status updates on the application.
Request URL:
GET /v1/persons/{person_id}/overdraft_applications/{overdraft_application_id}
Click here to view the full API reference
note
- Creating an overdraft application automatically triggers the credit scorer, which evaluates the application's data and the applicant's credit risk to determine the customer's eligibility for an overdraft and the limit to be granted. Check the credit scoring section for more information.
- If the application is rejected, the status changes to
rejected
and you should notify the customer of the rejection. - If the application is accepted, the status changes to
offered
and you can continue with the next step to activate the overdraft.
Step 3: Download SECCI and conditions form
In this step, you must download the following documents and share them with the customer:
- A SECCI form: an overview of the final overdraft offer.
- Overdraft conditions: the terms and conditions of the overdraft.
GET Download SECCI form
Request URL
GET /v1/persons/{person_id}/consumer_overdraft_applications/{application_id}/pre_contract
Click here to view the full API reference
GET Download overdraft conditions form
Request URL
GET /v1/persons/{person_id}/consumer_overdraft_applications/{application_id}/conditions
Click here to view the full API reference
Step 4: Create consumer overdraft
After Solaris approves the overdraft application, you must complete the following steps:
- Inform the customer of the approval on your frontend, and send as a PDF the overdraft pre-contractual agreement and terms and conditions. Solaris will provide these documents.
- Collect and record the customer's consent to the overdraft's special terms and conditions and agreement as a UTC timestamp. The consent must NOT be older than 24 hours.
- Create the overdraft on the customer's account by calling PUT Create the overdraft.
PUT Create the overdraft
This endpoint creates the overdraft on the customer's account. You must include the customer's application_id
and person_id
in the request URL. Additionally, include the following mandatory properties in the request body:
account_id
: The ID of the customer's account at Solaris.tnc_accepted_at
: The UTC timestamp from when the customer's accepted the overdraft's terms and conditions and agreement.
Request URL
PUT /v1/persons/{person_id}/consumer_overdraft_applications/{overdraft_application_id}/overdraft
Response example
The API call returns the overdraft information, including the overdraft id
, limit
, and overdraft_rate
. Afterward, the overdraft application status should change to overdraft_created
.
{
"status": "created"
"person_id": "dc1a6812a14f6cc338cd084208535bcdcper",
"overdraft_rate": 8,
"limit": {
"currency": "EUR",
"unit": "cents",
"value": 3000
},
"interest_accural_rate": 0,
"id": "229dk5f7ba3b4d69be20555dce1c8a3ccovd",
"created_at": "2020-20-03T18:01:48.000Z",
"consumer_application_id": "b83z264de98741018419b53648e20ca9coap",
"account_iban": "DE87110101001000057123"
}
Click here to view the full API reference
GET Retrieve consumer overdraft
This endpoint returns all the details of an existing consumer overdraft, assigned to the person with the person_id
in the request URL. Additionally, subscribe to the webhook event CONSUMER_OVERDRAFT
to receive status updates about the overdraft.
note
Please note that the webhook sends status updates only. You have to call the GET
method for the full overdraft details.
Request URL
GET /v1/persons/{person_id}/consumer_overdrafts/{overdraft_id}
Response example
The API call returns the overdraft object with the unique id
and includes the overdraft's details, such as limit
and overdraft_rate
. The status
returned in the response refers to the overdraft's status. For a list of possible values and their descriptions, check the Appendix.
{
"status": "created",
"person_id": "dc1a6812a14f6cc338cd084208535bcdcper",
"overdraft_rate": 9,
"negative_since": "2021-08-03T18:01:48Z",
"limit": {
"value": 1000,
"unit": "cents",
"currency": "EUR"
},
"interest_accrued": {
"value": 1000,
"unit": "cents",
"currency": "EUR"
},
"interest_accrual_rate": 3,
"id": "00556cd181f2409aaa6c2a033cce3a8fcovd",
"created_at": "2021-08-03T18:01:48.000Z",
"consumer_application_id": "b83z264de98741018419b53648e20ca9coap",
"account_iban": "DE87110101001000057123"
}
Click here to view the full API reference
Servicing overdrafts
This section includes important information about handling and monitoring active overdrafts.
Overdrafts limits and interest
Overdraft limits cannot be exceeded for any SEPA transfers, direct debits, payments, or withdrawals, except for charged interest fees by Solaris. Any payment exceeding the limit will be rejected.
Overdrafts monitoring (Optional)
For specific overdraft-related events, you can monitor the account, implement specific event triggers, and provide pre-defined messages to the user.
For example, you can implement event triggers and send out reminders to customers in the following events:
- The customer has used 90% of the overdraft limit or only 100€ remaining in the limit.
- Three days before the interest payment is due to customers with a used overdraft at the end of each quarter.
Overdrafts booking types
Using the overdraft limit reflects on the customer's account statement for interest charges. The following booking types are distinct to overdraft interest charges:
InterestOverdraft
: The interest accrued in relation to the used portion of the overdraft limit.InterestOverdraftExceeded
: The interest accrued in relation to exceeding the overdraft limit (Note that the limit itself cannot be exceeded for regular transactions except for interest charges).
Overdrafts termination
To terminate an overdraft, you must send an overdraft termination request to Solaris either via creating a JIRA ticket or by sending an email to support@solarisbank.de. Solaris will process the request internally and remove the overdraft limit from the customer's account.
attention
Terminating an overdraft CANNOT be reversed. However, a customer can apply for a new overdraft.
Account closure for accounts with an overdraft
In case of Account Closure Requests (ACR) for accounts with an attached overdraft, you must first terminate the overdraft before initiating the ACR process.
Overdrafts in statements of account & bank statements
Each statement of account and bank statement generated for customers with overdrafts will contain the following overdraft information for the statement period:
overdraft_facility
: Overdraft facility that has been granted to the customer.overdraft_rate
: The increased interest rate applied when going below the granted overdraft facility.interest_accrual_rate
: The daily rate at which interest is accrued on the used amount of an overdraft.interest_accrued
: The interest accrued, in Euro cents.
See the Account management guide for more information.
What's next?
Congratulations! You've successfully integrated Solaris' Consumer Overdraft 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.
Useful resources
Check the following links for additional related guides and API reference documentation.
Appendix I: Enums
Consumer overdraft application statuses
These are the possible values for the field status
in the consumer overdraft application resource.
Status | Description |
---|---|
scoring_pending |
Solaris successfully received the overdraft application and is assessing and scoring the application. |
offered |
Credit checks were successful, and Solaris approved the overdraft application. |
rejected |
Credit checks were unsuccessful, and Solaris rejected the overdraft application. |
overdraft_created |
The overdraft is created in the customer's account. |
Consumer overdraft statuses
These are the possible values for the field status
, which indicates the status of an overdraft that is already offered.
Status | Description |
---|---|
created |
The overdraft is created. |
conditions_pending |
Interest conditions are pending and yet to be set by Solaris. |
limit_pending |
Overdraft limit is pending and yet to be set by Solaris. |
attached |
Overdraft is attached to the customer's account. |
terminated |
Overdraft is terminated. |