StripeJack erzeugt aus einem Stripe-Konto das vollständige Paket, das die Buchhaltung erwartet: EXTF-Buchungsstapel, Rechnungsbelege im BEDI-Archiv und die Abgrenzung für Abonnements. Es läuft auf dem eigenen Rechner — ohne Zwischendienst, ohne Anmeldung, ohne dass ein Dritter die Zahlungsdaten zu sehen bekommt.
# Einrichten und den letzten abgeschlossenen Monat exportieren $ npx @jungherz-de/stripe-jack init $ npx @jungherz-de/stripe-jack export → out/DATEV_Stripe_…_2026-07.zip (58 Transaktionen, 7 Belege)
Node.js 20 oder neuer · MIT-Lizenz · SKR 03 und SKR 04 · funktioniert als Cronjob
Wer Zahlungen über Stripe abwickelt und in Deutschland bilanziert, kennt die monatliche Fleißarbeit: Stripe schreibt den Betrag abzüglich Gebühren gut, die Rechnung lautet aber über den Bruttobetrag. Die Auszahlung auf das Bankkonto kommt Tage später und fasst mehrere Zahlungen zusammen. Abonnements laufen über Monatsgrenzen und müssen abgegrenzt werden. Und je nachdem, wo der Kunde sitzt und ob er eine Umsatzsteuer-Identifikationsnummer hat, gehört der Erlös auf ein anderes Konto.
Ein CSV-Export aus dem Stripe-Dashboard löst davon nichts. Er kennt weder Debitorenkonten noch Buchungsschlüssel, ordnet keine Belege zu und weiß nichts von Geldtransit oder Rechnungsabgrenzung. Was DATEV erwartet, ist ein EXTF-Buchungsstapel im Format 700 — feldgenau, mit Belegdatum, Soll-/Haben-Kennzeichen und verknüpften Belegen.
StripeJack schließt genau diese Lücke. Es liest die Transaktionen und Rechnungen eines Zeitraums aus der Stripe-API, bildet daraus vollständige Buchungssätze und legt die Rechnungs-PDFs als Belege dazu. Ein Befehl, ein Archiv, fertig für den Upload in DATEV Unternehmen online.
Pro Konto und Zeitraum entsteht eine ZIP-Datei — plus ein Manifest mit Zählern, Summen und Prüfsummen als Nachweis, was ausgeliefert wurde.
Zahlungen gleichen Forderungen aus, Gebühren werden zum Aufwand, Auszahlungen laufen über das Geldtransitkonto. Rückerstattungen drehen dasselbe Kontenpaar um, damit die Steuerautomatik der Erlöskonten wirksam bleibt.
Die Rechnungs-PDFs kommen als BEDI-Archiv mit und sind über Beleglink direkt mit der Buchung verknüpft. Auch die Zahlung einer Rechnung aus einem früheren Monat findet ihren Beleg.
Inland zum Regel- oder ermäßigten Satz, innergemeinschaftliches Reverse Charge, One-Stop-Shop, Drittland — hergeleitet aus Kundenland, USt-IdNr. und dem tatsächlich berechneten Satz statt je Kunde konfiguriert.
Der geführte Dialog fragt Stripe-Schlüssel, Berater- und Mandantennummer ab und belegt alle Kontonummern nach gewähltem Kontenrahmen vor. Geprüft wird vor dem Speichern.
$ stripe-jack init
Ohne Argumente nimmt StripeJack den letzten abgeschlossenen Monat — genau richtig für einen Cronjob. Zeiträume lassen sich frei angeben.
$ stripe-jack export $ stripe-jack export --month 2026-07
Das Archiv liegt im Ausgabeverzeichnis, bereit für DATEV Unternehmen online. Auf Wunsch verschickt StripeJack es direkt an die Kanzlei.
# optional, standardmäßig aus
MAIL_ENABLED=true
Dem Paket liegt eine SKILL.md bei: eine maschinenlesbare Anleitung, die Agenten wie Claude Code die Befehle, die Bedeutung der Exit-Codes und die Reihenfolge der Einrichtung beibringt.
Praktisch heißt das: Statt Kontonummern in einer .env zusammenzusuchen, beschreibt man das Vorhaben in normaler Sprache. Der Assistent prüft zuerst, ob überhaupt eine Konfiguration vorliegt, fragt gezielt die Werte ab, die er nicht erraten kann — Beraternummer, Mandantennummer, Kontenrahmen — und weiß, welche Kontonummern zu SKR 03 und SKR 04 gehören.
Er weiß auch, wo Vorsicht geboten ist: dass ein Debitorenkonto zwischen 10000 und 69999 liegen muss, weil DATEV es sonst als Sachkonto verbucht und jede Zahlung still ihren Kundenbezug verliert. Und dass im Zweifel das Klärungskonto die richtige Antwort ist — nie eine plausible Vermutung.
Nötig ist ein Assistent dafür nicht: stripe-jack init führt dieselbe Einrichtung eigenständig durch.
Du Richte StripeJack für mein Stripe-Konto ein und exportiere den letzten Monat. Claude Code Ich prüfe zuerst die Konfiguration … $ stripe-jack accounts → keine .env gefunden Dafür brauche ich drei Angaben aus dem Schreiben deiner Kanzlei: 1. Beraternummer 2. Mandantennummer 3. Kontenrahmen — SKR 03 oder SKR 04?
StripeJack ist nicht aus der Formatbeschreibung heraus geraten, sondern gegen einen echten, von DATEV akzeptierten Export desselben Monats geprüft — Feld für Feld, Zeile für Zeile. Der Vergleich läuft als automatischer Test bei jeder Änderung mit und ist im Repository nachvollziehbar.
Der eingebaute Befehl stripe-jack verify macht dasselbe mit den eigenen Daten: Er erzeugt den Export für einen Monat und stellt ihn einer vorhandenen Referenzdatei gegenüber. Wer von einem anderen Werkzeug umsteigt, sieht damit vor dem Wechsel, ob sich etwas ändert.
StripeJack ist ein Werkzeug, kein Dienst. Es gibt nichts, wo man sich anmeldet, und keinen Server des Herausgebers, der etwas zu sehen bekäme.
Ein Export enthält personenbezogene Daten: Kundennamen, Anschriften, Rechnungsbeträge und die Belege selbst. Bei einer SaaS-Lösung für denselben Zweck fließen diese Daten zusätzlich über die Systeme eines Dritten — mit allem, was daran hängt: Auftragsverarbeitungsvertrag nach Art. 28 DSGVO, Eintrag im Verarbeitungsverzeichnis, Prüfung des Serverstandorts.
Weil StripeJack lokal läuft, entfällt das vollständig. Beteiligt sind nur das eigene Unternehmen, Stripe — das die Daten ohnehin hat — und die Steuerkanzlei, an die man die Buchhaltung ohnehin übergibt. Ein weiterer Anbieter kommt nicht hinzu.
# global installieren $ npm install -g @jungherz-de/stripe-jack # oder ohne Installation ausprobieren $ npx @jungherz-de/stripe-jack export --month 2026-07 --dry-run
Voraussetzung ist Node.js 20 oder neuer. --dry-run ruft dieselben Daten ab wie ein echter Lauf, schreibt aber nichts — gut geeignet, um die Rechte des Stripe-Schlüssels zu prüfen.
Die vollständige Dokumentation liegt im Repository — auf Deutsch, weil es die Domäne ist.