KSeF XML to CSV
The converter turns a ZIP of KSeF FA(3) XML invoices into three CSV tables, for importing into a database, a BI tool or an accounting system. KSeF is Poland's national e-invoicing system.
Have a ZIP of KSeF XML invoices?
Turn it into an Excel workbook and PDFs. Free up to 5 files, nothing uploaded.
Sample files
Sample CSV files (ZIP) Sample workbook (XLSX)
Both are made by the converter from three invented invoices.
Files in the CSV ZIP
| File | Rows | Columns |
|---|---|---|
| invoices.csv | One per invoice | 58 |
| lines.csv | One per invoice line | 36 |
| vat-summary.csv | One per invoice and VAT category | 14 |
| skipped.csv | One per file that was not converted, with the reason (only when there is one) | - |
| README.txt | The format notes below | - |
Format
| Property | Value |
|---|---|
| Encoding | UTF-8 with a byte order mark |
| Separator | Comma |
| Line ending | CR LF |
| Quoting | A value holding a comma, a quote or a line break is wrapped in double quotes; a quote inside is doubled |
| Decimal mark | Point, as in the XML |
| Dates | YYYY-MM-DD, as in the XML |
| Header row | English column names, the same as in the Excel workbook |
| Formula guard | A text cell starting with = + - or @ gets a leading apostrophe unless it is a plain number or date |
The columns are the ones of the workbook: every column and the FA(3) field behind it.
Questions
Why do Polish letters show correctly when I open the CSV in Excel?
Each file starts with a UTF-8 byte order mark, which tells Excel the file is UTF-8.
Why does a cell start with an apostrophe?
A text cell that starts with =, +, - or @ could be run as a formula by a spreadsheet. Such a cell gets a leading apostrophe unless it is a plain number or date, so that it is shown as text.
Are amounts rounded?
No. Each amount is the decimal text written in the XML.
This page describes the files this tool writes. Checked against the tool's own output on 2026-11-10.