Skip to content
firsttrisPublic

About

Selbst gehostete Buchhaltung für Freiberufler, Selbstständige, Kleinunternehmer, GmbH und UG: E-Rechnung (ZUGFeRD, XRechnung), Belege, Bankabgleich, EÜR oder Bilanz, E-Bilanz und Steuererklärungen direkt an ELSTER. GoBD-konform, DATEV-Export. Open-Source-Alternative zu Lexware Office (lexoffice) und sevDesk. Docker-Image für den eigenen Server.

Topics

Resources

Contributing

Security policy

Accessibility

Stars

372 stars

Watchers

1 watching

Forks

Latest commit

 

History

526 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Haben: Open-Source-Buchhaltung, selbst gehostet

Haben: Rechnung 2026-031 festgeschrieben, Zahlungseingang zugeordnet, Voranmeldung September an ELSTER übermittelt

Die Buchhaltungssoftware für Freiberufler, Selbstständige, Kleinunternehmer und kleine GmbHs, die du selbst betreibst.
Rechnungen mit E-Rechnung (ZUGFeRD, XRechnung), Belege, Bankabgleich, EÜR oder Bilanz mit E-Bilanz und die Steuern direkt an ELSTER. GoBD-konform, auf deinem Server, ohne Datenabfluss.

Status: Beta CI Release Lizenz: AGPL-3.0 Doku E-Rechnung ELSTER TypeScript TanStack Start PostgreSQL Docker Pulls Image Size Plattformen Podman

Warum? • Funktionen • Schnellstart • FAQ • Dokumentation • Entwicklung

English: self-hosted open-source bookkeeping for German freelancers, small businesses and small limited companies (GmbH, UG), with e-invoicing (ZUGFeRD, XRechnung), bank reconciliation, EÜR or balance sheet with E-Bilanz, and VAT, corporate and trade tax returns via ELSTER. The app and its documentation are in German.

Übersicht in Haben: offene Forderungen, Umsatz, Umsatzsteuer-Zahllast, Kontostand und die nächsten Aufgaben

Warning

Beta: Haben wird noch stark weiterentwickelt. Datenmodell und Abläufe können sich von Version zu Version ändern, und Migrationen lassen sich nicht zurückspielen. Vor jedem Update ein Backup machen (docker compose exec backup backup.sh, siehe Backup und Wiederherstellen) und Auswertungen und Meldungen ans Finanzamt vor dem Absenden prüfen.

💡 Warum Haben?

In der Buchhaltung gibt es Soll und Haben. Haben ist, was dir gehört.

Rechnungen schreiben, Belege sammeln, Konto abgleichen, Voranmeldung schicken: Dafür braucht es kein Abo bei Lexware Office (früher lexoffice) oder sevDesk und keinen fremden Dienst, der jede Rechnung sieht. Haben ist die Open-Source-Alternative dazu: eine Web-App für Buchhaltung, Steuern und Rechnungen, die du mit Docker oder Podman auf deinem eigenen Server betreibst.

🇩🇪 Made in Germany

  • Ein Weg vom Beleg bis zum Finanzamt: festschreiben, Zahlung zuordnen, Voranmeldung prüfen und senden
  • GoBD-konform von Anfang an: Festschreibung per Postgres-Trigger, Audit-Log, Korrekturen nur über Storno
  • Deine Daten bleiben bei dir: eigener Server, Schlüssel verschlüsselt, Jahresarchiv mit Prüfsummen; KI nur auf Wunsch, auch mit eigenem Modell auf deinem Server
  • Umzug ohne Datenverlust: Rechnungen, Belege, Buchungen ohne Beleg und Kontakte aus Lexware Office oder sevDesk übernehmen, DATEV-Export archivieren
  • Für Freiberufler und Kleingewerbe: Einnahmen-Überschuss-Rechnung (EÜR), Ist- oder Soll-Versteuerung, Kleinunternehmerregelung nach § 19 UStG, Kontenrahmen SKR03 oder SKR04
  • Für GmbH und UG: Bilanz und GuV, E-Bilanz, Körperschaft- und Gewerbesteuer, Gewinnausschüttung mit Kapitalertragsteuer-Anmeldung und Steuerbescheinigung für die Gesellschafter, Pflichtangaben nach § 35a GmbHG auf Rechnungen und Geschäftsbriefen, siehe GmbH und UG

