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.
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.
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.
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
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 |
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.
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.“
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.
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-reviewvon 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.
Alles im Detail, mit Suche: https://haben.app/. Jede Funktion oben verlinkt ihre Seite; dazu kommen:
- Einstieg: Betrieb und Installation (Docker Compose, Podman, Backup, Updates), Erste Schritte (Konto, Firmendaten, ELSTER und Hersteller-ID) und Abgabe an ELSTER (alle Wege zum Finanzamt im Vergleich)
- Hintergrund: Buchhaltung in Haben (GoBD, Kontenrahmen, alle Buchungssätze), Architektur · Entwicklung und Roadmap
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:3000Oder 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 |
- 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.
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).
⭐ 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.



