This guide explains how to manage customer accounts, retrieve balances, and handle account statements using the Solaris API.
Before managing accounts, you must have successfully onboarded a customer:
The account balance is not a single number but a set of values representing different financial states.
These values reflect the current state of the account and are returned in the GET Account response.
| Balance Type | Field Name | Description |
|---|---|---|
| Balance | balance | The funds currently on the account. This includes only posted bookings (transactions with an elapsed valuta date). |
| Available Balance | available_balance | The funds the customer can actually spend right now. It accounts for pending reservations (e.g., card authorizations) and overdraft limits. Calculation: balance - reservations + overdraft_facility. |
| Seizure Protection | seizure_protection | (Only for seized accounts) The amount of funds protected from seizure. |
A Disposition is a booking that has been agreed upon but has a valuta_date (value date) in the future.
- These are returned in the bookings list but are not yet applied to the
balance. - They become effective (affecting interest and balance) only when the
valuta_dateis reached.
These values are specific to Account Statements and represent snapshots in time.
| Balance Type | Field Name | Description |
|---|---|---|
| Statement Start | balance_start | The balance based on bookings before the statement start date. |
| Statement End | balance_end | The balance based on bookings up to and including the statement end date. |
If your solution includes Overdrafts, the Account Limit determines the maximum allowed negative balance.
- Overdraft Facility: The approved credit line (e.g., €500).
- Impact: This amount is added to the
available_balance, allowing the customer to spend more than theirbalance.
Scenario: An account has a limit (overdraft) of €100.00.
| Date | Action | Amount | balance | available_balance |
|---|---|---|---|---|
| Jan 1 | Start | - | €0.00 | €100.00 (Limit only) |
| Jan 2 | Card Purchase (Pending) | -€20.00 | €0.00 | €80.00 (Reservation applied) |
| Jan 3 | Incoming Transfer (Posted) | +€50.00 | €50.00 | €130.00 |
| Jan 4 | Card Purchase (Settled) | -€20.00 | €30.00 | €130.00 (Booking applied, Reservation removed) |
- GET Retrieve balance for an account
- GET Retrieve average daily balance - Useful for calculating interest or service fees.
A Booking represents a finalized movement of funds (e.g., a SEPA transfer or a settled card transaction).
- Impact: Bookings update the
balance. - Tracing Transactions:
transaction_id: The ID of the original transaction that created this booking.return_transaction_id: Used for R-Transactions (Refunds, Returns, Rejects). It exposes the ID of the original transaction that is being returned or refunded.
- Value Date (
valuta_date): The date used for interest calculation. This may differ from thebooking_date(e.g., for backdated interest or correction bookings).
Your application must handle all booking types dynamically. Do not hardcode logic that ignores unknown types, as Solaris may add new booking types (e.g., for new payment schemes).
A Reservation is a temporary restriction of funds. It blocks a specific amount for a pending transaction that has not yet been booked (settled). Common examples include card authorizations at a point of sale.
Reservations reduce the available_balance immediately to prevent overspending, but they do not affect the balance until settlement.
Reservations persist until a specific event resolves them:
- Resolution (Settlement): The reservation remains active until the merchant or system captures the payment. Once captured, the reservation is removed, and a Booking is created for the final amount.
- Expiration: If the transaction is not captured within the timeframe defined by the card scheme, the reservation automatically expires, and the funds are released back to the
available_balance.
Solaris provides two types of statements. You must understand the legal distinction between them.
According to § 355 HGB, banks are legally required to regularly issue a statement that contains information about all bookings, interest, fees, and costs.
- Legal Status: Legally Binding.
- Frequency: Quarterly.
- Content: Closing balance, fees, interest, and mandatory legal disclaimers.
- Requirement: You must generate this and provide it to the customer.
Overdraft Information: If the account has an overdraft, the statement must also include:
overdraft_facility: The granted limit.overdraft_rate: The interest rate applied.interest_accrued: The actual interest charged for the period.
Generating the statement: Call the endpoint to generate the data, then render it into a PDF using your own template. You must include the mandatory disclaimer text provided in the API response.
The following text is an example of the disclaimer structure. You must use the exact string returned by the API at the time of generation.
Sehr geehrte Kundin, sehr geehrter Kunde,
bitte prüfen Sie die Buchungen, Berechnungen und den Abschlusssaldo im beiliegenden Kontoauszug, der zugleich einen Rechnungsabschluss darstellt. Rechnungsabschlüsse gelten als genehmigt, sofern Sie innerhalb von sechs Wochen nach Zugang keine Einwendungen erheben. Einwendungen gegen Rechnungsabschlüsse müssen der solarisBank schriftlich oder in Textform (z.B. an support@solarisbank.de) zugehen. Im Falle der Einwendung in Textform genügt zur Fristwahrung die rechtzeitige Absendung. Der angegebene Kontostand berücksichtigt nicht die Wertstellung der einzelnen Buchungen. Dies bedeutet, dass der genannte Betrag nicht dem für die Zinsrechnung maßgeblichen Kontostand entsprechen muss und bei Verfügungen möglicherweise Zinsen für die Inanspruchnahme einer eingeräumten oder geduldeten Kontoüberziehung anfallen können. Gutschriften aus eingereichten Lastschriften und anderen Einzugspapieren erfolgen unter dem Vorbehalt der Einlösung. Guthaben sind als Einlagen nach Maßgabe des Einlagensicherungsgesetzes entschädigungsfähig. Nähere Informationen können dem Informationsbogen für den Einleger entnommen werden, den Sie gemeinsam mit unseren für den Geschäftsverkehr mit Ihnen geltenden Allgemeinen Geschäftsbedingungen und besonderen Bedingungen unter www.solarisbank.de/partner einsehen können.
Mit freundlichen Grüßen
Ihre solarisBank
---
Clearance of account is considered accepted if you do not raise any objection within six weeks after receipt. Objections regarding account statements have to be submitted to solarisBank in written or text form (e.g. to service@solarisbank.de). In case of objection in text form, it is sufficient to ensure its timely dispatch.Recipient Data Logic: The API provides a recipient_information object to print on the statement. The content changes based on the customer type:
| Line | Natural Person | Business |
|---|---|---|
| Line 1 | Salutation, First Name, Last Name | Company Name |
| Line 2 | Address Line 1 | "For the company management" |
| Line 3 | Address Line 2 | Address Line 1 |
| Line 4 | Postal Code, City | Address Line 2 |
The overdraft information in the statement represents a snapshot on the generation date. You must highlight this limitation in the document you share with the customer.
According to Article 248 §§ 3, 7, 10 EGBGB, banks are legally required to provide information about every booking to the customer at least once a month.
Legal Status: Informational only (Not legally binding).
Frequency: On-demand (typically monthly).
Content: List of bookings within a specific date range.
- Past Dates Only: You can only generate statements for time periods in the past.
- Idempotency: Requesting a statement for the same period multiple times returns the same document.
Frequency: Annual.
Content: Summary of all fees charged to the account.
Delivery: Automatically uploaded to the customer's Postbox.
Solaris may block an account for compliance or security reasons (e.g., suspicious activity, missing tax data).
Subscribe to the ACCOUNT_BLOCK webhook. When received, call GET Retrieve Account to inspect the locking_status and locking_reason.
| Status | Effect |
|---|---|
NO_BLOCK | Account is active. All transactions allowed. |
DEBIT_BLOCK | Outgoing payments blocked. Incoming funds allowed. |
CREDIT_BLOCK | Incoming payments blocked. Outgoing funds allowed. |
BLOCK | Full freeze. No money in or out. |
The booking_type field explains the business context of a transaction.
Click to view all Booking Types
| Booking Type | Description |
|---|---|
CANCELLATION_BOOKING | Generic cancellation of a posted booking. |
CancellationCardTransaction | Correction of a card-related movement. |
CANCELLATION_CARD_TRANSACTION_DIRECT | Correction of a peer-to-peer card transaction (e.g., MoneySend). |
CANCELLATION_CHARGE_CARD | Correction of card-related charges. |
CANCELLATION_CHARGE_DUNNING | Correction of fees or charges resulting from the dunning (debt collection) process. |
CANCELLATION_CHARGE_SEPA_DIRECT_DEBIT_RETURN | Correction of additional SDD return charges. |
CANCELLATION_CRYPTO_EXCHANGE | Correction of a crypto-currency exchange operation. |
CANCELLATION_CURRENCY_EXCHANGE_PARTNER | Correction of a currency exchange performed in cooperation between you and Solaris. |
CANCELLATION_DIRECT_DEBIT | Correction of a SEPA Direct Debit collection (CORE scheme). |
CANCELLATION_DOUBLE_BOOKING | Correction of a technical issue (e.g., if a payment was booked twice). |
CANCELLATION_INTERNAL_TRANSFER | Correction of a manual transaction. |
CANCELLATION_INTERNATIONAL_CREDIT_TRANSFER | Correction of an international non-SEPA payment. |
CANCELLATION_INTEREST_ACCRUED | Correction of interest accrual. |
CANCELLATION_INTEREST_ANNUITY | Cancellation of an interest accrual (specific to loan products). |
CANCELLATION_INTEREST_LOAN | Cancellation of an irregular interest accrual (specific to loan products). |
CANCELLATION_LOAN_PAYOUT | Correction of a loan payout. |
CANCELLATION_REBOOKING | Correction of a payment rerouting. |
CANCELLATION_REBOOKING_INTEREST | Correction of an interest rerouting. |
CANCELLATION_SEPA_CREDIT_TRANSFER_RETURN | Correction of a SEPA Credit Transfer return. |
CANCELLATION_SEPA_DIRECT_DEBIT | Correction of a SEPA Direct Debit collection (B2B scheme). |
CANCELLATION_SEPA_DIRECT_DEBIT_RETURN | Correction for the return of a SEPA Direct Debit. |
CANCELLATION_TRANSFER_ANNUITY | Correction of irregular loan principal removal. |
CARD_DIRECT_DEBIT | SEPA Direct debit collection from a card account. |
CARD_TRANSACTION | Card-related transaction (e.g., ATM withdrawal, payment, refund). |
CARD_TRANSACTION_DIRECT | Peer-to-peer card transaction (e.g., MoneySend). |
CASH_DEPOSIT_RETAIL | A cash deposit via Viacash (Barzahlen). |
CASH_WITHDRAWAL_RETAIL | A cash withdrawal via Viacash (Barzahlen). |
CHARGE_ACCOUNT_MAINTENANCE | Monthly account maintenance fee. |
CHARGE_CARD | Card-related charges. |
CHARGE_DUNNING | Fees resulting from the dunning process. |
ChargeRecallRequest | Charge resulting from a recall request. |
CHARGE_SEPA_DIRECT_DEBIT_RETURN | Additional charges for the return of an SDD collection. |
ClosureBalanceTransfer | Moving remaining funds out of an account upon closure. |
COMMISSION_OVERDRAFT | Interest charge for exceeding the overdraft limit. |
CREDIT_TRANSFER_CANCELLATION | Canceled Credit Transfer, either by customer request or internal checks. |
CRYPTO_EXCHANGE | Cashflow related to crypto-currency exchange operation. |
CURRENCY_EXCHANGE_PARTNER | Currency exchange performed in cooperation between you and Solaris. |
DIRECT_DEBIT | SEPA Direct Debit collection (CORE scheme). |
FOREIGN_PAYMENT | Deprecated. Replaced by INTERNATIONAL_CREDIT_TRANSFER. |
INTEREST_ACCRUED | Interest accrued on the account. |
INTEREST_ANNUITY | Interest accrued between loan payout and cancellation date. |
INTEREST_LOAN | Irregular interest accrual (e.g., for early repayment). |
INTERNAL_TRANSFER | Manually executed transaction. |
INTERNATIONAL_CREDIT_TRANSFER | Payment via SWIFT or TARGET2. |
LOAN_PAYOUT | Money transfer from the loan account to the billing account. |
REBOOKING | Payment rerouting between accounts. |
REBOOKING_INTEREST | Interest rerouting between accounts. |
SEPA_CREDIT_TRANSFER | Standard incoming or outgoing SEPA Credit Transfer. |
SEPA_CREDIT_TRANSFER_RETURN | Return of an executed SEPA Credit Transfer (e.g., account blocked). |
SEPA_DIRECT_DEBIT | SEPA Direct Debit collection (B2B scheme). |
SEPA_DIRECT_DEBIT_RETURN | Return or Refund of a SEPA Direct Debit. |
SepaInstantCreditTransfer | Real-time SEPA Instant payment. |
TARGET2_CREDIT_TRANSFER | A credit transfer sent via Target2. |
TRANSFER_ANNUITY | Irregular loan principal removal. |
OTHER | Generic booking category. |
Reservations affect the available_balance but have not yet been booked to the ledger.
| Type | Description |
|---|---|
CARD_AUTHORIZATION | A temporary hold for a card transaction (e.g., at point of sale). |
SEIZURE | Funds blocked by a legal seizure order (Pfändung). |
When an account is blocked, the locking_status defines what is blocked, and locking_reason explains why.
| Reason | Description |
|---|---|
AML_FOLLOW_UP_OVERDUE | Customer failed to confirm data after AML follow-up request. |
COMPANY_FOUNDATION | Business failed to submit foundation documents on time. |
COMPLIANCE | Generic compliance block. |
COMPLIANCE_SCREENING | AML match identified during screening. |
COMPLIANCE_PARTNER | Blocked by you (the partner) for compliance reasons. |
CUSTOMER_WISH | Blocked at the customer's request. |
DECOUPLED_CARD_DUNNING | Blocked due to unpaid debts on a decoupled card. |
IDENTIFICATION_FAILED | KYC/BKYC process failed. |
IDENTIFICATION_DOCUMENT_EXPIRED | ID document on file has expired. |
IN_CLOSURE | Account is in the process of being closed. |
INSOLVENCY | Insolvency case related to the customer. |
LOAN_RESERVATION | Customer has not accepted the loan offer yet. |
MISSING_TAX_INFORMATION | Tax ID not provided within the required timeframe. |
SEIZURE | Active seizure process (Pfändung) on the account. |
OTHER | Generic operational block. |