✨ Funktionen

Kurz je Bereich; die Details stehen auf der verlinkten Seite der Dokumentation.

Bereich Was Haben kann
🧾 Rechnungen Live-Vorschau, ZUGFeRD/XRechnung (KoSIT-geprüft), Storno, Abschlags- und wiederkehrende Rechnungen, Mahnwesen mit Basiszinssatz von der Bundesbank, Versand per E-Mail
📝 Angebote Optionale und alternative Positionen, Zahlungsplan mit Abschlagsrechnungen, mit einem Klick zur Rechnung
📎 Belege Hochladen per Drag-and-drop, Kamera oder E-Mail; E-Rechnungen direkt gelesen, sonst optional per KI (Claude, Ollama, OpenRouter …); Dauerbelege, SEPA-Überweisung
🏦 Bankabgleich Automatischer Abruf per PSD2 oder Import (DKB, N26, CAMT.053, PayPal, Stripe …), Vorschläge mit Begründung, Steuerzahlungen und Darlehen
📤 Voranmeldung Kennzahlen aus den Buchungen (Ist oder Soll) mit Herkunft jeder Zahl, Übermittlung per ERiC oder über Mein ELSTER, Zusammenfassende Meldung
📮 Abgabe an ELSTER Direkt per ERiC oder ohne Hersteller-ID über Mein ELSTER: XML-Upload, Browser-Erweiterung Haben für Mein ELSTER oder ein KI-Assistent wie Claude in Chrome
📑 Jahreserklärungen USt-Erklärung, Anlage EÜR, Einkommensteuer; für GmbH und UG Körperschaft- und Gewerbesteuer
🏛️ Finanzamt Bescheide und Nachrichten über ELSTER, Herabsetzung der Vorauszahlungen
🏢 GmbH und UG Bilanz und GuV, E-Bilanz per ERiC, Gesellschafter-Verrechnungskonto, Gewinnausschüttung mit Kapitalertragsteuer
👥 Lohn Abrechnung nach dem Programmablaufplan des BMF, Minijob und Gesellschafter-Geschäftsführer, Lohnsteuer-Anmeldung über ELSTER, Lohnkonto
⏰ Fristen Alle Steuertermine auf einer Seite, als Kalender-Feed (iCal) und per E-Mail
🚗 Pauschalen · Kasse Homeoffice, Kilometer, Verpflegungsmehraufwand; Kassenbuch für Barzahlungen
🖥️ Anlagen und AfA Anlagenverzeichnis, lineare und degressive AfA, GWG und Sammelposten
📊 Auswertungen EÜR, offene Posten, Monatsverlauf, Jahresexport als ZIP mit SHA-256-Prüfsummen
📚 Buchhaltung Doppelte Buchführung nach SKR03/SKR04, Journal, Saldenliste, Kontenblätter, DATEV-Export
📦 Umzug aus Lexoffice · sevDesk Rechnungen, Belege, Buchungen und Kontakte übernehmen, mit Abgleich je Jahr
🔐 Anmeldung · App Passkey oder ausschließlich OpenID Connect mit Rollen aus Gruppen, Lesezugang für die Steuerberatung, installierbar als App auf Handy und Desktop, helles und dunkles Theme
📥 CSV-Import Kontakte, Artikel und Anlagen aus CSV, mit Spaltenzuordnung und Vorschau
🔌 REST-API Versionierte Schnittstelle mit OpenAPI für Kontakte, Rechnungsentwürfe und Belege; Tokens mit Rechten je Bereich
🤖 KI-Assistenten (MCP) Haben im Gespräch mit Claude oder einem lokalen Modell abfragen („Welche Rechnungen sind überfällig?“), nur lesend
🧩 Eigene Seiten Eigene Werkzeuge, etwa aus n8n, als Menüeintrag in Haben
♿ Barrierefreiheit Vollständig per Tastatur bedienbar, jede Seite in der CI gegen WCAG 2.2 AA geprüft

