Zum Inhalt springen
Ratgeber

DATEV Buchungsstapel: Aufbau, Kopfzeile und Importfehler

von Daniel Stoll /
Ausschnitt einer CSV-Datei mit EXTF-Kopfzeile und Buchungszeilen in einem Texteditor

Ein DATEV Buchungsstapel ist eine CSV-Datei mit festem Aufbau: eine Kopfzeile mit Metadaten, eine Zeile mit Spaltenüberschriften, darunter die Buchungen. Wer Buchungsdaten aus einem CRM oder einem Rechnungsprogramm per Datei an die Steuerkanzlei gibt, muss diesen Aufbau genau treffen. Kleine Abweichungen bei Zeichensatz, Kontonummernlänge oder Datumsformat genügen, damit die Datei nicht zum Mandanten passt oder Belegdaten dem falschen Jahr zugeordnet werden. Dieser Ratgeber erklärt die Kopfzeile Feld für Feld, zeigt die Felder, die jede Buchung inhaltlich braucht, und leitet aus den offiziellen Formatregeln die typischen Fehlerbilder ab. Die Formatregeln stammen aus der Formatbeschreibung im DATEV Developer Portal, nicht aus Forenbeiträgen oder Konverter-Anleitungen.

Was ist ein DATEV Buchungsstapel?

Der Buchungsstapel ist ein Format innerhalb des sogenannten DATEV-Formats. Laut der Einführung in das DATEV-Format handelt es sich um eine CSV-Datei mit dem festen Dateinamens-Präfix EXTF_ und einem festen Satzaufbau: Zeile 1 ist die Kopfzeile, Zeile 2 die Überschriftszeile, ab Zeile 3 folgen die Nutzdaten. Dasselbe Grundgerüst gilt für weitere Formate wie Stammdaten; welches Format eine Datei enthält, legt die Kopfzeile fest.

Das Kürzel EXTF steht für den Export aus einem Fremdprogramm. Die Datei kommt also aus einer Drittanbieter-Anwendung. Exportiert DATEV selbst, steht dort DTVF. Für Ihr CRM oder Ihre Faktura ist deshalb immer EXTF richtig.

Wichtig ist die Abgrenzung zu anderen Wegen. Der Buchungsstapel transportiert fertige Buchungssätze, also bereits kontierte Vorgänge mit Konto, Gegenkonto und Betrag. Er eignet sich, wenn Sie selbst kontieren oder Ihr Programm das zuverlässig vorbereitet. Sollen dagegen nur Rechnungsbelege bei der Kanzlei ankommen, die dort gebucht werden, ist der Belegweg passender. Die Unterschiede beider Wege beschreibt unser Überblick zur DATEV-Schnittstelle für Fremdsysteme, den Belegweg im Detail der Artikel zur DATEV-XML-Schnittstelle.

Wie ist die Kopfzeile aufgebaut?

Die Kopfzeile umfasst 31 Felder, und ihr Aufbau muss laut DATEV-Beschreibung des Headers zwingend eingehalten werden. Die ersten fünf Felder bestimmen, um welche Datei es sich handelt: Feld 1 ist das Kennzeichen EXTF, Feld 2 die Versionsnummer 700, Feld 3 die Formatkategorie 21 für den Buchungsstapel, Feld 4 der Formatname und Feld 5 die Formatversion 13.

So sieht die Kopfzeile der DATEV-Musterdatei aus:

"EXTF";700;21;"Buchungsstapel";13;20240130140440439;;"RE";"";"";29098;55003;20240101;4;20240101;20240831;"Buchungsstapel";"WD";1;0;0;"EUR";;"";;;"03";;;"";""

Die 31 Felder sind durch 30 Semikolons getrennt; leere Felder erkennen Sie an zwei aufeinanderfolgenden Semikolons. Neben dem Formatkennzeichen stehen darin Angaben wie Berater- und Mandantennummer, die festlegen, für wen der Stapel bestimmt ist. Vier Felder verdienen bei der Anbindung eines Fremdsystems besondere Aufmerksamkeit.

