Shopify Umsätze in DATEV buchen: CSV-Export statt Plugin
Shopify bietet in jedem Shop einen Bestellexport als CSV an. Diese Datei enthält alles, was für einen monatlichen Buchungsstapel im DATEV-Format nötig ist – mit einigen Lücken, die man kennen sollte. Dieser Beitrag beschreibt, wie die Spalten des Exports zu Buchungszeilen werden, welche Konten belegt werden und wo der Steuerberater nacharbeiten muss.
Der Export: welche Datei, welche Spalten
Im Shopify-Admin unter Bestellungen → Exportieren wählen Sie den Monat als Zeitraum und das Format „CSV für Excel, Numbers oder andere Tabellenkalkulationen“. Die Variante „Einfache CSV-Datei“ ist inhaltlich identisch und unterscheidet sich nur durch das fehlende Byte-Order-Mark.
Die Datei enthält je Bestellung: Bestellnummer (Name), Bestelldatum mit Zeitzonenversatz (Created at), Währung, Zwischensumme, Versand, Steuern und Gesamtbetrag, die Steuerzeilen der Bestellung (Tax 1 Name / Tax 1 Value usw., z. B. „DE MwSt 19%“), Liefer- und Rechnungsland, Zahlungsart (Payment Method), Zahlungsstatus (Financial Status) und den erstatteten Betrag (Refunded Amount). Jede Position steht in einer eigenen Zeile; die Zeilen einer Bestellung werden über Name zusammengeführt.
Wichtig: Die Datei sollte nicht in Excel geöffnet und neu gespeichert werden. Falls doch, wird sie noch gelesen, aber Beträge können dann mit Komma statt Punkt vorliegen – das ist verkraftbar, aber vermeidbar.
Von der Bestellung zur Buchungszeile
Der Grundsatz ist einfach: eine Buchungszeile je Steuersatz und Bestellung. Konto ist das Geldtransitkonto der Zahlungsart, Gegenkonto das Erlöskonto des Steuersatzes, gebucht wird der Bruttobetrag. Bei Automatikkonten bleibt der BU-Schlüssel leer.
Mit dem vorbelegten Kontenrahmen SKR03 ergibt sich:
| Sachverhalt | Erlöskonto SKR03 | SKR04 |
|---|---|---|
| Inland 19 % | 8400 | 4400 |
| Inland 7 % | 8300 | 4300 |
| Ausfuhr Drittland, 0 % | 8120 | 4120 |
| EU-B2B ohne Steuer (Reverse Charge) | 8336 | 4336 |
| EU-B2C mit OSS (Bestimmungsland, Satz in Feld 40/41) | 8339 | 4339 |
Als Geldtransitkonten dienen 1360 (Shopify Payments), 1361 (PayPal) und 1362 (sonstige Zahlungsarten) – im SKR04 entsprechend 1460, 1461, 1462. Gutscheinverkäufe gehen nicht in den Erlös, sondern auf das Verbindlichkeitskonto 1593 (SKR04: 3272). Jede Zuordnung ist in den Mandanteneinstellungen editierbar; der Steuerberater bestätigt sie einmalig.
Belegdatum ist das Bestelldatum in der Zeitzone des Shops. Belegfeld 1 enthält die Bestellnummer ohne #, die Auftragsnummer (Feld 95) die Bestellnummer wie im Shop, der Buchungstext lautet z. B. „Shopify #1042 Müller“.
Steuersätze aus den Steuerzeilen rekonstruieren
Der Bestellexport führt keinen Steuersatz je Position. Die Sätze werden aus den Steuerzeilen der Bestellung abgeleitet: Aus Steuerbetrag und Satz ergibt sich der Bruttoanteil (Brutto = Steuer × (100 + Satz) / Satz). Bei Bestellungen mit nur einem Satz ist das exakt; bei gemischten Bestellungen – etwa ein Buch zu 7 % und ein Artikel zu 19 % – stimmt die Aufteilung auf den Cent.
Das Lieferland (Shipping Country, ersatzweise Billing Country) entscheidet über die Steuerklasse: Deutschland → 19/7/0 %, Drittland → Ausfuhr 8120, EU-Land → OSS oder Reverse Charge. Details dazu im Beitrag zu OSS-Buchungen aus dem Shop.
Versand, Rabatte, Trinkgeld
Versand folgt der Ware. Die Versandkosten werden anteilig auf die Steuerklassen der Warenpositionen verteilt; bei einer reinen 7 %-Bestellung wird also auch der Versand mit 7 % gebucht, bei gemischten Bestellungen anteilig. Nur wenn die Bestellung keine Ware enthält (z. B. nur Trinkgeld oder nur Gutschein), wird der Versand mit 19 % gebucht. Restcents gehen der größten Klasse zu, damit die Summe immer aufgeht.
Rabatte sind bereits in den Bruttobeträgen enthalten; die Spalte Taxes weist die Steuer auf den rabattierten Nettobetrag aus.
Trinkgeld wird als Differenz zwischen Gesamtbetrag und Zwischensumme plus Versand erkannt und mit 19 % gebucht.
Erstattungen ohne Datum
Die CSV enthält zu Erstattungen nur den Gesamtbetrag (Refunded Amount), weder Datum noch Positionen. Die Erstattung wird deshalb am letzten Tag des Exportmonats gebucht, anteilig über die Steuersätze der Bestellung, als Spiegelung des Verkaufs (Haben statt Soll). Jede solche Buchung trägt einen Hinweis in der Vorschau, damit der Steuerberater entscheiden kann, ob ein anderes Datum nötig ist.
Eine nach Zahlung stornierte Bestellung (Zahlungsstatus refunded) wird wie in der Schnittstelle gebucht und vollständig erstattet. Übersprungen werden nur Bestellungen mit Zahlungsstatus pending, authorized, voided oder expired: Sie haben (noch) keinen Umsatz erzeugt.
Zahlungsgebühren und echte Erstattungsdaten: die Transaktions-CSV (Beta)
Zwei der Lücken des Bestellexports lassen sich seit Kurzem schließen – mit einer zweiten Datei, die Shopify-Payments-Shops ohnehin exportieren können. Im Shopify-Admin unter Finanzen → Auszahlungen → Transaktionen exportieren liegt die Transaktions-CSV: je Zahlung eine Zeile mit Typ (charge, refund, adjustment, payout), Bestellnummer, Betrag, Gebühr und Datum. Kundendaten enthält sie nicht.
Wird sie beim Upload als optionale zweite Datei mitgegeben, passiert dreierlei:
- Zahlungsgebühren werden gebucht – je Bestellung eine Zeile auf das Gebührenkonto (SKR03: 4970, SKR04: 6855) gegen das Geldtransitkonto, zum Bestelldatum.
- Erstattungen bekommen ihr echtes Datum und exakte Teilbeträge, statt der Monatsende-Buchung aus dem Bestellexport. Stimmen die Beträge der beiden Dateien nicht überein, bleibt der Bestellexport maßgeblich und die Vorschau weist darauf hin.
- Auszahlungen werden aufgelistet: jede Auszahlung des Monats steht mit Datum und Betrag als Hinweis in der Vorschau, zum Abhaken gegen den Bankauszug. Gebucht wird sie bewusst nicht – die Buchung Bank an Geldtransitkonto entsteht beim Bankabgleich der Kanzlei und wäre sonst doppelt.
- Auszahlungen werden abgeglichen: die Transaktionen werden nach ihrem Auszahlungsdatum gruppiert; Zahlungen minus Erstattungen minus Gebühren ergibt den erwarteten Betrag, der gegen die tatsächliche Auszahlung steht. Weicht eine Auszahlung des Monats ab, steht die Differenz als Hinweis in der Datei. Was noch nicht ausgezahlt ist, ist der Saldo, der nach dem Bankabgleich auf dem Geldtransitkonto bleiben muss.