📸 Screenshots

Rechnungseditor mit Positionen links und Live-Vorschau des PDFs rechts
Rechnung schreiben: Vorschau des PDFs, während du tippst
Bankabgleich: Umsatz von Rheinpixel GmbH mit dem besten Treffer Rechnung 2026-033 und den Gründen
Bankabgleich: Vorschlag mit Begründung, Enter ordnet zu
Voranmeldung September mit Kennzahlen 81, 86, 66 und 83 und dem Bereich zum Übermitteln an ELSTER
Voranmeldung: aus den Buchungen berechnet, direkt an ELSTER
Auswertungen 2026 mit Einnahmen, Ausgaben, Gewinn und Monatsdiagramm
Auswertungen: EÜR nach Zufluss und Abfluss

🚀 Schnellstart

Haben läuft als vier Container: die App (tristanteu/haben, amd64 und arm64), PostgreSQL, Caddy für HTTPS und ein tägliches Backup mit restic. Du brauchst einen Linux-Server mit Docker oder Podman und eine Domain, die auf ihn zeigt (Ports 80 und 443), denn Passkeys funktionieren nur über HTTPS.

1. Von einem Agenten aufsetzen lassen

Gib Claude Code oder einem anderen Coding-Agenten dieses Repository und SSH-Zugang zu deinem Server und sag: „Setz Haben auf meinem Server auf, nach der Installationsanleitung.“

2. Manuell

mkdir haben && cd haben
curl -O https://raw.githubusercontent.com/firsttris/haben/main/deploy/compose.yml
curl -o .env https://raw.githubusercontent.com/firsttris/haben/main/deploy/compose.env.example
# in .env eintragen: DOMAIN, DB_PASSWORD (openssl rand -hex 24),
# AUTH_SECRET und ENCRYPTION_KEY (je openssl rand -base64 32), dann
docker compose up -d

Öffne https://deine-domain, leg dein Konto an und richte Firmendaten, Nummernkreis und ELSTER ein, wie in Erste Schritte beschrieben.

Podman Quadlets, ERiC für die ELSTER-Übermittlung, Backup, Updates und alle Umgebungsvariablen stehen in Betrieb und Installation.

Important

Sichere den Verschlüsselungsschlüssel (ENCRYPTION_KEY bzw. das Secret haben-encryption-key) zusätzlich an einem zweiten Ort. Ohne ihn sind ELSTER-Zertifikat und die Schlüssel für Lexoffice und sevDesk nach einer Wiederherstellung nicht mehr lesbar.

❓ FAQ

Was kostet Haben?

Die Software ist kostenlos (AGPL). Du brauchst nur einen Server, etwa einen VPS ab rund 5 € im Monat.

Ist Haben eine Alternative zu Lexware Office (lexoffice) und sevDesk?

Ja, ohne Abo und auf deinem eigenen Server. Rechnungen, Belege und Kontakte übernimmst du per API oder, bei Lexware Office ohne Tarif XL, über eine Sicherung aus der Web-Oberfläche, siehe Umzug aus Lexoffice und Umzug aus sevDesk.

Für wen ist Haben gedacht?

Für Freiberufler, Selbstständige und Kleinunternehmer mit Einnahmen-Überschuss-Rechnung (EÜR), auch mit Kleinunternehmerregelung nach § 19 UStG, und für kleine GmbHs und UGs. Eine GmbH oder UG macht ihre Buchhaltung in Haben, mit Gesellschafter-Verrechnungskonto statt Privatkonten; Bilanz und GuV zeigt Haben als Entwurf für die Steuerberatung und sendet E-Bilanz, Körperschaft- und Gewerbesteuererklärung (für eine GmbH ohne Beteiligungen und Organschaft) und bucht Gewinnausschüttungen samt Kapitalertragsteuer-Anmeldung und Steuerbescheinigungen für die Gesellschafter. Die Bilanz zur Hinterlegung beim Unternehmensregister erstellt Haben als PDF, mit den Vermerken zu Restlaufzeiten und gegenüber Gesellschaftern. Den Lohn des Gesellschafter-Geschäftsführers, von Minijobs und (als Entwurf zum Gegenprüfen) von Angestellten rechnet und bucht Haben, meldet die Lohnsteuer über ELSTER an und listet Beitragsnachweis und Meldungen zum Abtippen im SV-Meldeportal, siehe Lohn.

