Ein doppeltes Buchführungssystem mit REST-API (FastAPI) und Web-Oberfläche (Streamlit).
- Buchungen erfassen – manuell oder per Datei-Import (CSV, JSON)
- Automatische Steuerbuchungen – MwSt-Gegenbuchungen (Vorsteuer/Umsatzsteuer) werden automatisch erzeugt
- Bilanz – Aktiva/Passiva-Übersicht für einen beliebigen Stichtag
- GuV – Gewinn- und Verlustrechnung für einen Zeitraum
- Kontoblatt – Einzelkonto-Auszug mit allen Buchungen für ein gewähltes Konto
- Umsatzsteuerbericht – MwSt-Auswertung nach Steuersatz
- Dashboard – monatliche Auswertung mit Diagrammen und Gegenpartei-Analyse
- Gründungsbilanz – einmalige Eröffnungsbilanz als Startpunkt
- Python 3.12+
uv(empfohlen) oderpip
# Abhängigkeiten installieren
uv sync
# oder
pip install -e .Backend und Frontend müssen gleichzeitig laufen.
Backend (FastAPI):
uvicorn backend.main:app --reloadAPI läuft auf http://localhost:8000
Swagger-Dokumentation: http://localhost:8000/docs
Frontend (Streamlit):
cd frontend
streamlit run app.pyOberfläche läuft auf http://localhost:8501
project/
├── backend/
│ ├── main.py # FastAPI-Endpunkte
│ ├── models.py # Pydantic-Datenmodelle
│ └── database.py # SQLite-Datenbanklogik
├── frontend/
│ ├── app.py # Streamlit-Einstiegspunkt (Navigation)
│ ├── 1 eingabe.py # Buchungen erfassen & importieren
│ ├── 2 berichte.py # Bilanz, GuV, Kontoblatt, Umsatzsteuerbericht
│ ├── 3 auswertung.py # Dashboard / monatliche Auswertung
│ ├── 4 einstellungen.py # Gründungsbilanz & Reset
│ └── 5 steuerbilanz.py # Steuerbilanz (in Entwicklung)
├── commons/
│ └── references.py # Kontenrahmen, MwSt-Sätze, API-URL
├── validators/
│ └── common.py # Wiederverwendbare Validatoren (Datum, Betrag)
├── AI-Usage.md
└── pyproject.toml
| Typ | Konten |
|---|---|
| Aktiva | 1000 Kasse, 1200 Bank, 1400 Forderungen, 1600 Anlagevermögen, 9001 Vorsteuer |
| Passiva | 3000 Eigenkapital, 3300 Verbindlichkeiten, 9000 Umsatzsteuer |
| Aufwand | 4000 Wareneinkauf, 4100 Büromaterial, 4200 Marketing, 4300 Personalaufwand, 4400 Miete, 4500 Sonstige Aufwendungen, 4600 Abschreibungen |
| Ertrag | 8000 Umsatzerlöse, 8100 Sonstige Erträge |
- 19 % (Standard)
- 7 % (Ermäßigt)
- 0 % (Steuerfrei)
Das System erzeugt automatisch UwSt-Gegenbuchungen:
- Umsatzsteuer – wenn das Habenkonto 8000 oder 8100 ist und der UwSt-Satz > 0 %: zusätzliche Buchung auf Konto 9000
- Vorsteuer – wenn das Sollkonto 4000–4600 ist und der UwSt-Satz > 0 %: zusätzliche Buchung auf Konto 9001
Beim Datei-Import kann zwischen automatischer Steuerbuchung und manuell enthaltenen Steuerzeilen gewählt werden.
CSV (, oder ; als Trennzeichen):
booking_date;debit_account;credit_account;partner_name;amount_net;vat_rate
2026-01-15;1200 Bank;8000 Umsatzerlöse;Kunde GmbH;1000.00;0.19
JSON:
{
"bookings": [
{
"booking_date": "2026-01-15",
"debit_account": "1200 Bank",
"credit_account": "8000 Umsatzerlöse",
"partner_name": "Kunde GmbH",
"amount_net": 1000.00,
"vat_rate": 0.19
}
]
}| Methode | Pfad | Beschreibung |
|---|---|---|
POST |
/import/openbalance |
Gründungsbilanz importieren |
GET |
/import/openbalance/exists |
Gründungsbilanz vorhanden? |
DELETE |
/reset |
Alle Daten zurücksetzen |
POST |
/bookings |
Buchung erstellen |
GET |
/bookings |
Buchungen abrufen (mit Filtern) |
GET |
/bookings/exist |
Buchungen vorhanden? |
POST |
/import/bookings |
Buchungen aus Datei importieren |
GET |
/reports/balance |
Bilanz abrufen |
GET |
/reports/guv |
GuV abrufen |
GET |
/reports/kontoblatt |
Kontoblatt für ein Konto abrufen |
GET |
/reports/umsatzsteuer |
Umsatzsteuerbericht abrufen |
GET |
/reports/monthly |
Monatliche Auswertung |