Rechnungen mit Beancount erstellen und verfolgen
Eine Plain-Text-Vorlage, ein wiederholbarer Workflow und eine einzige Abfrage für „Wer schuldet mir noch Geld?“
Die Rechnungsstellung kann sich wie eine lästige Pflicht anfühlen, eingeklemmt zwischen der erledigten Arbeit und der erwarteten Zahlung. Aber ein guter Rechnungsprozess ist das Rückgrat eines gesunden Cashflows. Er erfüllt eine doppelte Funktion: Er teilt Ihren Kunden klar mit, was sie schulden und wann, und er liefert Ihrem Buchhaltungssystem die unbestreitbaren Fakten, die es benötigt.
Während dedizierte SaaS-Apps elegante, automatisierte PDFs senden können, sind sie oft mit monatlichen Gebühren verbunden und speichern Ihre Daten in einem proprietären Silo. Ein schlanker Plain-Text-Ansatz mit Beancount bietet eine leistungsstarke Alternative. Sie können jede Rechnung in einen klaren Satz von Buchungseinträgen umwandeln und so alle Vorteile der Versionskontrolle, aussagekräftiger Metadaten und sofortiger Abfragen nutzen – ganz ohne Abonnement.
Die minimalistische Rechnung (Felder, die Sie niemals auslassen sollten)
Bevor Sie Ihr Hauptbuch anfassen, benötigen Sie eine professionelle Rechnung. Das Format kann einfach sein, aber der Inhalt muss präzise sein. Diese Felder, die der bewährten Praxis kleiner Unternehmen entlehnt sind, sind nicht verhandelbar.
- Verkäuferdaten: Ihr Firmenname und Ihre physische Adresse.
- Kundendaten: Name und (idealerweise) Adresse Ihres Kunden.
- Rechnungsnummer: Eine eindeutige, fortlaufende ID, die niemals wiederverwendet wird.
INV-045
folgt aufINV-044
. - Ausstellungs- & Fälligkeitsdatum: Geben Sie deutlich an, wann die Rechnung ausgestellt wurde und wann die Zahlung erwartet wird.
- Einzelposten: Eine klare Beschreibung der Dienstleistungen oder Produkte, zusammen mit Menge, Preis und der Zeilensumme.
- Zwischensumme, Steuern und Gesamtbetrag: Zeigen Sie die Berechnung an, damit der Kunde ihr leicht folgen kann.
- Optionale Hinweise: Ein Platz für ein Dankeschön, Überweisungsanweisungen oder eine vom Kunden angegebene Bestellnummer.
Um Ihnen den Einstieg zu erleichtern, haben wir eine Reihe von bearbeitbaren Vorlagen erstellt, die alle diese Felder enthalten. Die Tabellenkalkulationsversionen berechnen sogar die Summen für Sie vor.
Holen Sie sich unsere Vorlagen hier: beancount.io/invoice‑templates (Verfügbar in den Formaten Google Docs, Word, Sheets, Excel und PDF)
Erfassen Sie die Rechnung in Ihrem Hauptbuch
Sobald Sie die PDF-Rechnung an Ihren Kunden gesendet haben, müssen Sie sie in Beancount erfassen. Dies ist ein entscheidender Schritt, der die Einnahmen zum Zeitpunkt des Entstehens und nicht erst zum Zeitpunkt der Zahlung erfasst. Der Prozess umfasst zwei verschiedene Transaktionen.
1. Wenn Sie die Rechnung ausstellen:
Sie erstellen eine Transaktion, die den Gesamtbetrag von Ihrem Income
-Konto auf Assets:AccountsReceivable
überträgt. Dadurch wird ein digitaler Schuldschein in Ihren Büchern erstellt.
; 2025‑07‑21 Rechnung #045 Webdesign-Sprint für Acme Corp.
2025-07-21 * "Acme Corp" "INV-045 Webdesign-Sprint"
Assets:AccountsReceivable 3500.00 USD ; due:2025-08-04
Income:Design:Web
invoice_id: "INV-045"
contact_email: "ap@acme.example"
link: "docs/invoices/2025-07-21_Acme_INV-045.pdf"
Hier belasten Sie AccountsReceivable
und kreditieren Ihr Income
-Konto. Beachten Sie die umfangreichen Metadaten: das Fälligkeitsdatum, eine eindeutige invoice_id
und sogar einen direkten link:
zur PDF-Datei, die Sie gesendet haben.
2. Wenn der Kunde bezahlt:
Wenn das Geld auf Ihrem Bankkonto eingeht, erfassen Sie eine zweite Transaktion, um den Schuldschein „abzuschließen“. Dadurch wird der Saldo von AccountsReceivable
auf Ihr Girokonto übertragen.
2025-08-01 * "Acme Corp" "Zahlung INV-045"
Assets:Bank:Checking 3500.00 USD
Assets:AccountsReceivable
invoice_id: "INV-045"
Der Saldo für INV-045
in Assets:AccountsReceivable
ist nun null, und Ihre Bücher sind perfekt ausgeglichen.
PDF anhängen: Der Metadatenschlüssel
link:
ist besonders leistungsstark, wenn er mit Fava, der Webschnittstelle von Beancount, verwendet wird. Fava rendert einen anklickbaren Link direkt in der Transaktionsansicht, sodass das Quelldokument nie mehr als einen Klick entfernt ist. Dieser Workflow wurde bereits 2016 in einer Feature-Anfrage (GitHub) ins Auge gefasst.
Eine Abfrage, um alle offenen Rechnungen aufzulisten
Wer schuldet Ihnen also noch Geld? Mit diesem System müssen Sie nicht in E-Mails oder Tabellenkalkulationen suchen. Sie benötigen nur eine einfache Abfrage.
Speichern Sie Folgendes als Datei mit dem Namen open-invoices.sql
:
SELECT
meta('invoice_id') AS id,
payee,
narration,
date,
number(balance) AS outstanding
WHERE
account = "Assets:AccountsReceivable"
AND balance != 0
ORDER BY
date;
Führen Sie sie nun von Ihrer Kommandozeile aus:
bean-query books.beancount open-invoices.sql
Innerhalb von Sekunden erhalten Sie einen übersichtlichen, aktuellen Bericht über alle ausstehenden Rechnungen mit der Rechnungs-ID, dem Kunden, dem Ausstellungsdatum und dem geschuldeten Betrag. Keine zusätzliche Software erforderlich.
Automatisieren Sie die Routinearbeit
Das Schöne an Plain Text ist die Skripterstellung. Sie können die mühsamen Teile dieses Workflows automatisieren.
- Vorlage + Pandoc = PDF: Pflegen Sie Ihre Rechnungsvorlage in Markdown. Ein kleines Python-Skript kann die Variablen (Kundenname, Einzelposten, Rechnungsnummer) ausfüllen, und das Kommandozeilen-Tool Pandoc kann sie sofort in ein professionelles PDF konvertieren.
- Git Pre-Commit-Hook: Wenn Sie Ihr Hauptbuch in Git speichern, kann ein einfacher Pre-Commit-Hook Prüfungen durchführen, bevor Sie Ihre Arbeit speichern. Er kann überprüfen, ob jede neue
invoice_id
eindeutig ist, ob die Buchungssätze der Transaktion auf null saldieren und ob die im Metadaten-link:
referenzierte Datei tatsächlich existiert. - Cron-Job: Richten Sie eine geplante Aufgabe (einen Cron-Job) ein, um Ihre
open-invoices.sql
-Abfrage jede Nacht auszuführen und Ihnen die Zusammenfassung per E-Mail zu senden. Sie beginnen jeden Tag mit dem Wissen, wer eine freundliche Erinnerung benötigt.
Ein realistischer Vorbehalt
Beancount ist ein Buchhaltungstool, kein Rechnungsstellungs-Service. Es sendet nicht automatisch Zahlungserinnerungen an Ihre Kunden oder verarbeitet deren Kreditkartenzahlungen. Der Workflow ist wie folgt: Sie erstellen und senden die Rechnung mit der von Ihnen gewählten Methode (z. B. mit den obigen Vorlagen) und buchen dann die Buchungseinträge in Ihrem Hauptbuch.
Für die meisten Freiberufler und kleinen Unternehmen ist dieser manuelle Schritt ein geringer Preis für ein kugelsicheres, prüfbares und kostenloses Buchhaltungssystem, das Sie vollständig besitzen und kontrollieren (beancount.io).
Nächste Schritte
Sind Sie bereit, die Kontrolle über Ihre Rechnungsstellung zu übernehmen? Hier erfahren Sie, wie Sie beginnen können.
- Laden Sie eine Vorlage herunter und verwenden Sie sie, um Ihre nächste echte Rechnung zu erstellen. Stellen Sie sicher, dass Sie eine fortlaufende Rechnungsnummer verwenden.
- Speichern Sie Ihre gesendeten PDFs in einem dedizierten Ordner wie
docs/invoices/
und verwenden Sie den Metadatenschlüssellink:
in Ihrer Beancount-Transaktion, um auf sie zu verweisen. - Speichern Sie die Abfrage
open-invoices.sql
und machen Sie die Ausführung zu einem Teil Ihrer wöchentlichen Finanzprüfung.
Plain-Text-Buchhaltung bedeutet nicht, auf Eleganz oder Kontrolle zu verzichten – es bedeutet nur, dass die Datenbank grep
-fähig ist. Mit einer einfachen Vorlage und den obigen Snippets werden Sie schneller bezahlt und halten Ihre Bücher makellos.