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.
Die Ausgabe ist identisch — derselbe Buchungsstapel, dieselben Belege, dieselbe Abgrenzung. Verschieden ist nur, wo der Export läuft und wer dafür geradesteht.
Läuft auf dem eigenen Rechner oder Server, als Befehl oder Cronjob. Quelloffen unter MIT, kostenlos.
.env und ein Cronjob sind einzurichten — und zu betreuen.Derselbe Kern, nur gehostet: einmal über Formularfelder einrichten, danach kommt der Export monatlich von selbst. Kostenpflichtig.
Die ehrliche Kurzfassung: Wer die Verantwortung für Betrieb und Datenhaltung selbst tragen will und kann, nimmt das Werkzeug — es ist deshalb quelloffen. Wer sie abgeben will, nimmt den Dienst und bekommt dafür einen Vertrag, der genau das regelt. Ein dritter Weg wäre, so zu tun, als gäbe es diesen Unterschied nicht.
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. Wer diese Daten verarbeitet, entscheidet darüber, welche Pflichten daran hängen.
Weil StripeJack lokal läuft, sind nur das eigene Unternehmen, Stripe — das die Daten ohnehin hat — und die Steuerkanzlei beteiligt, an die man die Buchhaltung ohnehin übergibt. Ein weiterer Anbieter kommt nicht hinzu, und damit entsteht keine Auftragsverarbeitung nach Art. 28 DSGVO: Es gibt niemanden, der im Auftrag verarbeitet.
Bei StripeJack Cloud ist das anders, und das gehört an dieselbe Stelle gesagt: Dort läuft der Export auf einem Server der Jungherz GmbH, also in deinem Auftrag. Ein Vertrag nach Art. 28 DSGVO ist dann nicht Beiwerk, sondern Voraussetzung — er wird mit dem Abo geschlossen und ist im Preis enthalten. Das ist kein Nachteil des einen und kein Vorzug des anderen, sondern schlicht der Unterschied zwischen einem Werkzeug und einem Dienst.
# 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.