ValidateFin

KSeF FA(3) Validator Poland

Check a Polish FA(3) e-invoice against the official Ministry of Finance XSD — in your browser, nothing uploaded.

FA(3)Official MF XSDKSeF100% local
100% Local

What is the KSeF FA(3) schema?

FA(3) is the structured-invoice schema of Poland’s national e-invoicing system, KSeF (Krajowy System e-Faktur). It replaced FA(2) on 1 February 2026 and is the only schema KSeF now accepts. This free validator checks an XML file against the official Ministry of Finance XSD (namespace http://crd.gov.pl/wzor/2025/06/25/13775/) entirely in your browser, so the invoice never leaves your machine.

In brief

  • FA(3) has been the mandatory KSeF schema since 1 February 2026, replacing FA(2).
  • Validated against the official Ministry of Finance XSD (crd.gov.pl).
  • The file is processed only in your browser — it is never uploaded.
  • Also checks the NIP check digit (mod 11) and the coherence of P_13/P_14/P_15.
  • Validating here does NOT submit the invoice to KSeF — it only checks the file.

About the KSeF FA(3) validator

FA(3) is the structured-invoice schema of Poland's national e-invoicing system, KSeF (Krajowy System e-Faktur). It became mandatory on 1 February 2026 for taxpayers with over PLN 200 million in sales, and on 1 April 2026 for everyone else. It replaced FA(2).

The validator loads the official XSD published by the Polish Ministry of Finance (namespace http://crd.gov.pl/wzor/2025/06/25/13775/) and checks your file against it: structure, data types, cardinalities and closed code lists — including RodzajFaktury (VAT, KOR, ZAL, ROZ, UPR, KOR_ZAL, KOR_ROZ) and the VAT rates.

On top of that it applies the rules a schema cannot express: the NIP check digit (mod 11) and the coherence of the invoice totals. Those are reported as warnings rather than errors — we checked them against the 26 example invoices published by the Ministry, and no rule here may flag any of them as broken.

Key takeaways

  • FA(3) is the only schema KSeF accepts, since 1 February 2026.
  • Migrating from FA(2)? Podmiot2 gained two mandatory fields: JST and GV.
  • Penalties for KSeF errors apply only from 1 January 2027 — 2026 is a transition year.
  • VAT rate codes are case-sensitive: 'zw', 'oo' and 'np I' are lowercase in the schema.
  • Your file never leaves your device — validation is 100% client-side.

Frequently asked questions

What is FA(3), and since when is it mandatory?

FA(3) is the current structured-invoice schema of KSeF. It has been mandatory since 1 February 2026 for taxpayers whose 2024 gross sales exceeded PLN 200 million, and since 1 April 2026 for all other businesses. It replaced FA(2).

Can I still send an FA(2) file?

No. FA(3) replaced FA(2) on 1 February 2026. If you drop an FA(2) file here, the validator recognises it by its namespace and says so explicitly. The most common migration trap is the two new mandatory fields in Podmiot2: JST and GV.

What exactly does this validator check?

First, the official Ministry of Finance XSD: document structure, data types, cardinalities and closed code lists. Second, the rules the schema cannot express: the NIP check digit, and whether the VAT totals (P_13_x, P_14_x, P_15) agree with each other and with the invoice lines.

Is my invoice sent anywhere?

No. The whole validation runs in your browser. The file is never uploaded, stored or logged. You can disconnect from the internet after the page has loaded and the validator will still work.

Does validating here submit my invoice to KSeF?

No. This tool only checks the file. It does not connect to KSeF, does not submit anything and does not assign a KSeF number. You still have to send the invoice through your own software or the official KSeF Taxpayer Application.

Why are some findings warnings rather than errors?

Because not every rule is normative. In the Ministry's own example 1, the net and VAT amounts add up to 2050.99 while P_15 reads 2051. Treating that as an error would mean rejecting the Ministry's own files. So the totals and the NIP check digit are warnings: informative, but never grounds for declaring the invoice non-conformant.

ValidateFin is an independent tool, not certified or endorsed by the Polish Ministry of Finance or KSeF. “Official” refers to the schema used — the FA(3) XSD published on crd.gov.pl — not to any accreditation of this tool. Validating a file here does not submit it to KSeF.