mivita/dev/2026-08-26-stripe/stripe-erweiterung.md
Kevin 68d230d4e5 Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang
Rueckmeldung der Buchhaltung und des Stripe-Calls (dev/2026-08-26-stripe/):
Stripe kannte bisher nur die E-Mail des Kunden, Zahlungen waren im Dashboard
weder ueber die Bestell- noch ueber die Rechnungsnummer auffindbar, und ein
Zahlungseingang mit falschem Verwendungszweck zwang die Buchhaltung dazu, die
Rechnung von Hand zu schreiben.

- SE1: Der Checkout haengt einen Stripe-Customer mit Name, E-Mail und
  Rechnungsanschrift an die Session (customer statt customer_email); die ID
  liegt an shopping_users und wird wiederverwendet. Namensformat "Vorname
  Nachname (Firma)", reine Firmenkunden unter der Firma. Faellt die
  Customer-Anlage aus, laeuft der Checkout auf dem bisherigen Weg weiter.
  DSGVO-Loeschungen entfernen jetzt auch das Customer-Objekt; die Charges
  bleiben als Buchungsbeleg bestehen.
- SE2: StripeMetadataBuilder als einzige Quelle fuer Metadaten und die
  description (Bestellnummer, Referenz, Kundenname) - damit greift die
  Dashboard-Suche, die bisher nichts Lesbares zu fassen bekam.
- SE3: Die Rechnungsnummer entsteht erst nach der Zahlung und wird daher per
  Job am PaymentIntent nachgetragen (Vorab-Reservierung wuerde Luecken im
  Nummernkreis erzeugen). stripe:backfill-invoice-metadata traegt sie
  rueckwirkend ab dem Go-Live 2026-07-10 nach.
- SE4: Neuer Admin-Button "Zahlungseingang erfassen" an jeder unbezahlten
  Bestellung - bisher gab es ihn nur bei Rechnungskauf, und er setzte nur
  paid, ohne Rechnung, Punkte, Abo-Aktivierung oder Mail. Der neue Weg laeuft
  durch paymentStatusPaidAction, verlangt den Verwendungszweck als Beleg und
  laesst einen abweichenden Betrag nur mit ausdruecklicher Bestaetigung zu.
- S6.4 (aus dem Juli-Plan vorgezogen): stripe:sync-payment-status gleicht
  offene Zahlungen aktiv gegen die API ab. Aufgefallen beim Testlauf - ein nie
  zugestellter Webhook war bisher nicht reparierbar, das Geld lag bei Stripe
  waehrend die Bestellung auf offen stand. Laeuft stuendlich im Scheduler.
- 110 Tests (Pest) fuer alle Pfade, Stripe-Client durchgehend gemockt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-28 09:04:28 +00:00

6.2 KiB
Raw Blame History

Mail 1:

ich hatte gerade einen Zoom Call mit Stripe. Leider übermittelt unser Programm keine Daten der Kunden an Stripe. Das bedeutet, dass ich auf der Abrechnung von Stripe leider keinerlei Daten der Kunden habe außer die Email. Herr Ergün meinte dass man das bei uns im System freigeben muss. Ebenso wäre es hilfreich, wenn Stripe auch die generierte Rechnungsnummer hätte für die Zuteilung in der Buchhaltung.

Die Bestell und Referenznummer in die Suche einzupflegen wäre auch Mega hilfreich für uns.

Und dass wir die Rechnungen selber auf bezahlt stellen können wenn wir einen Zahlungseingang mit falschem Verwendungszweck haben ( z.B. Mathis mit 288,50€ 13.06.2026) hier mussten wir dann selber eine Rechnung schreiben was echt umständlich ist.

Dann hatten wir ja schon gesprochen wegen der Teilstornierungen und Gutschriften. Hier würde das auch einiges erleichtern wenn das über das System laufen könnte.

Mail 2;

vielen Dank für das Gespräch. Anbei fasse ich die besprochenen Punkte zusammen.

  1. Kundennamen erfassen Ich habe mir Ihren API-Aufruf angeschaut, um zu verstehen, wie Sie Ihre Checkout-Sitzungen erstellen. Aktuell wird der Kundenname in den Stripe-Transaktionen nicht angezeigt. Das liegt daran, dass der Name weder an Stripe weitergegeben noch im Checkout abgefragt wird. Eine Anpassung über das Dashboard ist hier leider nicht möglich, da Sie die Checkout-Sitzung per API erstellen. Es ist aber etwas, das Sie technisch kontrollieren und umsetzen können. Es gibt zwei Möglichkeiten:

Option A: Sie geben den Namen an Stripe weiter, so wie Sie es bereits mit der E-Mail-Adresse machen. Die E-Mail des Kunden wird im Bestellformular erfasst und dann an Stripe übergeben – genau das Gleiche können Sie auch mit dem Namen tun. Der Kunde muss den Namen dann nicht erneut im Checkout eingeben.

Option B: Sie lassen ein Feld „Kundenname / Voller Name" direkt im Checkout erscheinen, sodass der Kunde den Namen dort selbst eingibt. Das wird derzeit nicht gemacht, kann aber aktiviert werden.

