KSeF XML to Excel and English PDF, in bulk
Drop a ZIP of FA(3) XML files, the invoice format of KSeF (Poland's national e-invoicing system). Get one workbook and a PDF for each invoice.
Drop a ZIP of FA(3) XML files (up to 1,000)
Loose .xml files work too.
Invoices are converted in your browser. Nothing is uploaded.Free up to 5 files
Result
First rows of the Invoices sheet.
What is in the workbook
One row per invoice on the first sheet and one row per invoice line on the second. Column names are English; the Polish term from the invoice sits above each one here and on the Fields sheet.
Sheet "Invoices" (header sheet)
| Numer KSeFKSeF number | Numer fakturyInvoice number | Data wystawieniaIssue date | SprzedawcaSeller name | NabywcaBuyer name | Kod walutyCurrency | Suma nettoNet total | Suma podatkuVAT total | Kwota należności ogółemGross total |
|---|---|---|---|---|---|---|---|---|
| 5251000201202603040100001AF62985 | FV/2026/03/0142 | 2026-03-04 | Przykład Logistyka sp. z o.o. | Zakłady "Wzór & Spółka" S.A. | PLN | 19650.40 | 4339.53 | 23989.93 |
| EXP/5/2026 | 2026-03-15 | Przykład Logistyka sp. z o.o. | Bluewater Route Analytics, Inc. | USD | 7300.00 | 7300.00 | ||
| 52510002012026030902000000C3D445 | WDT/0031/03/2026 | 2026-03-09 | Przykład Logistyka sp. z o.o. | Beispiel Maschinenbau GmbH | EUR | 48210.75 | 48210.75 |
Sheet "Lines" (line-item sheet)
| Numer fakturyInvoice number | Lp.Line no. | Nazwa towaru lub usługiDescription | MiaraUnit | IlośćQuantity | Cena jedn. nettoUnit price net | Wartość nettoNet value | Stawka podatkuVAT rate code |
|---|---|---|---|---|---|---|---|
| FV/2026/03/0142 | 1 | Transport krajowy, trasa Warszawa–Gdańsk, zestaw 24 t | kurs | 3 | 4150.00 | 12450.00 | 23 |
| FV/2026/03/0142 | 2 | Magazynowanie palet, luty 2026; "strefa A", 20% zajętości | paleta/dzień | 1500.5 | 3.99866711 | 6000.00 | 23 |
| FV/2026/03/0142 | 3 | Przewóz osób - bilety zbiorcze | szt. | 40 | 30.01 | 1200.40 | 8 |
| EXP/5/2026 | 1 | Consulting: route optimisation; phase 2 | h | 73 | 100 | 7300.00 | np II |
| WDT/0031/03/2026 | 1 | Łożysko toczne 6204-2RS <partia 7/A> & smar | szt. | 12500 | 3.85686 | 48210.75 | 0 WDT |
See every column and the FA(3) field behind it
What the PDF looks like

Each PDF is drawn by the open-source generator the Polish Ministry of Finance publishes for KSeF (version 1.1.48, 2026-11-06, MIT licence). The layout is used unmodified. CIRFMF/ksef-pdf-generator
Every page is stamped "Visualisation - not an invoice". The invoice itself is the XML held in KSeF; the PDF is a readable picture of it.
The official generator ships Polish labels only; its English file contains placeholders (checked 2026-11-10). The English labels are therefore our own translation. Values are printed as in the XML; characters the PDF font has no glyph for (Chinese, Hebrew, Arabic, emoji and similar) are flagged, not silently dropped. Dates are the calendar dates of the XML on any computer, whatever its time zone; a value that is not a valid date is printed as written and marked "check", never turned into a date. Pick "Polish" above for the official wording.
Where the KSeF number is known, the PDF carries the KSeF verification QR code and link.
How the English PDF is made, and what the tax office says about translated visualisations
Price
Free during launch: larger batches are not charged yet. The button on the result says so before you click.
What it checks, and what it does not
- Each file is well-formed XML with the FA (3) form code. Other files are listed as skipped with the reason; the batch carries on.
- Amounts go into the workbook exactly as written in the XML. Sums use exact decimal arithmetic; if an amount is not a decimal number, the total stays empty and the Notes column names the field.
- A KSeF number is accepted only from
_metadata.json(matched by the file's SHA-256 hash) or from a file name whose number passes the CRC-8 checksum and starts with the seller's NIP. A number that the invoice itself gives for the invoice it corrects, or that two files share, is not used. An FA(3) file does not contain its own KSeF number. - It does not validate against the full XSD schema and does not check that an invoice exists in KSeF. Use the verification link in the workbook for that.
Questions
Are my invoices uploaded anywhere?
No. The files are read by code running in this browser tab. The only thing sent to our server is an anonymous count (for example "37 files converted"), with no file names, numbers or amounts.
Is the PDF an invoice?
No. In KSeF the invoice is the structured XML file. The PDF is a visualisation and every page says so.
Can a KSeF invoice visualisation be in English?
The Ministry of Finance's KSeF questions and answers say a visualisation may be in another language, as long as it matches the content of the XML sent to KSeF once translated (read 2026-11-10). Official Q&A (Polish).
Where does the KSeF number in the workbook come from?
From _metadata.json when the ZIP is a KSeF export package, matched to each file by its SHA-256 hash. Otherwise from the file name, if it contains a number with a valid checksum. If neither is available the cell stays empty.
Which files does it read?
FA (3) invoices. FA (2), FA_RR, PEF and UPO files are skipped and listed by name with the reason.
How do I get a ZIP of XML files out of KSeF?
Programs connected to KSeF can download invoices as XML, and the KSeF API export returns a ZIP of XML files with a _metadata.json list. We have not verified the exact menu steps in each program, so ask your accounting software vendor if you cannot find the export.