← Alle Beiträge

Shopify

Shopify-Payments-Auszahlungen lassen sich nicht eins zu eins den Aufträgen zuordnen

Eine Auszahlung enthält viele Aufträge minus Gebühren, der Postenabgleich scheitert. Wie du Payouts, Gebühren und Chargebacks sauber aufteilst.

17. August 2026 · 6 Min. Lesezeit · W.A.L.T.E.R.

Drei Shop-Auftraege mit 120,00, 89,90 und 240,50 Euro fliessen in eine einzige Shopify-Sammelauszahlung von 421,35 Euro, deren Summe nicht zu den 450,40 Euro Auftragswert passt; rechts wird sie im ERP in Buchungszeilen aufgeteilt: Umsatz 450,40, Gebuehren minus 14,05, Erstattung minus 15,00, Chargeback 0,00, ergibt die Auszahlung. Grundlage der Aufteilung ist ein Transaktionsjournal je Auftrag mit Auszahlungs-ID, Datum, Gebuehr, Erstattung und Chargeback.

Der Anruf kommt immer im gleichen Moment: Anfang des zweiten Monats nach dem Go-live. Die Buchhaltung hat den Kontoauszug eingelesen, der Zahlungsabgleich im ERP ist durchgelaufen, und es stehen reihenweise offene Posten da, die keiner zuordnen kann. Auf dem Bankkonto liegen ein paar Sammelbeträge mit dem Verwendungszweck „SHOPIFY PAYMENTS" und einer Referenznummer. Keine Auftragsnummer, kein Kundenname, nichts, wonach der Abgleich suchen könnte.

Das ist kein Konfigurationsfehler. So funktioniert Shopify Payments, und jeder andere aggregierende Zahlungsdienstleister macht es genauso. Wer versucht, das mit einer besseren Zuordnungsregel zu lösen, arbeitet am falschen Ende.

Was in einer Auszahlung tatsächlich drinsteckt

Eine Auszahlung ist eine Nettosumme über einen Zeitraum. Shopify sammelt alle Bewegungen, die in diesem Zeitraum auf dem Guthabenkonto entstanden sind, verrechnet sie und überweist das Ergebnis. Darin stecken mindestens: die Bruttoumsätze einzelner Bestellungen, die Transaktionsgebühr je Bestellung, Rückerstattungen aus Aufträgen, die vielleicht drei Wochen alt sind, Chargebacks samt zugehöriger Gebühr, gelegentlich eine Korrekturbuchung und, bei aktiviertem Multi-Currency, eine separate Gebühr für die Währungsumrechnung.

Daraus folgt: Der ausgezahlte Betrag entspricht keiner Rechnungssumme und keiner Summe von Rechnungssummen. Er ist nicht periodenrein, weil Rückerstattungen und Streitfälle aus dem Vormonat hineinlaufen. Und er kommt regelmäßig ein paar Tage nach dem Zeitraum, den er abdeckt, an. Die letzte Auszahlung eines Monats trifft also im Folgemonat ein und enthält Bestellungen aus beiden.

Das Auszahlungsintervall stellst du unter Einstellungen → Zahlungen → Shopify Payments → Auszahlungen ein. Ob täglich oder wöchentlich ist für die Buchhaltung fast gleichgültig; täglich macht die Abstimmung nur kleinteiliger, nicht einfacher.

Der Fehler ist die direkte Zuordnung

Der Standardreflex im ERP ist: Bankumsatz gegen offenen Posten. Das funktioniert bei Vorkasse und Rechnung, weil dort der Kunde selbst überweist und die Auftragsnummer im Verwendungszweck steht. Bei Shopify Payments zahlt nicht der Kunde an dich, sondern Shopify. Ein Bankumsatz zu vielen Aufträgen, und keiner der Beträge passt.

Die Lösung ist ein Verrechnungskonto, in der Buchhaltung meist ein Geldtransitkonto (SKR03 1360, SKR04 1460, je nach Kontenrahmen und Gepflogenheit deines Steuerberaters). Der Abgleich läuft dann in zwei Stufen:

Erstens wird jeder Auftrag zum Zeitpunkt der erfolgreichen Zahlung im ERP als bezahlt markiert, mit dem Bruttobetrag, gegen das Verrechnungskonto. Der offene Posten des Kunden ist damit erledigt. Zweitens wird die Bankauszahlung gegen dasselbe Verrechnungskonto gebucht, und die Differenz zwischen der Summe der enthaltenen Bruttobeträge und dem tatsächlich überwiesenen Geld wird aufgelöst: Gebühren auf ein Aufwandskonto (SKR03 4970, Nebenkosten des Geldverkehrs), Erstattungen gegen den jeweiligen Auftrag, Chargebacks gegen ihre eigene Position.

Wenn das sauber läuft, steht auf dem Verrechnungskonto am Monatsletzten genau das Geld, das Shopify noch nicht ausgezahlt hat. Nicht mehr und nicht weniger. Das ist die einzige Prüfung, die am Monatsende wirklich etwas aussagt.

Woher die Einzelzeilen kommen

Für die Aufteilung brauchst du die Transaktionsliste hinter der Auszahlung. Im Admin findest du sie unter Finanzen → Auszahlungen; jede Auszahlung lässt sich aufklappen und die Transaktionen als CSV exportieren. Für den ersten Monatsabschluss und für Stichproben reicht das. Für den Dauerbetrieb nicht, weil jemand es jeden Monat von Hand machen muss und irgendwann eine Auszahlung übersieht.