Die Funktion ist Beta: geprüft gegen das dokumentierte Format und echte Beispieldateien, aber noch nicht gegen viele Live-Exporte. Wer eine echte Transaktions-CSV einsendet, mit der wir die Funktion bestätigen können, bekommt einen Gratismonat – Details zur Daten-Prämie im Support.
Was der Bestellexport nicht enthält
Diese Punkte fehlen in der Datei, erscheinen als Hinweis je Bestellung in der Vorschau und werden nicht gebucht:
- Zahlungsgebühren von PayPal. Bei Shopify Payments schließt die Transaktions-CSV (Beta, siehe oben) diese Lücke.
- Gutscheineinlösungen. Die Bestellung erscheint mit vollem Bruttobetrag.
- Datum und Positionen einzelner Erstattungen (siehe oben) – mit der Transaktions-CSV entfällt auch das.
- USt-IdNr. des Kunden bei EU-B2B-Lieferungen. Die Buchung landet auf 8336 mit leerem Feld 40; der Steuerberater trägt die USt-IdNr. nach.
Nur Shops mit Basiswährung Euro werden verarbeitet; Bestellungen in anderer Währung werden nicht ungeprüft übernommen.
Werkzeuge dazu, kostenlos im Browser: Bestellexport prüfen zeigt vor dem Konvertieren, welche Steuerfälle und Zahlungsarten in der CSV stecken und was fehlt; Shopify Payments Auszahlungen abgleichen wertet die Transaktions-CSV aus.
Häufige Fragen
Brauche ich eine App im Shopify-Shop? Nein. Der Bestellexport ist eine Standardfunktion des Admins. Es wird keine App installiert und kein Zugriff auf den Shop-Admin erteilt; die CSV wird hochgeladen, im Arbeitsspeicher verarbeitet und nicht gespeichert.
Warum stehen Erstattungen alle am Monatsende? Weil der Bestellexport kein Erstattungsdatum liefert. Das Datum ist in der Vorschau markiert. Bei Shopify Payments genügt die Transaktions-CSV als zweite Datei (Beta) – dann werden Erstattungen zum echten Datum und Gebühren je Bestellung gebucht.
Kann ich andere Erlöskonten als 8400/8300 verwenden? Ja. Die Kontenzuordnung ist je Mandant editierbar, für SKR03 und SKR04. Wer keine Automatikkonten nutzt, muss den BU-Schlüssel beachten – siehe EXTF-Import: typische Fehler.
Laden Sie den Shopify-Bestellexport eines Monats hoch und prüfen Sie den Buchungsstapel in der Vorschau: https://buchungsstapel.de/.