Beide Optionen erfordern eine kleine Anpassung am API-Aufruf. Falls Sie oder jemand in Ihrem Team sich damit auskennt, hier die Dokumentationen: Customers erstellen (für Option A): https://docs.stripe.com/api/customers/create Name Collection im Checkout (für Option B): https://docs.stripe.com/payments/checkout/name-collection Checkout Session erstellen – API-Referenz: https://docs.stripe.com/api/checkout/sessions/create Ich empfehle, die Anpassung zunächst in Ihrer Testumgebung umzusetzen. Dort können Sie Testzahlungen durchführen und prüfen, ob der Kundenname in den Transaktionen und Berichten so auftaucht, wie Sie es benötigen, ohne Ihre aktuelle Live-Integration zu stören.

  1. Metadaten für die Buchhaltung Sie übergeben bereits Metadaten an Stripe, konkret reference, shopping_order_id und shopping_payment_id. Das ist genau der richtige Ansatz. Wie besprochen lassen sich diese Felder in den Berichten als Spalten für den CSV-Export auswählen. Die Frage ist: Welche zusätzlichen Informationen brauchen Sie in den Berichten, damit die Buchhaltung möglichst effizient läuft?

Alles, was als Metadaten übergeben wird, kann als eigene Spalte exportiert werden – z.B. Rechnungsnummer, Kostenstelle oder andere interne Referenzen. Da die technische Umsetzung bei Ihnen bereits steht, ist es eine Abstimmung mit Ihren Entwicklern, welche Felder noch ergänzt werden sollen.

Dokumentation: Metadaten – Übersicht: https://docs.stripe.com/api/metadata Checkout Session – Metadaten: https://docs.stripe.com/api/checkout/sessions/create#create_checkout_session-metadata Payment Intent – Metadaten: https://docs.stripe.com/api/payment_intents/create#create_payment_intent-metadata

  1. Berichte Zur Erinnerung – die zwei Berichte, die für Ihren Anwendungsfall relevant sind: Bilanzbericht (https://docs.stripe.com/reports/balance) – Funktioniert wie ein Kontoauszug: zeigt alles, was Ihr Stripe-Saldo in einem Zeitraum verändert hat. Ideal für einen Gesamtüberblick über Umsätze und Bewegungen. Auszahlungsabstimmung (https://docs.stripe.com/reports/payout-reconciliation) – Zeigt pro Auszahlung auf Ihr Bankkonto, welche Einzelzahlungen darin enthalten sind. Ideal, wenn Sie einen Bankeingang den zugrundeliegenden Transaktionen zuordnen möchten.

Beide Berichte können Sie wöchentlich automatisch per E-Mail erhalten (Dashboard → Berichte → Planen).

Empfohlene nächste Schritte: Intern klären, welche Daten Sie in den Berichten benötigen Mit Ihren Entwicklern besprechen: Kundennamen übergeben (Option A oder B) + ggf. weitere Metadaten ergänzen Änderungen in der Testumgebung umsetzen und mit Testzahlungen validieren Prüfen, ob der Kundenname und die Metadaten in den Berichten so auftauchen, wie Sie es benötigen Nach erfolgreicher Prüfung live schalten

Falls Fragen aufkommen, von Ihnen oder von Ihrem Entwicklerteam, melden Sie sich jederzeit.

Beste Grüße, Mehmet Ergün

On Wed, Jul 29, 2026 at 9:46 AM Mehmet Ergün mehmete@stripe.com wrote: Hallo Frau Sechtenbeck,

das lässt sich gut lösen. Stripe bietet genau dafür eingebaute Berichte, die Sie auch wöchentlich automatisch erhalten können.

Zwei Berichte, die für Sie relevant sind:

  1. Saldenbericht (Balance Report) -> https://docs.stripe.com/reports/balance Funktioniert wie ein Kontoauszug für Ihr Stripe-Guthaben Zeigt alles, was Ihr Stripe-Saldo in einem Zeitraum verändert hat: Zahlungseingänge, Rückerstattungen, Gebühren Ideal wenn Sie: einen Gesamtüberblick über alle Umsätze/Bewegungen in einem bestimmten Zeitraum brauchen

  2. Bericht zum Auszahlungsabgleich (Payout Reconciliation) -> https://docs.stripe.com/reports/payout-reconciliation Zeigt Ihnen pro Auszahlung auf Ihr Bankkonto, welche einzelnen Zahlungen darin enthalten sind Ideal wenn Sie: einen konkreten Betrag auf Ihrem Bankkonto den zugrundeliegenden Einzelzahlungen und Rechnungen zuordnen möchten

Wöchentlichen Bericht einrichten: Im Stripe Dashboard auf „Berichte" gehen -> https://dashboard.stripe.com/reports Den gewünschten Bericht auswählen Obere auf „Planen" (Schedule) klicken Frequenz auf „Wöchentlich" setzen E-Mail-Empfänger eintragen – Sie bekommen dann automatisch eine Email Benachrichtung

Lassen Sie mich wissen, falls es noch Fragen gibt!