Feld 13 ist der Beginn des Wirtschaftsjahres, in der Musterdatei der 1. Januar 2024 (20240101). Aus diesem Feld ermittelt DATEV das Jahr jeder Buchung, denn das Belegdatum in den Buchungszeilen enthält kein Jahr. Feld 14 ist die Sachkontenlänge, in der Musterdatei 4. Zulässig sind 4 bis 8 Stellen, und der Wert muss beim Import mit der Konfiguration des Mandats in der DATEV-App übereinstimmen. Die Felder 15 und 16 („Datum von“ und „Datum bis“) geben Beginn und Ende der Periode des Stapels im Format JJJJMMTT an, in der Musterdatei der 1. Januar bis 31. August 2024 (20240101 und 20240831). Feld 21 steuert die Festschreibung; der Standardwert ist 1, die Musterdatei setzt hier 0.

Welche Felder braucht jede Buchung?

Inhaltlich ergibt eine Buchungszeile erst mit fünf Angaben einen Buchungssatz: Umsatz, Soll-/Haben-Kennzeichen, Konto, Gegenkonto und Belegdatum. Die Feldbeschreibung des Buchungsstapels legt für diese und alle weiteren Felder Format und Länge fest. Weitere Felder haben eigene Regeln, sobald Sie sie füllen, und mindestens eines wirkt sogar, wenn Sie es leer lassen: Ein leeres Feld 114 (Festschreibung) bedeutet automatische Festschreibung. Mehr dazu im Abschnitt zur ungewollten Festschreibung weiter unten.

Feld Inhalt Regel laut DATEV
1 Umsatz Betrag der Buchung positiv, nicht 0,00, zwei Nachkommastellen mit Komma (z. B. 1234567890,12)
2 Soll/Haben Kennzeichen S oder H bezieht sich auf Feld 7 (Konto), S ist Standard
7 Konto / 8 Gegenkonto Kontonummern Personenkonten dürfen nur 1 Stelle länger sein als die Sachkontenlänge
10 Belegdatum Tag und Monat Format TTMM (z. B. 0105), Jahr aus Feld 13 der Kopfzeile
11 Belegfeld 1 Rechnungs- oder Belegnummer höchstens 36 Zeichen, nur bestimmte Sonderzeichen
14 Buchungstext Beschreibung 0 bis 60 Zeichen
114 Festschreibung Kennzeichen leer = automatisch festgeschrieben

Der Umsatz hat kein Vorzeichen. Ob eine Buchung im Soll oder Haben steht, regelt das Kennzeichen in Feld 2, und es bezieht sich immer auf das Konto in Feld 7, nicht auf das Gegenkonto. Gerade Systeme, die intern mit negativen Beträgen für Gutschriften arbeiten, müssen hier umrechnen: Betrag als positiven Wert schreiben, Richtung über das Kennzeichen abbilden. Daneben kennt DATEV das Feld 118 Generalumkehr: Mit G oder 1 wird eine Buchung umgekehrt. Ob Ihr Export dieses Feld nutzen soll, klären Sie mit der Kanzlei.

Das Belegfeld 1 ist mehr als ein Freitext. Es dient als Schlüssel für den Ausgleich offener Posten, also für die Zuordnung von Zahlungen zu Rechnungen. Deshalb sind die Regeln hier streng: erlaubt sind nur die Sonderzeichen $ & % * + - /, unzulässig sind unter anderem Leerzeichen, Umlaute, Punkt, Komma, Semikolon und Doppelpunkt.

Ein Sonderfall ist das Leistungsdatum in Feld 115 (Format TTMMJJJJ). DATEV erlaubt es nur zusammen mit Feld 116, der Zuordnung zur Steuerperiode, und nur in Absprache mit dem Steuerberater. Füllen Sie diese Felder also nicht auf eigene Faust.

