Buchungssätze & Soll-Haben: Double-Entry Bookkeeping for Beginners
Master the mechanics of German double-entry bookkeeping. Learn why Soll doesn't mean 'should' and why every transaction has two sides. Includes 10 real-world booking examples with T-accounts.
If bookkeeping confuses you, double-entry accounting is the culprit. Not because it's complicated, but because the terminology—especially Soll and Haben—sounds foreign and counterintuitive. This guide demystifies the mechanics of German double-entry bookkeeping and shows why every transaction must have two sides. By the end, you'll understand not just how to record transactions, but why accountants obsess over balance.
What You'll Learn
Why 'Soll' and 'Haben' have confusing names (blame medieval merchants). How the Soll-Haben rule works. How to record 10 common business transactions. When software does the work for you. When you need to understand it manually.
The Confusing Terminology: Soll & Haben
Here's the truth: 'Soll' doesn't mean 'should' and 'Haben' doesn't mean 'have'. These terms come from medieval Italian double-entry bookkeeping, adopted into German centuries ago. The names stuck, even though they confuse modern learners.
- Soll (debit side): literally "ought" or "owes" — left side of an account
- Haben (credit side): literally "has" or "possesses" — right side of an account
- Confusingly, a bank statement from your bank uses these terms opposite to how accountants do
Bank Statement vs. Accounting Soll-Haben
When your bank sends you a statement showing a 'Soll' amount, they're saying YOU owe money. In your accounting books, that same bank account has a Haben balance (because the bank owes money to you). This inversion trips up every beginner. Remember: you and your bank see opposite sides of the same transaction.
The Golden Rule of Double-Entry Bookkeeping
Every transaction in double-entry bookkeeping must be recorded twice: once on the Soll side of one account and once on the Haben side of another account. This is not optional; it's the foundation of all German accounting.
The Fundamental Equation
Soll = Haben (always). If this doesn't balance, you have an error. Accountants call this principle the 'dual-entry' or 'double-entry' system, and it prevents fraud and catches mistakes instantly.
Account Types: How Soll and Haben Behave Differently
The confusing part: whether Soll or Haben represents an 'increase' depends on the type of account. There are four main types in German accounting.
1. Aktivkonten (Asset Accounts)
Assets are things your company owns: cash, bank accounts, equipment, receivables (customer invoices owed to you).
| Account Type | Opening Balance | Increase | Decrease | Example |
|---|---|---|---|---|
| Aktivkonto (Asset) | Soll | Soll entry (debit) | Haben entry (credit) | Bank account, cash, equipment |
Key Rule: Asset accounts increase on the Soll (debit) side and decrease on the Haben (credit) side. When you deposit money into a bank account, you're increasing an asset, so you debit the bank account.
2. Passivkonten (Liability & Equity Accounts)
Liabilities are things your company owes: loans, payables to suppliers, taxes owed. Equity is money invested by the owner.
| Account Type | Opening Balance | Increase | Decrease | Example |
|---|---|---|---|---|
| Passivkonto (Liability/Equity) | Haben | Haben entry (credit) | Soll entry (debit) | Bank loan, supplier invoice, owner capital |
Key Rule: Liability and equity accounts increase on the Haben (credit) side and decrease on the Soll (debit) side. When you borrow €1,000, you increase a liability, so you credit the loan account.
3. Aufwandskonten (Expense Accounts)
Expenses are costs your business incurs: rent, salaries, materials, utilities. These flow through your P&L (GuV) and reduce profit.
| Account Type | Opening Balance | Increase | Decrease | Example |
|---|---|---|---|---|
| Aufwandskonto (Expense) | Zero | Soll entry (debit) | Haben entry (credit) | Rent expense, salary expense, office supplies |
Key Rule: Expense accounts increase on the Soll (debit) side. When you pay €500 in rent, you debit the rent expense account. Higher debits = higher expenses = lower profit.
4. Ertragskonten (Revenue Accounts)
Revenue is money your business earns from selling products or services. It also includes interest income, rental income, and other gains.
| Account Type | Opening Balance | Increase | Decrease | Example |
|---|---|---|---|---|
| Ertragskonto (Revenue) | Zero | Haben entry (credit) | Soll entry (debit) | Sales revenue, interest income, service fees |
Key Rule: Revenue accounts increase on the Haben (credit) side. When you invoice a customer for €1,000, you credit the sales revenue account. Higher credits = higher revenue = higher profit.
Visual: How Soll-Haben Works Across Account Types
The T-Account Visual
Think of every account as a 'T' shape: [Account Name] Soll | | Haben ---------+--------+--------- debit | | credit For Assets: debits go left (Soll), credits go right (Haben). Debit-heavy = more assets. For Liabilities: credits go right (Haben), debits go left (Soll). Credit-heavy = more liabilities.
The Buchungssatz Format: How to Write a Booking Entry
German accountants use a standardized format to describe a transaction. It's called a Buchungssatz (booking entry).
Buchungssatz Format
[Sollkonto] an [Habenkonto] | Betrag Always state the debit account first, then the credit account, then the amount. Example: Bank an Forderungen | 500 EUR This reads: "Debit Bank account, Credit Receivables account, €500"
10 Real-World Booking Examples
Example 1: Customer Pays Their Invoice
Scenario: A customer owes you €1,000 (recorded earlier as a receivable). Today they pay by bank transfer.
Analysis: Cash increased (asset), receivables decreased (asset being paid off).
Buchungssatz: Bank an Forderungen | 1.000 EUR
| Account | Soll (Debit) | Haben (Credit) |
|---|---|---|
| Bank (Asset) | 1.000 EUR | |
| Forderungen / Receivables (Asset) | 1.000 EUR | |
| Totals | 1.000 EUR | 1.000 EUR |
Example 2: Buy Office Supplies with Cash
Scenario: You buy €200 of office supplies (paper, pens, etc.) and pay from your cash box.
Analysis: Expense increased (office supplies), cash decreased (asset).
Buchungssatz: Büromaterial an Kasse | 200 EUR
| Account | Soll (Debit) | Haben (Credit) |
|---|---|---|
| Büromaterial / Office Supplies (Expense) | 200 EUR | |
| Kasse / Cash (Asset) | 200 EUR | |
| Totals | 200 EUR | 200 EUR |
Example 3: Pay Monthly Rent
Scenario: You pay €1,200 monthly rent from the business bank account.
Analysis: Expense increased (rent), bank decreased (asset).
Buchungssatz: Miete an Bank | 1.200 EUR
| Account | Soll (Debit) | Haben (Credit) |
|---|---|---|
| Miete / Rent Expense (Expense) | 1.200 EUR | |
| Bank (Asset) | 1.200 EUR | |
| Totals | 1.200 EUR | 1.200 EUR |
Example 4: Invoice a Customer for Services
Scenario: You provide consulting services worth €2,500. The customer hasn't paid yet, so you create a receivable.
Analysis: Receivable increased (asset to be collected), revenue increased.
Buchungssatz: Forderungen an Umsatzerlöse | 2.500 EUR
| Account | Soll (Debit) | Haben (Credit) |
|---|---|---|
| Forderungen / Receivables (Asset) | 2.500 EUR | |
| Umsatzerlöse / Sales Revenue (Revenue) | 2.500 EUR | |
| Totals | 2.500 EUR | 2.500 EUR |
Example 5: Pay a Supplier Invoice
Scenario: You owe a supplier €800 (previously recorded as payable). Today you pay by bank transfer.
Analysis: Liability decreased (payable being paid), bank decreased (asset).
Buchungssatz: Verbindlichkeiten an Bank | 800 EUR
| Account | Soll (Debit) | Haben (Credit) |
|---|---|---|
| Verbindlichkeiten / Payables (Liability) | 800 EUR | |
| Bank (Asset) | 800 EUR | |
| Totals | 800 EUR | 800 EUR |
Example 6: Pay Employee Salary
Scenario: You pay an employee €3,000 gross salary (including taxes and social contributions) from the bank.
Analysis: Expense increased (salary), bank decreased (asset). Note: This is simplified; real payroll has tax withholding.
Buchungssatz: Gehälter an Bank | 3.000 EUR
| Account | Soll (Debit) | Haben (Credit) |
|---|---|---|
| Gehälter / Salary Expense (Expense) | 3.000 EUR | |
| Bank (Asset) | 3.000 EUR | |
| Totals | 3.000 EUR | 3.000 EUR |
Example 7: Record Depreciation on Equipment
Scenario: You own office furniture purchased for €5,000 with a 10-year life. Annual depreciation is €500.
Analysis: Depreciation expense increased, equipment asset decreased (via accumulated depreciation).
Buchungssatz: Abschreibungen an Anlagevermögen | 500 EUR
| Account | Soll (Debit) | Haben (Credit) |
|---|---|---|
| Abschreibungen / Depreciation (Expense) | 500 EUR | |
| Anlagevermögen / Fixed Assets (Asset) | 500 EUR | |
| Totals | 500 EUR | 500 EUR |
For more on depreciation, see our Abschreibung (AfA) guide.
Example 8: Record VAT on a Sales Invoice
Scenario: You invoice a customer €1,190 (including 19% VAT). The net sale is €1,000; VAT is €190.
Analysis: Receivable increased (full €1,190), sales revenue increased (net €1,000), VAT liability increased (owed to government).
Buchungssatz: Forderungen an Umsatzerlöse | 1.000 EUR AND Forderungen an Umsatzsteuer | 190 EUR
| Account | Soll (Debit) | Haben (Credit) |
|---|---|---|
| Forderungen / Receivables (Asset) | 1.190 EUR | |
| Umsatzerlöse / Sales Revenue (Revenue) | 1.000 EUR | |
| Umsatzsteuer / Sales Tax (Liability) | 190 EUR | |
| Totals | 1.190 EUR | 1.190 EUR |
Example 9: Repay a Business Loan
Scenario: You borrowed €10,000 from a bank. This month you repay €500 principal + €50 interest.
Analysis: Loan liability decreased (€500), interest expense increased (€50), bank decreased (€550 paid out).
Buchungssatz: Darlehen an Bank | 500 EUR AND Zinsen an Bank | 50 EUR
| Account | Soll (Debit) | Haben (Credit) |
|---|---|---|
| Darlehen / Loan (Liability) | 500 EUR | |
| Zinsen / Interest Expense (Expense) | 50 EUR | |
| Bank (Asset) | 550 EUR | |
| Totals | 550 EUR | 550 EUR |
Example 10: Owner Withdraws Cash (Privatentnahme)
Scenario: As a sole trader, you withdraw €1,000 cash for personal use.
Analysis: Owner capital decreased (equity), bank decreased (asset).
Buchungssatz: Privatentnahme an Bank | 1.000 EUR
| Account | Soll (Debit) | Haben (Credit) |
|---|---|---|
| Privatentnahme / Owner Withdrawal (Equity) | 1.000 EUR | |
| Bank (Asset) | 1.000 EUR | |
| Totals | 1.000 EUR | 1.000 EUR |
The Soll-Haben Rule in Practice: Why It Matters
You might be thinking: 'Why do we need two entries? Can't we just record one?' The answer is no, and here's why:
- Audit trail: Every transaction is traceable from source to final balance.
- Error detection: If Soll doesn't equal Haben, something is wrong immediately.
- Complete record: You know both what changed (which accounts) and by how much.
- Fraud prevention: You can't hide a transaction without creating an imbalance.
- Regulatory compliance: German tax authorities (Finanzamt) require this for GoBD compliance.
Learn more about regulatory requirements in our GoBD Compliance guide.
When Software Handles This for You (And When It Doesn't)
Modern accounting software like Lexoffice and SevDesk automatically creates Buchungssätze. When you record an invoice, the software silently debits receivables and credits revenue. You don't type 'Soll' and 'Haben' manually.
- Invoicing: Software creates the Buchungssatz automatically. You just enter customer, amount, and items.
- Payments: Software matches payments to invoices and creates the offsetting entry.
- Expenses: Upload a receipt; software categories it as an expense and creates the entry.
- Manual corrections: Here, you must understand Soll-Haben to record journal entries correctly.
Why Learn This If Software Does It?
Because you'll encounter situations where software fails or you need to override it. Understanding Soll-Haben means you can spot errors, correct them, and explain them to your Steuerberater with confidence.
Common Beginner Mistakes
Mistake #1: Confusing Bank Statement Soll-Haben with Accounting Soll-Haben
Your bank's statement shows 'Soll: €100' meaning you owe €100. In your books, you'd record this bank account as 'Haben: €100' because the bank owes you money. This backward thinking is the #1 source of confusion. Remember: you and your bank see opposite sides.
Mistake #2: Forgetting That Revenue Accounts Increase on the Haben Side
Beginners often think 'more sales = debit' because they confuse revenue with assets. Wrong. Revenue increases on the Haben (credit) side. If you debit revenue, you're actually reducing it (or indicating a return/cancellation).
Mistake #3: Reversing Soll and Haben in a Buchungssatz
Writing 'Forderungen an Bank' (wrong) instead of 'Bank an Forderungen' (correct) reverses the meaning. Always write the debit account first, credit account second.
Mistake #4: Creating an Unbalanced Entry
Debiting €500 but crediting €600 violates the Soll = Haben rule. Software usually prevents this, but manual journal entries can slip. Always double-check.
Linking Soll-Haben to the Year-End Close
Every year-end adjustment you make flows from Soll-Haben principles. When you record depreciation, accruals, or provisions, you're creating double-entry bookkeeping entries that must balance. For a detailed year-end workflow, see our Jahresabschluss (Year-End Close) guide.
Terminology Quick Reference
| German Term | English Equivalent | Abbreviation | Definition |
|---|---|---|---|
| Soll | Debit | Dr. | Left side of account; increases assets/expenses, decreases liabilities/revenue |
| Haben | Credit | Cr. | Right side of account; decreases assets/expenses, increases liabilities/revenue |
| Buchungssatz | Booking entry | — | The written record of a double-entry transaction |
| Aktivkonto | Asset account | — | Account for things you own |
| Passivkonto | Liability/Equity account | — | Account for debts and owner capital |
| Aufwandskonto | Expense account | — | Account for costs incurred |
| Ertragskonto | Revenue account | — | Account for income earned |
| T-Konto | T-account | — | Visual representation of an account with Soll and Haben sides |
Practice: Try Recording Your Own Transaction
Take a real transaction from your business and try recording it using Soll-Haben logic:
- Identify what increased and what decreased
- Classify each as Asset, Liability, Expense, or Revenue
- Write the Buchungssatz: [Soll] an [Haben] | Amount
- Verify that Soll = Haben
- Check if your accounting software recorded it the same way
When to Consult a Steuerberater
You don't need professional help for every transaction. But if you're unsure about a complex entry—like inter-company transfers, VAT adjustments, or related-party transactions—ask your Steuerberater. A 30-minute consultation (€50-100) beats months of confusion.
Connecting Soll-Haben to Your Tech Stack
Choose accounting software that visualizes Buchungssätze clearly. Best options for German businesses:
- SevDesk: Clear invoice-to-booking visualization
- Lexoffice: Detailed journal and trial balance exports
- Papierkram: Transparent account mappings
- FastBill: Good for freelancers and e-commerce
Or explore our Freelancer Essentials Stack for a complete setup.
Final Word: Soll-Haben Is Your Foundation
Double-entry bookkeeping might feel abstract, but it's the bedrock of every financial statement. Once you internalize that Soll-Haben isn't about 'should/have' but about debit/credit mechanics, everything else—tax returns, profit calculations, audits—becomes logical.
Your Soll-Haben Mastery Checklist
✓ Understand why Soll and Haben have confusing names (medieval history) ✓ Know the four account types and how Soll-Haben applies to each ✓ Write Buchungssätze in the correct format: [Soll] an [Haben] | Amount ✓ Verify Soll = Haben on every transaction ✓ Recognize when software does this work vs. when you need to do it manually ✓ Avoid the bank-statement confusion (you and your bank see opposite sides) ✓ Explain your bookkeeping to a Steuerberater with confidence
Apps in this article
Disclaimer: Finance Stacks is not a financial advisory service. All content is for informational purposes only and does not replace professional advice from a tax advisor, accountant, or financial consultant.