Ist Haben GoBD-konform?

Ja. Gebuchtes wird festgeschrieben und lässt sich nur per Storno korrigieren, jede Änderung steht im Audit-Log, und das Jahresarchiv hat SHA-256-Prüfsummen. Siehe Buchhaltung in Haben.

Wie kommen Voranmeldung und Erklärungen zu ELSTER?

Direkt aus Haben oder über das Portal Mein ELSTER (alle Wege im Vergleich):

  • Direkt aus Haben per ERiC, für Voranmeldung, Umsatzsteuererklärung, Anlage EÜR und Einkommensteuer, dazu Bescheide aus dem ELSTER-Postfach. Dafür brauchst du eine eigene Hersteller-ID; die Beantragung dauert oft Wochen (Erste Schritte).
  • Über Mein ELSTER, ohne Hersteller-ID: Die Voranmeldung lädst du als XML-Datei hoch. Alle vier Formulare trägt die Browser-Erweiterung Haben für Mein ELSTER ein, oder ein KI-Assistent wie Claude in Chrome. Absenden machst du dort selbst; die Abgabe der Voranmeldung vermerkst du danach in Haben mit Transferticket und Protokoll.
Kann meine Steuerberatung damit arbeiten?

Ja, mit einem eigenen Zugang, der nur lesen kann, oder über den DATEV-Export im Kontenrahmen SKR03 oder SKR04.

Können mehrere Personen Haben nutzen?

Haben ist für dich und deine eigene Firma gedacht: Es gibt genau einen Inhaber mit allen Rechten. Dazu kannst du deine Steuerberatung per Einladungslink mit einem Zugang, der nur lesen kann, dazuholen.

Kann ich Claude oder andere Agenten mit meiner Buchhaltung nutzen?

Ja, über MCP, und nur lesend: „Welche Rechnungen sind überfällig?“ Buchen und Senden an ELSTER machst du weiter selbst. Siehe KI-Assistenten (MCP). Für eigene Werkzeuge und Automationen gibt es die REST-API.

Ist das sicher?

Wir haben geprüft, und du kannst es auch: Der Code ist offen.

  • Geprüft: mit Cloudflares Security Audit Skill und /security-review von Claude Code. Lass deinen Agenten gern selbst über dieses Repository laufen.
  • Abgesichert: Zugangsdaten verschlüsselt in der Datenbank, ERiC getrennt vom App-Prozess, Rollen für Inhaber und Steuerberatung, Festschreibung per Datenbank-Trigger, Änderungsprotokoll als Hashkette.
  • Offen für alle: Jeder kann den Code lesen und Lücken melden, bitte vertraulich wie in SECURITY.md beschrieben.

📚 Dokumentation

Alles im Detail, mit Suche: https://haben.app/. Jede Funktion oben verlinkt ihre Seite; dazu kommen:

🔧 Entwicklung

Voraussetzungen: Bun 1.4.4, Git und PostgreSQL 18. Bun ist Laufzeit und Paketmanager zugleich.

bun install
cp apps/web/.env.example apps/web/.env   # DATABASE_URL, BETTER_AUTH_SECRET, HABEN_ENCRYPTION_KEY eintragen
bun run db:migrate
bun run dev                               # http://localhost:3000

Oder ohne Bun und PostgreSQL auf dem Rechner, mit Docker: docker compose up im Hauptordner startet Datenbank, Migrationen und Dev-Server mit Neuladen beim Speichern (Mit Docker Compose).

