CRM-Buchhaltung

DATEV-Buchungsstapel im EXTF-Format: Aufbau und typische Importfehler

Ein DATEV-Buchungsstapel im EXTF-Format ist eine Textdatei mit Semikolon als Trennzeichen, im Zeichensatz Windows-1252 und mit dem Zeilenende CR LF. Zeile 1 ist der Dateikopf mit 31 Feldern (Kennung „EXTF“, Version 700, Datenkategorie 21, Formatname „Buchungsstapel“, Formatversion 13), Zeile 2 nennt die 125 Spaltenüberschriften, und ab Zeile 3 steht je Buchung eine Zeile mit 125 Feldern. Texte stehen in doppelten Anführungszeichen, Beträge mit Dezimalkomma.

Stand: . Diese Seite beschreibt das Format so, wie CRM-Buchhaltung es schreibt: nach der DATEV-Schnittstellenbeschreibung für das EXTF-Format und der quelloffenen Bibliothek ledermann/datev. Sie ist keine Dokumentation der DATEV eG, und der Import einer so erzeugten Datei ist noch nicht durch eine Kanzlei bestätigt.

Aufbau der Datei

ZeileInhalt
1Der Dateikopf: 31 Felder, beginnend mit „EXTF“, Version 700, Datenkategorie 21 und Formatname „Buchungsstapel“.
2Die Überschriften der 125 Spalten einer Buchungszeile, in der Reihenfolge, die DATEV festlegt.
ab 3Eine Buchung je Zeile, 125 Felder. Nicht belegte Felder bleiben leer, die Semikolons zwischen ihnen stehen trotzdem.

Der Dateikopf (Zeile 1)

FeldInhalt
1 DATEV-Format-KZ„EXTF“
2 Versionsnummer700
3 Datenkategorie21 für einen Buchungsstapel (16 für Debitoren/Kreditoren-Stammdaten)
4 Formatname„Buchungsstapel“
5 Formatversion13
6 Erzeugt amZeitstempel JJJJMMTTHHMMSS plus drei Stellen Millisekunden, 17 Ziffern ohne Anführungszeichen
7 und 10„Importiert“ und „Importiert von“ bleiben leer; sie füllt DATEV beim Import.
11 und 12Beraternummer und Mandantennummer
13 WJ-BeginnBeginn des Wirtschaftsjahres als JJJJMMTT
14 SachkontenlängeStellenzahl der Sachkonten, zum Beispiel 4
15 und 16Zeitraum der Buchungen (Datum vom, Datum bis) als JJJJMMTT
17 BezeichnungName des Stapels, höchstens 30 Zeichen
19 Buchungstyp1 für Finanzbuchführung
21 Festschreibung0 (nicht festgeschrieben) oder 1
22 WKZWährung des Stapels, zum Beispiel EUR
27 SKRKontenrahmen zweistellig: „03“ oder „04“, nicht „SKR03“

Die Buchungszeile (ab Zeile 3)

FeldInhalt
1 UmsatzBetrag ohne Vorzeichen, zwei Nachkommastellen, Dezimalkomma, kein Tausenderpunkt: 1234,50
2 Soll/Haben-Kennzeichen„S“ oder „H“. Es bestimmt die Richtung der Buchung, nicht das Vorzeichen des Betrags.
3 bis 6WKZ Umsatz, Kurs, Basis-Umsatz, WKZ Basis-Umsatz: nur für Buchungen in fremder Währung
7 KontoKontonummer, links mit Nullen auf die Sachkontenlänge aufgefüllt
8 GegenkontoGegenkonto ohne BU-Schlüssel; es muss sich vom Konto unterscheiden.
9 BU-SchlüsselSteuerschlüssel, höchstens vier Ziffern, oder leer
10 BelegdatumTTMM, vierstellig, ohne Jahr: 0503 für den 5. März
11 Belegfeld 1Belegnummer oder Referenz, höchstens 36 Zeichen
14 Buchungstexthöchstens 60 Zeichen
37 und 38KOST1 und KOST2, Kostenstellen, je höchstens 36 Zeichen

Typische Gründe, warum ein Import scheitert

