Validate KSeF invoices for Poland

KSeF (FA(3)) is required in Poland. Poland launched KSeF (Krajowy System e-Faktur) as mandatory for all B2B transactions on February 1, 2026.

Check a KSeF invoiceChecking is free. The tool detects the profile itself.

At a glance

FormatKSeF (FA(3))
MandateB2B mandatory
PeppolNot connected
PortalKSeF ↗

What we validate

FA(3) XSD schema compliance
NIP (tax number) format and checksum validation
Mandatory header fields (Naglowek) completeness
Seller (Podmiot1) identification and NIP presence
Buyer (Podmiot2) identification and NIP/PESEL format
Invoice date (P_1) not in the future
Invoice number (P_2) uniqueness structure
VAT rate and amount calculation consistency
RodzajFaktury (invoice type) enumeration values
Duplicate detection (NIP + invoice type + number)

Common KSeF rejections

XSD-001XML not conforming to FA(3) schema
440Duplicate invoice detected (NIP + type + number)
XSD-NIPInvalid NIP format or checksum failure
XSD-P1Invoice date (P_1) is in the future
XSD-REQMissing mandatory field in Fa section
21405Input data validation error (invalid payload)

Poland e-invoicing requirements

PhaseStatusScope
KSeF voluntaryLive (Jan 2022)All VAT payers (opt-in)
B2B mandatory — Phase 1Live (Feb 1, 2026)Large taxpayers (>200M PLN turnover)
B2B mandatory — Phase 2Live (Apr 1, 2026)All remaining VAT-registered entities (SMEs, sole proprietors, VAT-exempt businesses)
B2GLive (Feb 1, 2026)Included in general KSeF mandate
Financial penaltiesJan 1, 2027Up to 100% of VAT amount on non-compliant invoices
Validation engineKSeF (centralized government validation)
Required CIUSKSeF XML schema (FA(3) — proprietary, replaced FA(2) in February 2026; not EN 16931)
Government portalKSeF (ksef.mf.gov.pl) ↗
Routing identifierNIP (tax identification number)
PeppolNo — KSeF is a closed national system

KSeF is architecturally different from Peppol-based mandates. If you've built for Belgium or Germany, assume nothing transfers.

KSeF FAQ

What is KSeF?
KSeF (Krajowy System e-Faktur) is Poland's national e-invoicing system. Invoices are issued as structured XML in KSeF, which validates each one against the FA(3) schema and assigns a KSeF number.
What is the FA(3) schema?
FA(3) is the current logical structure of the Polish structured invoice. It replaced FA(2) on 1 February 2026. The XML must conform to the XSD published by the Ministry of Finance.
How does KSeF validate NIP numbers?
NIP is Poland's 10-digit tax identification number. The last digit is a mod-11 check digit with weights 6-5-7-2-3-4-5-6-7. The seller's NIP is mandatory; the buyer's NIP determines whether the invoice appears in the buyer's KSeF account.
When does the KSeF mandate take effect?
1 February 2026 for taxpayers whose 2024 sales exceeded PLN 200 million (and receiving in KSeF for everyone). 1 April 2026 for all other VAT taxpayers. 1 January 2027 for taxpayers with monthly invoiced sales of up to PLN 10,000.
Is checking free?
Checking is free. The first verified download every 30 days is free. After that €1.90 per invoice, or €9 a month for all of them. Checking needs no account. You only pay when a file has passed the check and you download it.
Do you fix my invoice automatically?
No. We never change amounts, line items or taxes. Where mandatory details are missing, you supply them, we enter them and check the file again. If the export from your invoicing system is structurally broken, you get the error report for your software support, free of charge.
Where is my file checked, and is it stored?
On our servers, not in your browser. Your file is used only to check and fix your invoice and to deliver your result. Results are kept so you can download a verified file again for 90 days; validation logs are deleted after 90 days. You can request deletion at any time.

Read on

About KSeF →Poland e-invoicing guide →All validators →
Related