Welche technischen Regeln gelten für die CSV-Datei?

Neben den Feldinhalten gibt DATEV die Schreibweise der Datei selbst vor. Laut der oben verlinkten Einführung in das DATEV-Format gilt:

  • Felder werden durch Semikolon getrennt, jede Zeile endet mit CR/LF.
  • Textfelder stehen in Anführungszeichen; enthaltene Anführungszeichen werden verdoppelt.
  • Textfelder dürfen keine Steuerzeichen wie Zeilenumbrüche enthalten.
  • Dezimaltrennzeichen ist das Komma (99,99), Tausenderpunkte werden in der Regel nicht verwendet.

Beim Zeichensatz ist der Standard ISO-8859-1 beziehungsweise CodePage 1252. DATEV Rechnungswesen kann laut der DATEV-Seite zum Zeichensatz auch Unicode lesen, also UTF-8, UTF-16 und UTF-32, aber nur, wenn die Datei eine Byte Order Mark (BOM) mitbringt. Das gilt ausdrücklich auch für UTF-8. Prüfen Sie deshalb, ob Ihre Exportroutine die BOM tatsächlich schreibt. Zusätzlich unterstützt die Konsolen-App KrStaPv kein Unicode; Unicode funktioniert nur beim manuellen Import oder über den Online-Weg.

Für den Umfang gibt es zwei Vorgaben. Ein Buchungsstapel fasst laut DATEV-Formatbeschreibung höchstens 99.999 Buchungen. Außerdem empfiehlt DATEV, pro Buchungsperiode eine eigene Datei zu erstellen, damit jede Periode einzeln verarbeitet werden kann.

Welche Fehler folgen aus den Formatregeln?

Viele Probleme mit einem DATEV Buchungsstapel lassen sich direkt aus den Formatregeln ableiten. Die folgenden Fehlerbilder beschreiben, welche Regel das Fremdsystem verletzt und was daraus folgt. Welche Meldung im Einzelfall erscheint, beschreiben wir bewusst nicht; entscheidend ist die Ursache.

Sachkontenlänge passt nicht zum Mandanten

Der Wert in Feld 14 muss mit der Konfiguration des Mandats in DATEV übereinstimmen. Schreibt Ihr System pauschal 4, die Kanzlei führt den Mandanten aber mit einer anderen Länge, erfüllt die Datei diese Vorgabe nicht. Fragen Sie die Sachkontenlänge bei der Kanzlei ab, statt sie anzunehmen. Daran hängen auch die Personenkonten, denn sie dürfen laut DATEV nur 1 Stelle länger sein als die Sachkontenlänge.

Umlaute ohne Byte Order Mark

Schreibt Ihr System UTF-8 ohne BOM, ist die Bedingung nicht erfüllt, unter der DATEV Rechnungswesen Unicode liest. Entweder Sie liefern die BOM mit, oder Sie schreiben die Datei direkt in ISO-8859-1 bzw. CodePage 1252. Für den automatisierten Import über KrStaPv bleibt nur ISO-8859-1 bzw. CodePage 1252, weil diese App kein Unicode unterstützt.

Beträge von 0,00 oder mit Vorzeichen

Ein Umsatz von 0,00 ist unzulässig, ebenso ein negativer Betrag. Nullbeträge entstehen etwa bei kostenlosen Positionen oder vollständig rabattierten Rechnungen. Filtern Sie diese in Absprache mit der Kanzlei vor dem Export heraus. Prüfen Sie auch das Zahlenformat: Ein Punkt als Dezimaltrenner oder Tausenderpunkte entsprechen nicht der Vorgabe.

Buchungen im falschen Jahr