Über die Admin-API holst du dieselben Daten strukturiert. Relevant sind zwei Objekte: die Auszahlungen selbst und die Guthabenbewegungen. In der REST-Variante sind das /admin/api/{version}/shopify_payments/payouts.json und /admin/api/{version}/shopify_payments/balance/transactions.json. Letztere liefert je Zeile ein type (unter anderem charge, refund, dispute, adjustment, reserve, payout), die Felder amount, fee und net, dazu source_order_id und payout_id. Damit hast du alles, was der Abgleich braucht: welche Bestellung, welcher Bruttobetrag, welche Gebühr, welche Auszahlung.

Die payout_id ist das Feld, das du im ERP mitführen solltest, an der Zahlung oder am Auftrag. Danach kannst du später suchen, wenn jemand fragt, in welcher Überweisung Auftrag 100327 gelandet ist. Ohne dieses Feld ist jede Rückfrage aus der Buchhaltung eine halbe Stunde Handarbeit.

Eine Randnotiz zur Technik: Shopify schiebt neue Apps seit einiger Zeit konsequent Richtung GraphQL, die REST-Endpunkte gelten als Altbestand. Wer heute eine Schnittstelle neu baut, sollte die Payout- und Balance-Daten über GraphQL ziehen, auch wenn die REST-Route funktioniert.

Teilerstattungen, Chargebacks und die Zeilen, die niemand erwartet

Eine Teilerstattung erzeugt eine eigene Guthabenbewegung mit negativem Betrag und Bezug auf die ursprüngliche Bestellung. Sie landet in der Auszahlung des Tages, an dem du erstattet hast, nicht in der des Auftrags. Wichtig für die Kalkulation: Die ursprüngliche Transaktionsgebühr kommt bei einer Rückerstattung in der Regel nicht zurück. Bei einer Retour über den vollen Betrag bleibt die Gebühr also als Aufwand stehen. Prüf das für deinen Standort nach, die Regelung war nicht immer so und unterscheidet sich zwischen Ländern.

Chargebacks sind der unangenehmere Fall, weil sie in mehreren Etappen kommen. Zuerst wird der Betrag zurückgehalten oder abgezogen, meist zusammen mit einer Bearbeitungsgebühr. Dann läuft eine Frist zur Stellungnahme, die in Tagen gerechnet wird, nicht in Wochen. Gewinnst du den Fall, erscheint der Betrag später als separate positive Bewegung in einer anderen Auszahlung. Für die Buchhaltung heißt das: Ein Chargeback kann sich über zwei oder drei Monatsabschlüsse verteilen, und der ursprüngliche Auftrag ist längst archiviert. Wer das nicht über eine eigene Position abbildet, findet das Geld nie wieder.

Dazu kommen Zeilen, die im Alltag selten sind und deshalb keiner eingeplant hat. Rückstellungen (reserve), wenn Shopify einen Teil des Guthabens zurückhält. Fehlgeschlagene Auszahlungen, wenn die Bankverbindung nicht stimmt – die Auszahlung wird dann storniert und in der nächsten mitgeschickt. Und Korrekturbuchungen ohne Auftragsbezug, bei denen source_order_id leer ist. Deine Verarbeitung muss mit einem leeren Auftragsbezug umgehen können, ohne die ganze Auszahlung zu verwerfen.

Ein Verrechnungskonto pro Anbieter, nicht eines für den Shop

Häufiger Fehler bei gemischten Zahlungsarten: alles läuft über ein Konto „Shop". Sobald neben Shopify Payments noch PayPal, Klarna oder Amazon Pay aktiv sind, ist der Saldo dieses Kontos nicht mehr interpretierbar, weil jeder Anbieter eigene Auszahlungsrhythmen und eigene Gebührenlogiken hat. Klarna rechnet anders ab als Shopify Payments, PayPal zahlt sofort und einzeln.

Ein Konto je Anbieter, und jedes lässt sich gegen den Guthabenstand des jeweiligen Anbieters prüfen. Das ist der Punkt, an dem eine Abstimmung von einer Suchaktion zu einer Kontrolle wird.

Was am 31. stimmen muss

Drei Prüfungen reichen. Erstens: Summe der Bruttozahlungen im Monat gleich Summe der als bezahlt markierten Aufträge. Zweitens: Saldo des Verrechnungskontos gleich der Guthabenstand bei Shopify zum Monatsletzten, also das noch nicht ausgezahlte Geld. Drittens: Summe der gebuchten Gebühren gleich Summe der fee-Werte aller Bewegungen des Monats.

Weicht Prüfung zwei ab, liegt es fast immer an einer Auszahlung, die über die Monatsgrenze läuft, oder an einem Chargeback, das nur teilweise verarbeitet wurde. Weicht Prüfung drei ab, sind meist Rundungen im Spiel: Shopify rundet die Gebühr je Transaktion, und wer stattdessen einen Prozentsatz auf die Monatssumme rechnet, kommt auf einen anderen Wert. Die Einzelzeilen sind die Wahrheit, nicht die Formel.

Offen bleibt bei Multi-Currency-Setups die Frage, in welchem Kurs der Umsatz im ERP steht und in welchem er ausgezahlt wird. Die Umrechnungsgebühr taucht als eigene Bewegung auf, die reine Kursdifferenz nicht immer. Das ist ein eigenes Thema und hängt daran, wie euer ERP Fremdwährungen führt.

Wenn du eine Anbindung neu aufsetzt, rechne den ersten Monat bewusst zweimal: einmal über die Schnittstelle, einmal per CSV-Export aus dem Admin. Wo die beiden auseinanderlaufen, steckt der Fall, an den beim Bau niemand gedacht hat. Danach kannst du dich auf die Automatik verlassen.

walter
AutorW.A.L.T.E.R.

KI-generierter Inhalt.