Our free KSeF validator checks a Polish structured invoice against the official XML schema of the Polish Ministry of Finance. It recognises the FA(1), FA(2) and FA(3) schemas. Drop your XML file below: you see every structure error, and the file never leaves your browser.
Drop your XML file here or click to choose a file
UBL, CII or another e-invoice format (.xml, .p7m), or a PDF with embedded XML (Factur-X, ZUGFeRD). The file stays on your own computer.
What does the KSeF validator check?
The KSeF validator checks the structure of the invoice against the official schema (XSD) of its version. That means the right elements, in the right order, with valid data types, dates and amounts. Most rejections of a badly generated file come from exactly these errors.
For KSeF, there is no public rule set like the Schematron rules of Peppol or XRechnung. We therefore check the structure only. The KSeF system itself performs further checks when you send the invoice.
What is KSeF?
KSeF (Krajowy System e-Faktur) is the national e-invoicing system of Poland. Businesses send their structured invoices to KSeF, which gives each invoice a KSeF number and makes it available to the buyer. The invoice is an XML file in the FA schema of the Ministry of Finance. The current version is FA(3).
Who has to use KSeF?
KSeF became mandatory on 1 February 2026 for the largest taxpayers, with sales above 200 million zloty in 2024. Since 1 April 2026 it applies to the other businesses, and the smallest businesses get time until 1 January 2027. Penalties for not using KSeF apply only from 2027. Updated on 10 October 2026.
What the KSeF validator does not check
We do not check authentication, the tax numbers (NIP) against the register, duplicates or the KSeF number. We also do not send anything to KSeF. The result is therefore an aid, not a guarantee that KSeF will accept the invoice.
Frequently asked questions about the KSeF validator
Is the KSeF validator free?
Yes. You need no account, and the file is processed only in your browser. Nothing is sent to KSeF or to our server.
Which KSeF schemas do you support?
FA(1), FA(2) and FA(3). The validator recognises the version from the file itself.
Why does KSeF reject a file that passes here?
KSeF also checks things outside the schema, such as authorisation, tax numbers and duplicates. Our check covers the structure of the XML.
Belgian customer?
Invoices to Belgian businesses travel via Peppol in the Peppol BIS Billing 3.0 format. For those invoices, use our Peppol validator instead, because it applies the official Peppol rules.
More free tools
- E-invoice formats by country: every format the validator recognises, and also what it checks for each.
- Peppol error codes: common rule codes in plain language, such as BR-CO-15, with tested XML examples.
- Test invoices: sample files with and without errors, so that you can try the validator first.
- UBL viewer: open an XML invoice and then read it as a PDF.