The Savings Account product enables your customers to open overnight deposit accounts (Tagesgeld) that earn interest on end-of-day balances.
Unlike fixed-term deposits, customers can transfer funds in and out of their savings account instantly via their main Solaris current account. Solaris handles the interest calculation (daily) and payout (monthly), as well as the submission of tax exemption orders (Freistellungsauftrag) to the relevant authorities.
- Daily Accrual: Interest is calculated daily based on the end-of-day balance.
- Monthly Payout: Solaris settles earned interest on the first day of the following month (Valuta: last day of the previous month).
- Interest Caps: Interest accrues only up to a defined balance limit per partner. Amounts exceeding this cap do not earn interest.
- Reference Account: The savings account is strictly linked to the customer's main Solaris current account. Funds can only move between these two accounts.
- Tax Management: Retail customers can submit a Tax Exemption Order to exempt specific amounts of capital gains from taxation.
- Interest Profiles: Custom interest conditions can be defined at the partner level.
This product is exclusively available to customers of the German (DE) Branch who possess a valid German Tax ID. Customers with non-German tax IDs cannot open a Savings Account.
- Customer Segments: Available for Retail (B2C), Business (B2B), and Freelancers.
- Account Limit: Maximum one active Savings Account per customer per partner.
- Main Account: The customer must have an active Solaris current account before opening a savings account.
Before offering the product, prompt the customer to confirm the validity of their registered German Tax ID.
Use GET Index tax identifications to retrieve the stored data.
Follow the standard Account Opening Request process. However, you must use the specific product_name and account_type values listed below.
| Customer Segment | product_name | account_type |
|---|---|---|
| Retail (Consumer) | SAVINGS_ACCOUNT_CONSUMER_GERMANY | SAVINGS_PERSONAL |
| Business | SAVINGS_ACCOUNT_BUSINESS_GERMANY | SAVINGS_BUSINESS |
| Freelancer | SAVINGS_ACCOUNT_FREELANCER_GERMANY | SAVINGS_SOLE_PROPRIETOR |
Solaris automatically applies a credit block to the new Savings Account. This ensures no funds can be deposited until the account is successfully mapped to a main account (Step 3).
Once the Savings Account is OPENED, you must link it to the customer's main current account. This action removes the credit block, registers the account with our tax service provider, and attaches the interest profile.
Solaris enforces the following constraints during mapping. Ensure your application logic respects these rules to avoid errors:
- Ownership Match: The main account must belong to the same Person or Business ID as the savings account.
- Active Status: The main account must be
ACTIVEand have no blocking flags. - 1:1 Relationship: A savings account can only be mapped to one main account.
- Single Savings Account: A main account cannot be linked to multiple savings accounts simultaneously.
This is an asynchronous process. You must subscribe to the DEPOSIT_ACCOUNT_UPDATED webhook to receive the final success or failure status.
Endpoint: POST /v1/persons/{person_id}/deposit_accounts/{account_id}/mappings
{
"reference": "73a46685-8ac6-4fff-9d36-55288523d879",
"main_account_id": "148c29b85992b8772eb7ddd518490110cacc",
"deposit_type": "SAVINGS_ACCOUNT"
}Funds are moved using dedicated payin and payout endpoints. Direct SEPA transfers to the Savings Account IBAN are not supported; funds must route through the main account.
Transfer funds from the checking account to the savings account.
When moving funds, the API validates the following conditions. A failure in any of these will result in a declined transaction:
- Mapping Check: The source and destination accounts must be explicitly mapped (see Step 3). You cannot transfer funds between unmapped accounts, even if they belong to the same customer.
- Active Status: Both the Savings Account and the Main Account must be
ACTIVE. - Blocking Check: Neither account can have a blocking flag (e.g., for suspected fraud or arrears) that prevents money movement.
- Balance Check: For pay-ins, the main account must have sufficient funds.
Endpoint: POST /v1/persons/{person_id}/deposit_accounts/{account_id}/payin
{
"reference": "unique-uuid-v4",
"main_account_id": "148c29b85992b8772eb7ddd518490110cacc",
"description": "Savings Goal 2025",
"amount": {
"value": 1000,
"currency": "EUR",
"unit": "cents"
}
}Transfer funds from the savings account back to the checking account.
Endpoint: POST /v1/persons/{person_id}/deposit_accounts/{account_id}/payout
Retrieve the current interest rate, accrued interest, and calculation date for any account.
Endpoint: GET /v1/persons/{person_id}/deposit_accounts/{account_id}/interest_details
- Annual Tax Statement: Solaris generates an annual tax certificate (Jahressteuerbescheinigung) for every customer. This document is delivered automatically via the Postbox API at the end of the fiscal year.
Tax exemption orders are only available for natural persons. Business accounts do not support this feature via the Solaris API.
Customers can submit an exemption order to prevent automatic tax deduction on interest earnings (up to a statutory limit, currently 1,000 EUR for individuals).
Scope: A tax exemption order applies to the customer's entire banking relationship with Solaris. If a customer has accounts with multiple Solaris partners, this single order applies to the aggregated total.
- Natural Persons Only: Business customers cannot submit exemption orders.
- Single Order Rule: A customer can only have one active exemption order. If an order already exists, you must use the
PATCHendpoint to update it, rather thanPOSTing a new one. - Year Validation:
valid_from_yearcannot be in the past. - Amount Limit: The maximum exemption amount is currently capped at 1,000 EUR (per statutory regulations).
- Individual Only: Joint exemption orders (e.g., for spouses or civil partners) are not supported. Exemptions apply strictly to the individual account holder.
Endpoint: POST /v1/persons/{person_id}/deposit_accounts/{account_id}/tax_exemptions
This is an asynchronous request. Solaris validates the order against the customer's Tax ID.
{
"reference": "7aa04f97-7720-4609-a5c5-d7b0f86e7661",
"valid_from_year": "2025",
"valid_to_year": "2026",
"amount": {
"value": 100000,
"currency": "EUR",
"unit": "cents"
}
}Note: Value must be in cents (e.g., 100000 = 1,000.00 EUR).
| Action | Endpoint | Description |
|---|---|---|
| View | GET .../tax_exemptions | Retrieve the active order status and amount. |
| Update | PATCH .../tax_exemptions | Change the exemption amount or validity period. |
| Close | PATCH .../tax_exemptions/close | Terminate the order. Solaris calculates utilized amounts before closing. |
| Delete | DELETE .../tax_exemptions | Only use if the order was created in error and has never been utilized. |
To see how much of the exemption has been used:
- Call
POST /v1/persons/{person_id}/deposit_accounts/{account_id}/tax_exemptions/utilization. - Listen for the
TAX_EXEMPTION_UTILIZATIONwebhook event.
Subscribe to these events to manage the asynchronous savings workflows.
| Event | Trigger | Action Required |
|---|---|---|
ACCOUNT_OPENING_REQUEST | Account creation status changes (Approved/Declined). | Notify customer of account opening. |
DEPOSIT_ACCOUNT_UPDATED | Mapping to main account is complete. | Remove UI blockers; allow pay-ins. |
TAX_EXEMPTION_UPDATED | Exemption order created or updated. | Update "Exemption Amount" in UI. |
TAX_EXEMPTION_UTILIZATION | Utilization check requested. | Display used/remaining amount to customer. |
To close a Savings Account, use the standard Account Closure endpoints.
Solaris will automatically:
- Settle any outstanding interest.
- Transfer the remaining balance + interest to the main account.
- Close the savings account.
Explore the full technical specifications for these endpoints.