Ohne ERiC (unter Einstellungen per Knopf von der Finanzverwaltung geladen) simuliert Haben die ELSTER-Übermittlung und zeigt das deutlich an. Ohne ANTHROPIC_API_KEY oder EXTRACTION_BASE_URL (OpenAI-kompatibler Dienst wie Ollama oder OpenRouter) bleibt die KI-Auslesung aus.

Stack: TanStack Start (React-API mit TanStack Redact, Server Functions), PostgreSQL mit Drizzle, Better Auth mit Passkeys oder OIDC-SSO, Zod, Typst für die Rechnungs-PDFs, @e-invoice-eu/core für ZUGFeRD und XRechnung, ERiC über koffi in einem eigenen Prozess, Vitest und Playwright. Aufbau und Abläufe beschreibt die Architektur, alles Weitere Entwicklung.

Paket Inhalt
apps/web Oberfläche, Server Functions, Datenbank, Anmeldung
packages/core Beträge, Zeiträume, Voranmeldung, EÜR, Buchungssätze, Zuordnungsvorschläge
packages/einvoice Rechnungs-PDF, ZUGFeRD und XRechnung erzeugen, eingehende E-Rechnungen lesen
packages/elster ERiC-Anbindung im Worker-Prozess, XML für Voranmeldung, Jahreserklärungen und Nachrichten, Postfach, Belege von ELSTER
packages/import CSV-Import von Kontakten, Artikeln und Anlagen, Kontoauszüge (DKB, N26, CAMT.053), Exporte von Zahlungsdienstleistern (PayPal, Stripe, Shopify Payments, eBay), Kontoabruf über Enable Banking, DATEV-Buchungsstapel, Lexware Office (API und Web-Sicherung), sevDesk-API
apps/elster-helfer Browser-Erweiterung „Haben für Mein ELSTER“ (TypeScript, Vite): trägt die Werte aus Haben in die Formulare ein

🧩 Mehr von uns

  • Suchst du einen Ersatz für Gmail oder Google Workspace? Kontext: Mail, Kalender, Kontakte, Chat und Telefonie für dein Team, auf deinem eigenen Server.
  • Word, Excel und PowerPoint ohne Microsoft 365? Schreibzeug bearbeitet sie im Browser und speichert sie als .docx, .xlsx und .pptx.

🤝 Mitwirken

Fehler und Ideen gern als Issue. Besonders hilfreich sind anonymisierte Kontoauszüge von Banken, die Haben noch nicht kennt, und Rückmeldungen zur ELSTER-Übermittlung. Vor einem Pull Request bitte bun run lint, bun run typecheck und bun run test laufen lassen (die Datenbanktests brauchen TEST_DATABASE_URL, siehe Entwicklung).

⭐ Sterne im Verlauf

Verlauf der GitHub-Sterne von Haben

⭐ Gefällt dir Haben? Ein Stern auf GitHub hilft anderen, es zu finden.
🐛 Fehler melden · 💡 Idee vorschlagen

Lizenz: AGPL-3.0 · © Tristan Teufel und Mitwirkende
Wer Haben für andere betreibt, muss ihnen den Quellcode anbieten; der Link steht in der Navigation. Eine kommerzielle Lizenz ohne diese Pflichten gibt es über teufel-it.de.
Haben ist keine Steuerberatung. Konten, Kategorien und Aufbewahrung vor dem Echtbetrieb mit deiner Steuerberatung abgleichen.
ELSTER ist eine Marke der Finanzverwaltung. Haben steht in keiner Verbindung zu Lexware, DATEV oder der Finanzverwaltung.

About

Selbst gehostete Buchhaltung für Freiberufler, Selbstständige, Kleinunternehmer, GmbH und UG: E-Rechnung (ZUGFeRD, XRechnung), Belege, Bankabgleich, EÜR oder Bilanz, E-Bilanz und Steuererklärungen direkt an ELSTER. GoBD-konform, DATEV-Export. Open-Source-Alternative zu Lexware Office (lexoffice) und sevDesk. Docker-Image für den eigenen Server.

Topics

Resources

Contributing

Security policy

Accessibility

Stars

372 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages