Nordlet

← Blog

Stripe Connect Marketplace Accounting Workflow

Ein Leitfaden für die Praxis zur Erfassung von Gebühren, Entgelten, Überweisungen, Rückerstattungen, Streitfällen und Rückstellungen in einem Marktplatz-Hauptbuch, das sich sauber abstimmen lässt.

Nordlet Team · · 12 Min. Lesezeit

Die meisten Buchhaltungsprobleme auf Marktplätzen lassen sich auf einen einzigen Fehler zurückführen: die Behandlung der Stripe-Bankauszahlung als Umsatzerlöse. Die Auszahlung ist der Nettosaldo aus Dutzenden separater wirtschaftlicher Vorgänge, und die Erfassung als einzelner Ertragsposten verwischt die Plattformprovision, die Verbindlichkeit gegenüber dem Verkäufer sowie alle darin verborgenen Gebühren und Streitfälle. Ein korrekter Arbeitsablauf zerlegt die Auszahlung, bevor auch nur ein Betrag in das Hauptbuch einfließt.

Dieser Leitfaden führt jede Kategorie von Stripe Connect-Transaktionen (Balance Transactions) an ihren richtigen buchhalterischen Platz: Forderungen, Provisionserlöse, Verkäuferverbindlichkeiten, Bearbeitungsaufwand und Verrechnungskonten. Er nutzt die dokumentierten Import- und Abrechnungsendpunkte von Nordlet als Buchungsmechanismus, enthält ein durchgerechnetes Abrechnungsbeispiel und schließt mit einer Checkliste zur Abstimmung, die Sie vor jedem Monats- oder Jahresabschluss durchführen können.

Ermitteln Sie das Connect-Zahlungsmodell vor der Konzeption

Buchhaltungsregeln können erst dann aufgestellt werden, wenn bekannt ist, welches Zahlungsmodell die jeweilige Zahlungsabwicklung verwendet. Das Modell bestimmt, auf welchem Stripe-Saldo die Belastung erfolgt, wer die Gebühren trägt und wo Rückerstattungen und Streitfälle zuerst anfallen.

Connect-Modell Belastung erfolgt bei Trägt Stripe-Gebühren Rückerstattungen/Streitfälle reduzieren Buchhalterische Konsequenz
Direkte Zahlungen (Direct charges) Verknüpftes Konto (Connected account) Konfigurierbar je Partei Saldo des verknüpften Kontos Plattform verbucht ihre Vermittlungsgebühr als Erlös; die Zahlungsaktivitäten des Verkäufers finden überwiegend im Hauptbuch des verknüpften Kontos statt
Zielgebundene Zahlungen (Destination charges) Plattform, mit sofortiger Überweisung auf ein verknüpftes Konto Plattform Plattform Plattform verbucht die Kundenforderung und die Stripe-Gebühr; der Verkäuferanteil ist eine Verbindlichkeit, kein Umsatzerlös
Getrennte Zahlungen und Überweisungen (Separate charges and transfers) Plattformzahlung, gefolgt von einer oder mehreren separaten Überweisungen Plattform Plattform Zahlung und Verkäuferüberweisungen sind getrennte Vorgänge; Verkäuferverbindlichkeit wird unabhängig von der Kundenforderung geführt

Die eigenen Richtlinien von Stripe zur Funktionsweise von Zahlungen in einer Connect-Integration bestätigen, dass bei zielgebundenen Zahlungen sowie bei getrennten Zahlungen und Überweisungen das Plattformguthaben die Zahlungsgebühren, Rückerstattungen und Rücklastschriften trägt. Bei direkten Zahlungen erhält das verknüpfte Konto die Zahlung, und Gebühren können von beiden Parteien belastet werden.

Die praktische Regel lautet: Gehen Sie nicht davon aus, dass „die Stripe-Auszahlung der Umsatz des Verkäufers ist“ oder dass „der Verkäufer die Gebühren zahlt“, bevor Sie das Zahlungsmodell für jeden Zahlungsstrom schriftlich festgehalten haben. Speichern Sie dieses Modell zusammen mit jeder Transaktion. Das Vermischen von direkten und zielgebundenen Zahlungen unter einer einzigen Buchungsregel ist der schnellste Weg, sowohl Erlöse als auch Verbindlichkeiten falsch auszuweisen.

