Poland’s KSeF e-invoicing mandate, explained

Poland is moving domestic invoicing onto a mandatory clearance model run by the state. Under KSeF (Krajowy System e-Faktur, the National e-Invoice System), in-scope businesses must issue invoices as structured XML in Poland’s national FA schema and send them through a central platform operated by the Ministry of Finance; the system validates each invoice and assigns it a unique KSeF number that marks it as issued. A PDF emailed to the buyer is not enough. The mandatory B2B rollout is staged: large taxpayers from 1 February 2026 and all other businesses from 1 April 2026, with the penalty regime set to apply from 1 January 2027.

This page explains what the mandate is; it is not legal or tax advice. KSeF’s start dates have been postponed more than once, and scope, exemptions, deadlines, schema versions, and penalties are set by Polish law and the Ministry of Finance. Confirm your own obligations — and your route into KSeF — with the Ministry of Finance or a qualified adviser before you rely on a specific rule or date. Slipstack tracks the invoice format, not your filing, clearance, or submission status.

What the mandate requires

For in-scope transactions, the supplier must issue the invoice in the national FA XML schema and transmit it to KSeF. KSeF checks the file against the schema and formal rules and, if it passes, registers it and returns a KSeF number; the invoice is legally treated as issued at the moment KSeF accepts it. “Structured” means the invoice data lives in the defined XML model, not pixels in a PDF and not a flat image. Late or non-compliant issuance is subject to penalties set by Polish law, scheduled to take effect from 1 January 2027 — confirm the current amounts and grace conditions with the authority, as they depend on the breach.

Who is in scope

The mandate covers VAT-registered businesses established in Poland invoicing other businesses (B2B). It is phased by size: taxpayers whose 2024 sales exceeded a turnover threshold set in law (widely reported as PLN 200 million) go first on 1 February 2026, and all remaining businesses follow on 1 April 2026. Treatment of the smallest taxpayers, consumer (B2C) sales, and non-established suppliers is defined separately in law and has its own timing and exemptions. Because the boundaries are set by the Ministry of Finance and have shifted between drafts, treat the summary above as orientation, not a determination: check your specific situation with the authority or your accountant.

How the clearance model works

Like Italy’s SdI, KSeF is a central clearance platform: invoices are not sent directly between trading partners but routed through the government system, which validates, timestamps, and stores them and makes them available to the buyer. The supplier no longer “delivers” the invoice itself in the traditional sense — making it available in KSeF is the delivery. Access is via the Ministry of Finance’s API using authorisation tokens or qualified credentials, so issuing into KSeF requires software wired into that platform.

The FA schema vs EN 16931 — the honest gap

This is the part that trips up tooling. FA is Poland’s own national XML schema (published by the Ministry of Finance, with successive versions such as FA(2) and FA(3)). It carries broadly the same commercial content as the European standard and is semantically related to EN 16931, but it is not the same syntax: an FA file is not a UBL or CII document, and an EN 16931 UBL/CII invoice is not, by itself, a valid FA file for KSeF. Producing a correct EN 16931 core invoice and producing an FA file that KSeF will accept are two different jobs. See what EN 16931 is for the core model and the UBL vs CII syntaxes.

Where Slipstack fits — and where it does not

Be clear-eyed about Poland specifically: Slipstack is on the EN 16931 side of the line, and Poland’s domestic mandate runs on the FA schema + KSeF. From one JSON call Slipstack can:

What Slipstack does not do: it does not produce the Polish FA schema, it is not connected to KSeF, and it does not clear, submit, or register invoices for the Polish mandate. For domestic Polish compliance you need a KSeF-native provider or accounting software wired into the platform; Slipstack is the right tool when you also need clean EN 16931 invoices or want to validate the core rules first. For what a mandated routing platform is, see what is a PDP.

Related: Italy mandate · Romania mandate · Germany mandate · France mandate · EN 16931 explained · What is a PDP.

Generate EN 16931 core invoices from one JSON call

Emit compliant UBL / CII XML or a Factur-X PDF, and validate the core rules for free first. For Poland’s domestic mandate, bring a KSeF / FA provider for clearance.