In force
KSeF mandatory since February 2026, in three waves — micro-enterprises not until 2027.
| 1 Jan 2022 | KSeF available voluntarily |
| 1 Feb 2026 | Mandatory for large taxpayers — 2024 turnover above PLN 200m, about 4,200 companies |
| 1 Apr 2026 | Mandatory for most remaining businesses |
| 1 Jan 2027 | Mandatory for micro-enterprises |
Format: FA_VAT (KSeF national XML schema), not EN 16931 UBL/CII
Transmission: KSeF national clearance platform
Poland does not use Peppol: invoices are issued into the KSeF clearance system and get a KSeF number. The XML is a national schema, so an EN 16931 UBL file is not directly acceptable — but most senders still produce EN 16931 upstream and map to FA_VAT, which is exactly where validation errors appear. The part that catches people out is legal rather than technical: an invoice is not considered issued until KSeF has validated it and assigned the KSeF ID, so a file your own system thinks it has sent may not legally exist yet. Note the phase-in is by size and is not finished — micro-enterprises only join on 1 January 2027, so a Polish supplier telling you they are not yet on KSeF may well be right.
Validate a Poland invoice against the profile that applies here — EN 16931 (core).
Nothing is stored, and the whole invoice is checked, not just this rule. A PDF only works if it is Factur-X / ZUGFeRD — a PDF with the invoice XML inside it.