Dieser Leitfaden geht von zielgebundenen Zahlungen oder getrennten Zahlungen und Überweisungen aus, da hier das Plattformguthaben das buchhalterische Gewicht trägt und die meisten Marktplatz-Hauptbücher aufgebaut werden.

Bilden Sie den Geldfluss ab, bevor Sie auch nur eine Zeile importieren

Bevor Sie einen Import durchführen, zeichnen Sie für jeden Zahlungsstrom eine einseitige Transaktionslandkarte:

Customer payment
  -> Stripe charge / payment balance transaction
  -> Stripe fee
  -> platform application fee (commission)
  -> transfer to connected account
  -> refund or dispute (if applicable)
  -> Stripe payout
  -> bank receipt

Jeder Pfeil ist eine eigenständige Transaktion mit einer eigenen ID, Kategorie, einem eigenen Betrag und entsprechenden Daten. Behandeln Sie das Stripe-Guthaben wie ein bankähnliches Verrechnungskonto: Einzahlungen fließen zu, Gebühren und Überweisungen fließen ab, und die Auszahlung bewegt den verbleibenden Betrag zur eigentlichen Bank. Die Dokumentation zu Bank- und Zahlungsimporten von Nordlet empfiehlt genau diese Behandlung für normale Stripe-Aktivitäten.

Wählen Sie den richtigen Stripe-Quellbericht

Für automatisierte Auszahlungs-Abrechnungsstapel verwenden Sie den detaillierten Stripe-Bericht Payout reconciliation, itemized. Er liefert eine Zeile pro Saldo-Transaktion, gruppiert Zeilen nach reporting_category, verknüpft jede Zeile mit einer automatic_payout_id und liefert Brutto-, Gebühren- und Nettosummen. Der Berichts-Auswahlleitfaden von Stripe dokumentiert diesen Bericht und bestätigt charge_id, connected_account_id und destination_payment_id als verfügbare Connect-Felder.

Wenn automatische Auszahlungen nicht aktiviert sind (einige Vereinbarungen mit manueller Auszahlung), verwenden Sie stattdessen den Saldenbericht (Balance report). Betrachten Sie eine Dashboard-Auszahlungsübersicht nicht als ausreichenden Beleg für die Verbuchung. Die Zusammenfassung beweist nur die Stapelsumme; erst der detaillierte Bericht erklärt die einzelnen Komponenten.

Stripe empfiehlt die Klassifizierung nach reporting_category anstelle des älteren Feldes type. Jede Zeile enthält eine source-ID, die eine Verknüpfung zum zugrunde liegenden Objekt herstellt. Beachten Sie die zeitlichen Einschränkungen: Stripe gibt an, dass tägliche Berichtsdaten normalerweise bis Mittag des Folgetages verfügbar sind. Da Sofortauszahlungen nicht sauber einzelnen Transaktionen zugeordnet werden können, erfordern sie eine separate Transaktionsverlaufsabstimmung.

Klassifizieren Sie jede Saldo-Transaktion nach Kategorie

Verwenden Sie reporting_category als primäres Klassifizierungsmerkmal und prüfen Sie anschließend source_id, charge_id und Beschreibungen. Die relevante Zuordnung:

Stripe-Aktivität Berichterstattungskategorie (Reporting category) Buchhalterische Interpretation
Kundenbelastung, Karte oder lokale Zahlungsmethode charge Durch den Kunden finanzierte Forderung oder Verkaufsabrechnung
Rückerstattung refund Stornierung der ursprünglichen Kundenzahlung
Von Stripe einbehaltene Bearbeitungsgebühr fee Zahlungsverarbeitungsaufwand
Plattform-Vermittlungsgebühr platform_earning Provisionserlös
Rückerstattete Vermittlungsgebühr platform_earning_refund Minderung der Provisionserlöse
Überweisung an ein verknüpftes Konto transfer Minderung der Verkäuferverbindlichkeit
Rückgängig gemachte Überweisung transfer_reversal Rückholung vom verknüpften Konto
Rücklastschrift dispute Verlust aus Rücklastschrift; prüfen Sie das zugrunde liegende Streitfallobjekt
Gewonnener oder aufgehobener Streitfall dispute_reversal Rückholung einer zuvor verbuchten Rücklastschrift
Bankauszahlung payout Bankbewegung, keine Umsatzerlöse
Rückgängig gemachte Auszahlung payout_reversal Rückführung von Mitteln auf das Stripe-Guthaben
Einbehaltene Reserve connect_reserved_funds / risk_reserved_funds Beschränkte Mittel, standardmäßig kein Aufwand
Einzug eines langanhaltenden negativen Saldos connect_collection_transfer Finanzierungs- oder Rückholungsereignis, das eine Risikorenditepolitik erfordert

Ein Hinweis zur Terminologie: Das ältere Transaktionstyp-Feld (type) verwendet andere Bezeichnungen für dieselben Vorgänge, darunter payment, application_fee und adjustment. Die Dokumentation zu den Salden-Transaktionstypen von Stripe listet beide Vokabulare auf. Mischen Sie niemals einen type-Wert in eine reporting_category-Regel und erfinden Sie keine Kategorien wie dispute_loss, die von Stripe nicht exportiert werden. Wenn ein Export ein Label enthält, das Sie nicht kennen, behalten Sie den exportierten Wert bei und verifizieren Sie ihn anhand des Quellobjekts.

Verbuche normale Marktplatzaktivitäten im Hauptbuch

Für eine Plattform mit zielgebundenen Zahlungen oder getrennten Zahlungen und Überweisungen sehen die idealtypischen Buchungssätze wie folgt aus.

Kundenbelastung (Kundengelder fließen in das Stripe-Verrechnungskonto ein):

Dr Stripe clearing        Gross customer charge
    Cr Trade receivables   Gross customer charge

Stripe-Bearbeitungsgebühr:

Dr Stripe fee expense      Stripe fee
    Cr Stripe clearing     Stripe fee

Verrechnen Sie die Stripe-Gebühr nicht mit den Umsatzerlösen, es sei denn, Ihre Bilanzierungsrichtlinie verlangt und unterstützt eine Nettodarstellung ausdrücklich.

Plattformprovision (Ihr Erlös, abgezweigt von dem Betrag, der sonst dem Verkäufer geschuldet würde):

Dr Seller payable          Commission amount
    Cr Commission revenue   Commission amount

Verkäuferüberweisung (Begleichung geschuldeter Beträge, kein Aufwand):

Dr Seller payable          Transfer amount
    Cr Stripe clearing      Transfer amount

Eine Überweisung ist niemals automatisch ein Aufwand. Der Anteil des Verkäufers wird mit Eingang der Zahlung zu einer Verbindlichkeit, und die Überweisung begleicht diese Verbindlichkeit. Die Abrechnungsbuchungsregeln von Nordlet folgen diesem Prinzip: platform_earning-Zeilen werden als Provisionserlöse gebucht, während transfer-Zeilen die Verkäuferverbindlichkeiten reduzieren. Die dokumentierten Standard-Buchungsschlüssel lauten settlements.commissionRevenue (Standard 5001), settlements.sellerPayable (Standard 4499), settlements.fees (Standard 6800) und settlements.suspense (Standard 4440). Jeder dieser Schlüssel kann pro Unternehmen über die Buchungsregeln in der Nordlet-API überschrieben werden.

Behandeln Sie Rückerstattungen bezogen auf den Originalverkauf, nicht als lose Bankposten

Eine Rückerstattung ist mit der ursprünglichen Belastung oder Rechnung verknüpft. Konzeptionell gilt:

Dr Refunds / sales reversals    Refund amount
    Cr Trade receivables         Refund amount

Der tatsächliche Buchungssatz hängt davon ab, ob der Umsatz bereits realisiert wurde, ob Steuern storniert werden müssen und ob eine Plattform-Vermittlungsgebühr erstattet wurde. Eine einzige Rückerstattung kann zu einer Forderungsstornierung, einer Steuerstornierung, einer Erstattung der Vermittlungsgebühr, einer Überweisungsstornierung beziehungsweise Reduzierung der Verkäuferverbindlichkeit sowie zu einer Stripe-Gebührenkonsequenz führen, die geprüft und nicht einfach angenommen werden muss.

Die zeitliche Falle: Eine Rückerstattung wird häufig in einer späteren Auszahlung als die ursprüngliche Belastung abgerechnet. Bevorzugen Sie den detaillierten Auszahlungsabstimmungsbericht gegenüber einer synthetischen Rückerstattung aus einem Export auf Belastungsebene. Die Dokumentation von Nordlet warnt ausdrücklich davor, dass eine aus einem Zahlungs-Export synthetisierte Rückerstattung nur eine Annäherung darstellt, wenn die Rückerstattung später beglichen wird. Der Abrechnungsimporteur kann die Rückerstattungszeile einlesen, sie dem Originalverkauf zuordnen und die Forderung bei Buchung des Stapels stornieren.

Behandeln Sie Streitfälle getrennt von Rückerstattungen

Ein Streitfall ist ein Anspruch des Karteninhabers oder der ausstellenden Bank, und Stripe kann sowohl den streitigen Betrag als auch eine Streitfallgebühr vor der Klärung belasten. Bei zielgebundenen Zahlungen sowie bei getrennten Zahlungen und Überweisungen belastet Stripe das Plattformguthaben für beides, gemäß den Hinweisen zu Rückerstattungen und Streitfällen. Die Plattform kann versuchen, das Geld durch die Rückgängigmachung der Verkäuferüberweisung zurückzuholen.

Ein verlorener Streitfall aus Sicht der Plattform:

Dr Chargeback loss / receivable reopened   Disputed amount
Dr Dispute-fee expense                      Dispute fee
    Cr Stripe clearing                      Combined amount

Wenn der Verkäufer den Verlust trägt und die Rückholung bestätigt ist:

Dr Seller payable / recovery account   Recoverable amount
    Cr Chargeback recovery              Recoverable amount

Verbuchen Sie eine Verkäuferrückholung nicht allein deshalb, weil eine Überweisungsstornierung angefordert wurde. Überprüfen Sie, ob die Stornierung erstellt wurde, erfolgreich war und im Stripe-Guthaben erscheint. Wenn der Streitfall gewonnen wird, erstattet Stripe den strittigen Betrag über eine dispute_reversal-Zeile; buchen Sie den Rücklastschriftverlust zurück und behandeln Sie etwaige von Stripe nicht erstattete Streitfallgebühren separat. Nordlet gleicht Rücklastschriftzeilen über die charge_id einer zuvor abgeglichenen Belastung ab, entweder aus derselben Datei oder aus einem früheren Import.

Ein durchgerechnetes Abrechnungsbeispiel

Nehmen wir einen automatischen Auszahlungsstapel. Der detaillierte Bericht enthält:

  • Eine charge-Zeile: Brutto 100,00, Stripe-Gebühr 3,20, Netto 96,80
  • Eine platform_earning-Zeile: 15,00, die Provision der Plattform
  • Eine transfer-Zeile: 81,80 an den verknüpften Verkäufer
  • Eine refund-Zeile aus einem früheren Verkauf: Brutto 20,00, abgerechnet in diesem Stapel
  • Eine payout-Zeile: die auf das Bankkonto fließende Stapelsumme

Die Zusammensetzung der Auszahlung gemäß der Stripe-Abrechnungsidentität:

Gross charges                100.00
- refunds                     20.00
- Stripe fees                  3.20
- transfers                   81.80
= net to platform balance     -5.00

Die platform_earning-Zeile bewegt kein Geld ein zweites Mal. Sie benennt die 15,00, die nach Abzug der Gebühr und der Verkäuferüberweisung im Plattformguthaben verbleiben, damit die Plattform Provisionserlöse erfassen kann, anstatt sie ableiten zu müssen.

Hier übersteigen die Verkäuferüberweisung und die Rückerstattung die Nettozahlungssaktivität, sodass der Stapel einen kleinen Negativsaldo aufweist, der die nächste Auszahlung reduziert oder das Guthaben in Anspruch nimmt. Der gebuchte Buchungssatz storniert die erstattete Forderung, erfasst 15,00 Provisionserlöse, verbucht 3,20 Gebührenaufwand, reduziert die Verkäuferverbindlichkeit um die Überweisung und bucht die Rückerstattungsstornierung. Die Bankposition stimmt mit dem Netto-Betrag überein, der auf dem Konto eingeht. Kein einzelner Wert entspricht „Umsatzerlösen“, und genau das ist der Sinn der Sache.

Import und Buchung über den Abrechnungsendpunkt von Nordlet

Für die Abstimmung auf Auszahlungsebene verwenden Sie:

POST /v1/bank/settlements/import

mit dem Stripe-Anbieter und der detaillierten CSV-Datei. Nordlet gruppiert Zeilen nach automatic_payout_id, wandelt jede Auszahlung in einen Abrechnungsstapel mit Brutto-, Gebühren- und Nettosummen um, überspringt den erneuten Import bereits gebuchter Auszahlungen, lässt payout-Zeilen aus der Abrechnungszusammensetzung aus und gleicht Belastungs-, Rückerstattungs- und Streitfallzeilen automatisch ab mithilfe von Bestell-, Rechnungs-, PaymentIntent-, Belastungs-, Quell- oder Metadaten-Referenzen. Stripe unterteilt den detaillierten Bericht in eine Datei pro Abschnitt. Importieren Sie daher die Belastungs-, Rückerstattungs- und Gebührendateien zusammen: Zeilen, die zu einer bereits importierten, aber noch nicht gebuchten Auszahlung gehören, werden mit dem bestehenden Stapel zusammengelegt. Dies ist ein Import- und Buchungs-Workflow, der über Dateien und Abrechnungsendpunkte gesteuert wird, und kein Live-Stripe-Connector; die Funktionsseite listet auf, was die Bank- und Abrechnungsseite abdeckt.

Gleichen Sie in folgender Reihenfolge ab: Belastungen mit Rechnungen, Rückerstattungen mit Originalbelastungen, Streitfälle mit Originalbelastungen, Provisionszeilen mit der Provisionsbehandlung. Halten Sie Stripe-Gebühren, Anpassungen, Rückstellungen und Auszahlungszeilen aus dem Rechnungsabgleich heraus. Das Glossar zur Zahlungsabstimmung von Nordlet besagt, dass Gebühren- und Anpassungszeilen konzeptuell nicht mit Rechnungen abgeglichen werden können; leiten Sie nicht zuordenbare, geldwerte Posten auf das Verrechnungskonto. Korrekturen von Hand erfolgen über bank/settlements/match { lineId, invoiceId }, wobei eine null-invoiceId die Zuordnung aufhebt.

Verbuchen Sie anschließend einen ausgeglichenen Stapel:

POST /v1/bank/settlements/post

Dies erstellt einen ausgeglichenen Buchungssatz, gleicht zugeordnete Rechnungen aus, belastet das Hauptbuchkonto des Bankkontos für die Nettoauszahlung, belastet Gebühren, kreditiert Forderungen für Belastungen, storniert Forderungen für Rückerstattungen und Rücklastschriften, teilt nicht zugeordnete Marktplatzbelastungen zwischen Provisionserlösen und Verkäuferverbindlichkeiten auf, wenn commissionPercent angegeben ist, und leitet nicht aufgelöste Beträge an das Verrechnungskonto weiter. Jede Kategorie, die nicht erkannt wird, landet ebenfalls auf dem Verrechnungskonto, wobei die Antwort diese Kategorien in einer Warnung nennt, anstatt sie stillschweigend zu schlucken.

Checkliste zur Abstimmung

Führen Sie diese Prüfungen vor jedem Monats- oder Jahresabschluss durch:

  • Keine doppelten balance_transaction_id
  • Kein doppelter Abrechnungsstapel (provider, payout_id)
  • Die Summe der Zeilen im net-Betrag entspricht dem Stapel-Nettobetrag
  • Der Stapel-Nettobetrag entspricht der Bankauszahlung, vorbehaltlich von Zeit- und Währungsrichtlinien
  • Jede Rückerstattung hat eine Originalbelastung oder eine protokollierte Ausnahme
  • Jeder Streitfall hat eine Streitfall- oder Belastungsreferenz
  • Jede Überweisung hat eine ID des verknüpften Kontos
  • Jede platform_earning-Zeile hat eine definierte Provisionsbehandlung
  • Das Verrechnungskonto steht auf null oder wurde vollständig überprüft, einschließlich aller in der Buchungswarnung genannten, nicht anerkannten Kategorien
  • Die Verkäuferverbindlichkeit ist nicht negativ, es sei denn, es liegt eine genehmigte Vorschuss- oder Rückholungsrichtlinie vor
  • Gebuchte Stapel können nicht stillschweigend erneut importiert oder gebucht werden
  • Eine Auszahlung in einer anderen Währung als der Basiswährung des Unternehmens wird zum Kurs des Auszahlungstages umgerechnet, wobei die Differenz zum Kurswert der jeweiligen Rechnung als realisierter Kursgewinn oder -verlust verbucht wird; eine Auszahlung, die Währungen mischt, wird beim Import abgelehnt

