Skip to content

Savings Accounts (Tagesgeld)

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.

Product overview

Key features

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

Eligibility & Prerequisites

German Tax ID Required

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.

Integration steps

1. Validate Tax ID

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.

2. Create account opening request

Follow the standard Account Opening Request process. However, you must use the specific product_name and account_type values listed below.

Product Type Matrix

Customer Segmentproduct_nameaccount_type
Retail (Consumer)SAVINGS_ACCOUNT_CONSUMER_GERMANYSAVINGS_PERSONAL
BusinessSAVINGS_ACCOUNT_BUSINESS_GERMANYSAVINGS_BUSINESS
FreelancerSAVINGS_ACCOUNT_FREELANCER_GERMANYSAVINGS_SOLE_PROPRIETOR
Automatic Credit Block

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

3. Map to Main Account

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.

TAX PROVIDER

SOLARIS

PARTNER

4xx Error

202 Accepted

NO

Webhook

YES

Webhook

Place a request for
main account mapping

ERROR

SUCCESS

Request
validated?

Tag the current
account as main
account for the
savings account

Define the interest
conditions for the
savings account

Register the
customer and
account with tax
provider

The three
steps above
completed?

Publish error
response
through Webhook

Remove credit
block on
account

Publish success
response
through Webhook

Perform registration
and give back
response

Validation Rules

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

Create the mapping

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"
}

4. Move Funds (Pay-in / Payout)

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.

Pay-in (Main -> Savings)

Transfer funds from the checking account to the savings account.

Validation Rules

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"
    }
}

Payout (Savings -> Main)

Transfer funds from the savings account back to the checking account.

Endpoint: POST /v1/persons/{person_id}/deposit_accounts/{account_id}/payout

5. Check Interest Details

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


Reporting & Statements

  • 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 (Freistellungsauftrag)

Persons Only

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

TAX PROVIDER

SOLARIS

PARTNER

4xx Error

Yes

No / 4xx Error

Yes

Yes / 4xx Error

No

202 Accepted

ASYNC

NO / Webhook

YES / Webhook

Place a request to
create tax
exemption order

Accepted

ERROR

ERROR
Use update form

ERROR

SUCCESS

Request
validated?

Savings
Account
Available?

Exemption
order present
for the cust tax
ID?

Provide request
accepted response

Place request for
creating exemption
order

Request
successful?

Create exemption
order and give back
response

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.

Create exemption order

Validation Rules

  • 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 PATCH endpoint to update it, rather than POSTing a new one.
  • Year Validation: valid_from_year cannot 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).

Manage exemptions

ActionEndpointDescription
ViewGET .../tax_exemptionsRetrieve the active order status and amount.
UpdatePATCH .../tax_exemptionsChange the exemption amount or validity period.
ClosePATCH .../tax_exemptions/closeTerminate the order. Solaris calculates utilized amounts before closing.
DeleteDELETE .../tax_exemptionsOnly use if the order was created in error and has never been utilized.

Check Utilization

To see how much of the exemption has been used:

  1. Call POST /v1/persons/{person_id}/deposit_accounts/{account_id}/tax_exemptions/utilization.
  2. Listen for the TAX_EXEMPTION_UTILIZATION webhook event.

Webhooks

Subscribe to these events to manage the asynchronous savings workflows.

EventTriggerAction Required
ACCOUNT_OPENING_REQUESTAccount creation status changes (Approved/Declined).Notify customer of account opening.
DEPOSIT_ACCOUNT_UPDATEDMapping to main account is complete.Remove UI blockers; allow pay-ins.
TAX_EXEMPTION_UPDATEDExemption order created or updated.Update "Exemption Amount" in UI.
TAX_EXEMPTION_UTILIZATIONUtilization check requested.Display used/remaining amount to customer.

Account Closure

To close a Savings Account, use the standard Account Closure endpoints.

Solaris will automatically:

  1. Settle any outstanding interest.
  2. Transfer the remaining balance + interest to the main account.
  3. Close the savings account.

API Reference

Explore the full technical specifications for these endpoints.