Drop a DATEV CSV file (EXTF_…csv) into the box. The tool checks the header, the column headings and every line against DATEV's format description, and tells you in plain words what would fail on import. The file never leaves your browser.
As of 25 September 2026. Based on DATEV's “DATEV-Format” description on developer.datev.de, DATEV's own format checker and the import messages in the DATEV Hilfe-Center.
This check doesn't replace a test import. DATEV releases and import paths (Stapelverarbeitung, Buchungsdatenservice) differ in the details.
The main rules from DATEV's “DATEV-Format” description (format version 13 for Buchungsstapel, 5 for Debitoren/Kreditoren), with the mistake that usually breaks them.
| Field | Rule | Typical mistake |
|---|---|---|
| Line 1 (header) | Starts with "EXTF";700; then format category, name and version, 31 fields in all | Header missing because the file was saved from Excel without its first line |
| Berater / Mandant | Berater 1001 to 9999999, Mandant 1 to 99999, matching the target client | Old number after a change of Steuerberater or fiscal year |
| Sachkontenlänge | 4 to 8, exactly as set for the client | Export writes 4, the client uses 5 |
| Datum vom / bis | YYYYMMDD, within one calendar year and the fiscal year | Batch spanning New Year (#REW04404) |
| Umsatz (amount) | Positive, decimal comma, two decimals, no thousands separator | 12.50 instead of 12,50, or a minus sign instead of H |
| Soll/Haben | S or H, relative to the account | Empty, or + / - |
| Konto / Gegenkonto | Digits only; ledger accounts as long as the account length, customer/supplier accounts one digit longer | Six-digit customer accounts with an account length of 4 |
| BU-Schlüssel (tax key) | One to four digits, quoted, not on automatic accounts | Key 3 on top of automatic account 8400 |
| Belegdatum | DDMM; the year comes from the header | A full date, or 501 instead of 0501 because Excel dropped the zero |
| Belegfeld 1 | At most 36 characters: letters, digits and $ & % * + - / | Invoice number with a space, dot or underscore |
| Buchungstext | At most 60 characters, quoted | An unquoted semicolon in the text shifts every field after it |
| Encoding | Windows-1252 (ANSI); UTF-8 only with a BOM | “Bürobedarf” arrives as “Bürobedarf” |
| Debitoren/Kreditoren | Account exactly one digit longer than the account length, addressee type 0/1/2, valid IBAN | Name in the company column while the addressee type says person |
The tool knows the format rules, not your client file in DATEV. These errors only show up on import:
Building DATEV exports yourself? The same rules come as an open-source library for TypeScript and JavaScript. It validates files, writes Buchungsstapel and returns the messages in German and English. MIT licence, no dependencies. @seamless-engineering/datev-extf on npm →
Your DATEV export breaks on something different every month? We build and operate the integration that creates batches, checks them and only hands them to your Steuerberater once they go through. Fixed-price scoping quote within 48 hours.