Das Belegdatum hat nur Tag und Monat, und DATEV ermittelt das Jahr laut Formatbeschreibung immer aus Feld 13 der Kopfzeile. Daraus folgt: Steht dort der Beginn des falschen Wirtschaftsjahres, werden die Belegdaten der Datei dem falschen Jahr zugeordnet. Ihr Export muss Feld 13 deshalb aus dem Wirtschaftsjahr der Buchungen ableiten, nicht aus dem Exportdatum. Ebenso sollten die Felder 15 und 16 genau die Periode beschreiben, aus der die Buchungen der Datei stammen. Eine Datei pro Buchungsperiode, wie DATEV sie empfiehlt, macht beides einfacher. Ändert sich das Wirtschaftsjahr des Mandanten, stimmen Sie den Wert erneut mit der Kanzlei ab.

Unzulässige Zeichen im Belegfeld 1

Rechnungsnummern wie „RE 2024.001“ enthalten Leerzeichen und Punkt, beides ist im Belegfeld 1 unzulässig. Ihr Export muss die Nummer bereinigen, ohne dass die Zuordnung zu Zahlungen verloren geht. Achten Sie zusätzlich auf die Grenze von 36 Zeichen.

Ungewollte Festschreibung

Hat auch nur ein Buchungssatz in Feld 114 eine 1, wird der gesamte Stapel nach dem Import festgeschrieben. Ein leeres Feld bedeutet ebenfalls automatische Festschreibung. In der Kopfzeile steht die Festschreibung standardmäßig auf 1. Stimmen Sie mit der Kanzlei ab, welchen Wert sie erwartet.

Zu viele Buchungen in einer Datei

Mehr als 99.999 Buchungen passen nicht in einen Stapel. Bei großen Datenmengen teilen Sie den Export auf mehrere Dateien auf, sinnvollerweise entlang der Buchungsperioden.

Wie kommt der Buchungsstapel in DATEV, und wie wieder heraus?

Für den Import ins DATEV Rechnungswesen nennt die DATEV-Seite zu Import und Export drei Wege: lokal und manuell über die Stapelverarbeitung, lokal und automatisiert über die Konsolen-App KrStaPv.exe sowie über das DATEV-Rechenzentrum mit der Online-API accounting:extf-files. Hinter dem dritten Weg steht der Buchungsdatenservice.

Die Wege unterscheiden sich vor allem bei Kosten und Aufwand. Eine Datei im DATEV-Format einzulesen, kostet auf DATEV-Seite keine eigene Gebühr; der Buchungsdatenservice über das Rechenzentrum kostet dagegen jeden Monat eine Gebühr. Wer eine DATEV-Online-Schnittstelle selbst einbindet, braucht außerdem ein Onboarding durch DATEV, auch für den Eigenbedarf. Das erste Onboarding kostet 1.500 € zuzüglich Umsatzsteuer, verlangt ein DATEV-Testsystem und endet mit einer Abnahme durch DATEV. Wie die Online-Schnittstellen von DATEV zusammenhängen und wo die lokale Schnittstelle einzuordnen ist, beschreibt der Artikel DATEVconnect erklärt.

Beim Dateiweg ist der Ablauf schlicht: Ihr System erzeugt die Datei, Sie geben sie an die Kanzlei, und die Kanzlei liest sie über den Stapelimport ein. Wie eine Buchhaltungssoftware Daten an DATEV übergibt, beschreibt unser Beitrag zu Lexware und DATEV.

Wer nach „Buchungsstapel exportieren DATEV“ sucht, meint manchmal die Gegenrichtung. Auch DATEV Rechnungswesen exportiert im DATEV-Format, manuell über Export > DATEV-Format oder automatisiert über die Konsolen-App KRExport.exe. Solche Dateien tragen in der Kopfzeile das Kennzeichen DTVF statt EXTF. Für Entwickler sind sie nützlich, weil sie zeigen, wie die Kanzlei ihre Daten tatsächlich aufgebaut hat.

Wie prüfen Sie die Datei vor dem Versand?

