Designed for finance exports
The parser recognises date, description, amount, debit/credit, memo, category, and transaction id fields, including headers like Narration or Withdrawal Amt. used by many banks.
Finance file converter
Read a DATEV EXTF booking batch and write its postings as CSV with ISO dates. Upload a file or paste its contents, check the parsed transactions, then download the CSV file.
1 · Source
2 · Result
Nothing converted yet
A sample DATEV file is loaded — press “Convert to CSV” to see how the output looks.
The parser recognises date, description, amount, debit/credit, memo, category, and transaction id fields, including headers like Narration or Withdrawal Amt. used by many banks.
Each conversion shows the parsed transactions with money in, money out, and date range, plus warnings about ambiguous dates or missing account details.
PDFs and text files are read by your browser and never sent to a server. Close the tab and the data is gone.
DATEV is the accounting software and data-exchange system most German tax advisers and businesses use. Its booking batch export, the Buchungsstapel in EXTF format, is a semicolon-separated file with a metadata header, a column-name row and one line per posting. It is built for DATEV’s import rules, with decimal commas, DDMM booking dates and account numbers, so it is hard to read in a spreadsheet without first cleaning it.
This DATEV Buchungsstapel to CSV Converter reads an EXTF booking batch and writes its postings as CSV with ISO dates, signed amounts and readable columns. The fiscal-year start in the header is used to give each DDMM date the correct year, and the booking text becomes the description. The file is read in your browser and is not uploaded.
The first line of the file is the EXTF header. Its thirteenth field holds the fiscal-year start as YYYYMMDD, and the converter uses it to assign years. The second line holds the column names, and the postings follow. The main columns are the amount (Umsatz) with its S or H marker, the account (Konto), the offset account (Gegenkonto), the booking date (Belegdatum) as DDMM or DDMMYYYY, the document number (Belegfeld 1) and the booking text (Buchungstext).
A booking dated 0305 in a fiscal year that starts on 1 January is 3 May of that year. In a fiscal year starting 1 October, the same date falls in the following calendar year, because the converter compares the month with the fiscal-year start month.
The converter parses the file as semicolon-separated values with quoted fields. It reads the header line to find the fiscal-year start and skips the column-name line before reading the postings.
For each posting the date is built from the booking date and the year, the amount is signed by S or H, and the booking text is used as the description. If the booking text is empty, the offset account stands in as the description.
EXTF postings (trimmed)
"EXTF";700;21;"Buchungsstapel";13;20260501120000000;;"RE";"Example";;1001;2001;20260101;4;...
"Umsatz (ohne Soll/Haben-Kz)";"Soll/Haben-Kennzeichen";...;"Konto";"Gegenkonto (ohne BU-Schlüssel)";...;"Belegdatum";"Belegfeld 1";...;"Buchungstext"
39,99;"S";"EUR";;;;"4900";"1200";;"0305";"1001";;;"Cloud hosting"
2400,00;"H";"EUR";;;;"8400";"1200";;"0605";"1002";;;"Client payment"CSV
date,description,amount,memo,category,id,type
2026-05-03,Cloud hosting,-39.99,Account 4900,1200,1001,
2026-05-06,Client payment,2400.00,Account 8400,1200,1002,Reading the amount sign as a bank view. The converter shows S (Soll, debit) as a negative amount and H (Haben, credit) as positive, whichever account the line posts to. A debit to an expense account is therefore negative, and a debit to the bank account is also negative, which is the opposite of the bank’s own sign. Check the signs against your chart of accounts before you total anything.
Garbled umlauts. The converter reads the file as UTF-8. If names with ä, ö or ü appear as broken characters, the export is probably in another encoding. Save it as UTF-8 in a text editor and convert again.
Treating this as a bank statement. A Buchungsstapel is a set of postings in the ledger, not a bank statement. Balances and bank-side references are not in it.
Expecting every EXTF file to convert. The converter reads the Buchungsstapel layout. Other EXTF categories, such as account lists or payment lists, have different columns and are not supported.
Why does the converter need the fiscal-year start?
DATEV booking dates in a Buchungsstapel have no year. The header gives the fiscal-year start, and the converter uses it so a booking in January of a year that starts in October lands in the right calendar year.
Can I import the CSV back into DATEV?
This converter is for review, not for re-import. DATEV’s import needs its own EXTF layout, so change the batch in DATEV itself or ask your adviser before you re-import anything.
For more background on data formats and conversion workflows, read our format guides.