Die folgenden Punkte ergeben sich aus dem Format selbst, nicht aus einer Auswertung von Importprotokollen. Jeder ist eine Stelle, an der eine selbst gebaute Exportdatei leicht vom Format abweicht.

  1. UTF-8 statt Windows-1252. Umlaute erscheinen nach dem Import als fremde Zeichen. Zeichen, die Windows-1252 nicht kennt, müssen vor dem Schreiben ersetzt werden.
  2. Dezimalpunkt oder Tausenderpunkt im Betrag. Das Format erwartet 1234,50, nicht 1234.50 und nicht 1.234,50.
  3. Vorzeichen im Umsatz. Ein Minus gehört nicht in das Umsatzfeld; die Richtung steht im Soll/Haben-Kennzeichen.
  4. Belegdatum mit Jahr oder ohne führende Null. Erwartet sind vier Ziffern TTMM. Das Jahr kommt aus dem Zeitraum im Dateikopf, deshalb darf ein Stapel kein Wirtschaftsjahr überschreiten.
  5. Kontonummer passt nicht zur Sachkontenlänge. Sachkonten haben genau so viele Stellen wie im Dateikopf angegeben, Personenkonten (Debitoren, Kreditoren) eine mehr. Eine zu kurze Nummer wird links mit Nullen aufgefüllt und bezeichnet dann ein anderes Konto: Aus 840 wird bei Sachkontenlänge 4 das Konto 0840.
  6. Zeilenumbruch oder Anführungszeichen im Text. Ein Zeilenumbruch in einem Buchungstext beendet für den Import die Zeile. Ein Anführungszeichen innerhalb eines Textes wird verdoppelt.
  7. Zu lange Texte. Buchungstext 60 Zeichen, Belegfeld 1 36 Zeichen, Bezeichnung im Dateikopf 30 Zeichen.
  8. Abweichender Dateikopf. Eine falsche Kennung, Version oder Datenkategorie, oder der Kontenrahmen als „SKR03“ statt „03“.
  9. Konto gleich Gegenkonto. Eine Buchung von einem Konto auf dasselbe Konto ist keine Buchung.

Wie CRM-Buchhaltung das umsetzt

CRM-Buchhaltung schreibt jedes Byte der Datei über einen einzigen Windows-1252-Kodierer, nimmt nur Kontonummern an, die zur eingetragenen Sachkontenlänge passen, und lässt keine Zeile in die Datei, bei der Konto und Gegenkonto gleich sind, der Betrag nicht positiv ist oder der BU-Schlüssel mehr als vier Ziffern hat. Was in einer Datei aus HubSpot- oder Pipedrive-Deals steht, beschreibt die Seite für Steuerkanzleien; wie die App aus gewonnenen Deals einen Buchungsstapel macht, die Seiten zu HubSpot und Pipedrive. Die App berät nicht steuerlich: Konten und Steuerschlüssel legt der Nutzer mit seiner Kanzlei fest.

Häufige Fragen

Was bedeutet EXTF?
EXTF ist der Wert im ersten Feld des Dateikopfs. Er kennzeichnet eine Datei im DATEV-Format, die ein anderes Programm als DATEV erzeugt hat, etwa eine Buchhaltungs- oder CRM-Anwendung.
Welchen Zeichensatz braucht ein DATEV-Buchungsstapel?
Windows-1252 (auch CP1252 genannt), nicht UTF-8. Zeichen, die Windows-1252 nicht kennt, etwa Emojis, müssen vor dem Schreiben ersetzt werden; CRM-Buchhaltung setzt dafür ein Leerzeichen.
Warum hat das Belegdatum kein Jahr?
Das Belegdatum steht vierstellig als TTMM, zum Beispiel 0503 für den 5. März. Das Jahr ergibt sich aus dem Zeitraum im Dateikopf. Deshalb liegt ein Buchungsstapel immer innerhalb eines Wirtschaftsjahres.
Kann ich einen Buchungsstapel in Excel öffnen und wieder speichern?
Ansehen ja, wieder speichern besser nicht. Excel kann beim Speichern den Zeichensatz ändern, führende Nullen entfernen (aus dem Belegdatum 0503 wird 503) und Beträge oder Kontonummern umformatieren.
Kann ein Buchungsstapel Beträge in Fremdwährung enthalten?
Das Format hat dafür eigene Felder (WKZ Umsatz, Kurs, Basis-Umsatz, WKZ Basis-Umsatz). CRM-Buchhaltung lässt sie leer: Ein Deal in fremder Währung wird zu der Kursquelle, die der Nutzer gewählt hat, in Euro umgerechnet, und nur der Euro-Betrag steht in der Datei.