Free KSeF FA(3) Validator — Check Your Polish E-Invoice Before Sending

Validate a Polish structured invoice (faktura ustrukturyzowana) against the official Ministry of Finance FA(3) XSD before it reaches KSeF. Every schema violation is reported with its line number and message, party NIPs are checksum-verified, and files still using the retired FA(2) structure get a clear warning. Free, no signup, instant report.

How the KSeF FA(3) validator works

1

Upload the FA(3) XML

Drop in the invoice XML your software produced. The Faktura root element is detected automatically — no format dropdown. The validator checks that the document declares the FA(3) namespace (crd.gov.pl/wzor/2025/06/25/13775/) that KSeF 2.0 requires.

2

Full official XSD + NIP checks

The file is validated against the complete Ministry of Finance FA(3) schema — mandatory elements (Naglowek, Podmiot1, Podmiot2, Fa), field formats, code lists and amount patterns. On top of the schema, seller and buyer NIPs are verified with the official mod-11 checksum, a rejection KSeF applies that the XSD alone cannot catch.

3

Fix and re-check before KSeF sees it

Each finding names the line, column and violated constraint, so you can fix the field and re-validate in seconds — instead of waiting for KSeF to reject the invoice after submission.

What the FA(3) validator covers

The official FA(3) schema, complete

The exact XSD published by the Ministry of Finance (CRWD pattern 13775), including the CRD type libraries it imports — address structures, elementary types and country codes. FA(3) is the only structure KSeF accepts since February 2026.

NIP mod-11 checksums

The 10-digit format of a NIP is a schema rule, but the checksum is not — an invoice with a mistyped NIP passes the XSD and is then rejected by KSeF. The validator computes the official weighted mod-11 check for seller (Podmiot1) and buyer (Podmiot2) identifiers.

FA(2) leftovers flagged

Software that still emits the retired FA(2) structure (namespace …/2023/06/29/12648/) produces files KSeF has rejected since 1 February 2026. The validator names the outdated namespace explicitly instead of drowning you in confusing schema errors.

All invoice types

Standard VAT invoices, corrections (KOR), advance-payment and settlement invoices (ZAL, ROZ), simplified invoices (UPR) — everything the FA(3) RodzajFaktury element allows, including attachments (Zalacznik) and VAT-group scenarios introduced with FA(3).

Why validate before sending to KSeF?

KSeF is mandatory for large taxpayers since 1 February 2026 and for all other VAT payers established in Poland since 1 April 2026 (micro-enterprises follow on 1 January 2027). KSeF automatically rejects any file that violates the FA(3) schema — and a rejected invoice legally does not exist: it has no KSeF number, no fixed issue date, and your buyer never receives it. Catching the error before submission costs seconds; discovering it afterwards can mean a missed contractual deadline. The penalty-free grace period ends 31 December 2026.

This validator runs the official Ministry of Finance FA(3) XSD, so the schema errors KSeF would raise are caught before submission. It does not talk to KSeF itself — no token, no submission, and your invoice data is not stored. (KSeF additionally performs server-side checks no offline tool can replicate, such as duplicate detection and sender authorization.)

Common FA(3) errors

  • Wrong namespace — the file declares the FA(2) namespace or none at all. KSeF 2.0 accepts only the FA(3) namespace; this is the single most common rejection after the 1 February 2026 switch.
  • Missing mandatory element — Naglowek, Podmiot1, Podmiot2 and Fa are required; inside them, fields like KodFormularza, DataWytworzeniaFa, NIP and P_1 (issue date) must be present and correctly formatted.
  • Invalid NIP checksum — a 10-digit NIP that fails the weighted mod-11 check. Passes the XSD, rejected by KSeF.
  • Wrong amount or date format — amounts with more than 2 decimals (or commas instead of dots), dates not in YYYY-MM-DD form, values exceeding field lengths.
  • Code-list violations — currency codes outside ISO 4217, country codes outside the CRD list, or a RodzajFaktury value that does not match the invoice content.

Works with files from any software

Whether the XML comes from your ERP, accounting software, an online generator or the government's own Aplikacja Podatnika export — if it is meant for KSeF, it must satisfy FA(3). Validate supplier files you import just as well as invoices you issue.

KSeF FA(3) validator: FAQ

What is FA(3)?

FA(3) is the current logical structure of the Polish structured invoice (faktura ustrukturyzowana) — the XML schema published by the Ministry of Finance that every invoice sent through KSeF 2.0 must satisfy. It replaced FA(2) on 1 February 2026, adding support for attachments, VAT groups, JST units and the new KSeF payment identifier.

Does this validator send my invoice to KSeF?

No. It only checks the file offline: the official FA(3) XSD plus NIP checksum rules. There is no KSeF token, no submission, and the file is not stored. You still submit through your accounting software, an API integration, or the government's free Aplikacja Podatnika.

My file passes here — can KSeF still reject it?

Schema-wise, no: the validator runs the official Ministry of Finance FA(3) XSD. KSeF does apply a few server-side checks that no offline tool can replicate — duplicate invoice detection, sender authorization, and session-level limits — so a pass here removes the schema and NIP-checksum failure modes, which cause the vast majority of rejections.

What happens if I send an invalid invoice to KSeF?

KSeF rejects it and the invoice legally does not exist: it receives no KSeF number and no fixed issue date, and the buyer never sees it. During 2026 the Ministry is not imposing financial penalties, but a rejected invoice can still cost you payment deadlines — and penalties start on 1 January 2027.

My software still produces FA(2) files. What should I do?

KSeF has not accepted FA(2) since 1 February 2026. The validator detects the retired FA(2) namespace and says so explicitly. Update your software to an FA(3)-capable version; if the vendor is slow, the government's free KSeF tools can issue FA(3) invoices in the meantime.

Check your FA(3) invoice now

Free, anonymous — full Ministry of Finance XSD plus NIP checksum verification.