DATEV stellt ein eigenes Prüfprogramm DATEV-Format bereit, mit dem Sie Dateien im DATEV-Format vor der Übergabe prüfen. Sie finden es auf der Tools-Seite des DATEV Developer Portals. Das Programm ersetzt nicht die Abstimmung mit der Kanzlei, findet aber Formatfehler, bevor die Datei dort ankommt.

Vor dem ersten produktiven Export lohnt eine kurze Abstimmung mit der Kanzlei zu diesen Punkten:

  1. Sachkontenlänge und Kontenrahmen des Mandanten
  2. Beginn des Wirtschaftsjahres für Feld 13 und Periode für die Felder 15 und 16
  3. gewünschte Festschreibung (Kopfzeile und Feld 114)
  4. Zeichensatz und Importweg: Stapelverarbeitung oder KrStaPv für die Datei, Buchungsdatenservice mit monatlicher Gebühr für den Online-Weg, dazu ein Onboarding, wenn Sie die Schnittstelle selbst einbinden
  5. Zuschnitt der Dateien, idealerweise eine Datei pro Buchungsperiode

Exportieren Sie anschließend einen kleinen Testmonat, lassen Sie ihn durch das Prüfprogramm laufen und von der Kanzlei probeweise einlesen. Erst danach lohnt die Automatisierung.

Was bedeutet das für die Anbindung von CRM und Faktura?

Ein DATEV Buchungsstapel ist ein passender Weg, wenn Ihr System fertige Buchungssätze liefern kann. Das setzt voraus, dass Konten, Gegenkonten und Steuerlogik im Fremdsystem sauber hinterlegt sind. Ein CRM kennt in der Regel Deals, Kunden und Beträge, aber keine Kontierung. Wer daraus einen Buchungsstapel erzeugt, baut faktisch einen Teil der Buchhaltung nach und trägt die Verantwortung für die Kontierung.

Für fertige Buchungen gibt es mehrere Wege zu DATEV: die Datei im DATEV-Format, den Buchungsdatenservice über das Rechenzentrum oder lokal DATEVconnect, das Buchungen ebenfalls als Buchungsstapel schreibt. DATEVconnect setzt allerdings voraus, dass Ihre Software im selben Netzwerk wie die DATEV-Installation läuft; für ein CRM aus der Cloud fällt dieser Weg deshalb aus. Ein weiterer Weg führt über ein Buchhaltungsprogramm: Das CRM liefert die Verkaufsdaten, die Buchhaltungssoftware macht daraus Rechnungen und übergibt an DATEV. Wie diese Kette am Beispiel Pipedrive aussieht, beschreibt unser Artikel Pipedrive mit Buchhaltung und DATEV verbinden.

Für Pipedrive entwickeln wir einen DATEV Connector. Er ist noch nicht verfügbar, frühestens 2027, und soll gewonnene Deals als Rechnungsbeleg an DATEV Unternehmen online übergeben. Einen Buchungsstapel erzeugt er nicht. Den geplanten Umfang beschreibt die Dokumentation des DATEV Connectors.

Fazit

Der DATEV Buchungsstapel ist kein beliebiges CSV, sondern ein streng definiertes Format: 31 Felder in der Kopfzeile, fünf Angaben, die jede Buchung inhaltlich braucht, feste Regeln für Zeichensatz, Zahlenformat und Belegnummer. Die Stolpersteine bei der Anbindung eines Fremdsystems lassen sich aus diesen Regeln vorhersehen: falsche Sachkontenlänge, UTF-8 ohne BOM, Nullbeträge, das Jahr aus der Kopfzeile, unzulässige Zeichen im Belegfeld 1 und eine ungewollte Festschreibung. Halten Sie sich an die Formatbeschreibung im DATEV Developer Portal, stimmen Sie Sachkontenlänge, Wirtschaftsjahr, Festschreibung und Importweg vorab mit der Kanzlei ab und prüfen Sie jede neue Exportlogik mit dem Prüfprogramm und einem Testmonat, bevor Sie automatisieren.