Gleichen Sie auf drei Ebenen ab: Zeile (jede Transaktion behält ID, Kategorie, Betrag, Währung, Quelle), Auszahlung (detaillierte Nettowerte entsprechen der Stripe-Auszahlung und dem Bankbeleg) und Hauptbuch (der gebuchte Buchungssatz ist im Gleichgewicht und erzeugt die beabsichtigten Ertrags-, Gebühren-, Forderungs-, Verkäuferverbindlichkeits- und Verrechnungspositionen). Überprüfen Sie insbesondere für Verkäufersalden, dass die Eröffnungsverbindlichkeit zuzüglich des neuen Verkäuferanteils abzüglich von Überweisungen und gültigen Stornierungen der Schlussverbindlichkeit entspricht.

Das wiederkehrende Problem bei jedem Marktplatz-Hauptbuch ist dasselbe wie zu Beginn: das Zusammenfassen einer strukturierten Auszahlung zu einem einzigen Betrag. Halten Sie die Komponenten getrennt, verankern Sie jede an einer stabilen Stripe-Kennung und überlassen Sie dem Verrechnungskonto alles, was Sie noch nicht erklären können. Ein sauberer Abschluss ist das, worauf ein Wirtschaftsprüfer vertraut.

FAQ

Ist die Stripe-Auszahlung der Umsatzerlös der Plattform?

Nein. Die Auszahlung ist der Nettobetrag aus Belastungen, Rückerstattungen, Bearbeitungsgebühren, Verkäuferüberweisungen, Streitfällen und Anpassungen, die zufällig im selben Stapel abgerechnet wurden. Die Verbuchung als einzelner Ertragsposten verwischt die Verkäuferverbindlichkeit und den darin enthaltenen Bearbeitungsaufwand. Bei einem Agenturmarktplatz ist der Umsatz die Provision, die durch die platform_earning-Zeilen identifiziert wird.

Gegen welchen Stripe-Bericht sollte ich abgleichen?

Gegen den detaillierten Bericht „Payout reconciliation, itemized“, da er eine Zeile pro Saldo-Transaktion mit einer reporting_category, einer automatic_payout_id sowie Brutto-, Gebühren- und Nettobeträgen liefert. Eine Dashboard-Auszahlungsübersicht beweist nur die Stapelsumme. Wenn automatische Auszahlungen nicht aktiviert sind, verwenden Sie stattdessen den Saldenbericht (Balance report).

Sollte eine Überweisung an einen Verkäufer als Aufwand verbucht werden?

Nein. Der Anteil des Verkäufers wird in dem Moment zu einer Verbindlichkeit, in dem die Kundenbelastung eingeht, und die Überweisung begleicht diese Verbindlichkeit. Die Verbuchung von Überweisungen als Aufwand doppelt die Kosten und lässt die Verkäuferverbindlichkeit dauerhaft zu hoch erscheinen.

Was passiert mit einer Stripe-Zeile, deren Kategorie der Importeur nicht erkennt?

Sie wird auf dem Verrechnungskonto der Abrechnung (Standard 4440) gebucht, und die Buchungsantwort gibt eine Warnung aus, die die dorthin geleiteten Kategorien benennt. Rückstellungen und ungewöhnliche Anpassungen landen typischerweise auf diese Weise im System, was so beabsichtigt ist: Das Geld bleibt sichtbar und der Buchungssatz bleibt im Gleichgewicht, bis jemand entscheidet, wohin es gehört.

Wie werden Rückerstattungen gehandhabt, die in einer späteren Auszahlung abgerechnet werden?

Sie gehen als refund-Zeile im detaillierten Bericht der späteren Auszahlung ein und werden über die charge_id der zuvor abgeglichenen Belastung mit der Originalbelastung verknüpft. Eine aus einem Zahlungs-Export auf Belastungsebene synthetisierte Rückerstattung ist in diesem Fall nur eine Annäherung, weshalb der detaillierte Bericht die sicherere Quelle darstellt.

Weiterführende Literatur