helban.dev

KSeF requirements in Poland: who must e-invoice, from when, and what it means for an online shop

KSeF is Poland's mandatory e-invoicing system. If your company has its registered office in Poland, or a Polish fixed establishment that takes part in the sale, invoices you issue to anyone other than a consumer have to go through it, a few special VAT schemes aside: since 1 February 2026 for the largest companies, since 1 April 2026 for everyone else. Invoices to consumers, and invoices from foreign companies without a Polish establishment, may go through KSeF but don't have to.

Law as of 8 November 2026, checked against the Ministry of Finance site ksef.podatki.gov.pl and the Polish Parliament's records. Written for businesses that invoice in Poland. A guide, not tax advice.

What KSeF is

KSeF stands for Krajowy System e-Faktur, the National e-Invoicing System, run by the Polish Ministry of Finance. An invoice in KSeF is an XML file in the government's FA(3) structure. You send it to the system, the system accepts it and gives it a KSeF number, and from that moment it counts as delivered: a buyer with a Polish tax ID (NIP) finds it in KSeF, and the system keeps it for ten years. Nobody has to email it, and the buyer doesn't have to accept it.

You can work with KSeF through accounting or invoicing software connected to its API, or through the ministry's free tools: a web app, a mobile app, and the e-mikrofirma service in e-Urząd Skarbowy.

Who has to issue invoices in KSeF

What decides it is the seller's status first and the type of buyer second.

  • It is mandatory for VAT payers with a registered office in Poland, or with a Polish fixed establishment that takes part in the sale, whenever they invoice anyone other than a consumer: another business, at home or abroad, or a public body. The special schemes in the last point below are the exception. For a buyer abroad you still issue the invoice in KSeF and send it in a way you agree on, a PDF for example.
  • Invoices to consumers are optional. The ministry says plainly that issuing B2C invoices in KSeF was voluntary before 1 February 2026 and stays voluntary after it. The same goes for an invoice to a sole trader who buys something for private use.
  • A foreign company with no registered office and no fixed establishment in Poland may use KSeF but doesn't have to, even if it is registered for Polish VAT. The same applies when a Polish fixed establishment exists but has no part in that particular sale.
  • Some invoices can't go into KSeF at all, even voluntarily: those under the non-Union OSS scheme, under IOSS, under the special scheme for occasional international passenger transport by road, and under the EU SME exemption.

Foreign company registered for VAT in Poland?

Then the deciding question is whether you have a fixed establishment in Poland in the VAT sense. The ministry published separate explanatory notes on exactly that in January 2026. The answer depends on the facts of your setup in Poland, so get it from a Polish tax adviser before you decide KSeF doesn't apply to you.

KSeF deadlines in 2026 and 2027

The system went live in stages. The two transition rules that end on 31 December 2026 matter more for small sellers than the start dates do.

Date What changes Who
1 Feb 2026 Receiving through KSeFinvoices from suppliers arrive in the system every VAT payer
1 Feb 2026 Issuing in KSeFsales above PLN 200 million in 2024, VAT included largest companies
1 Apr 2026 Issuing in KSeFsole traders, small and mid-size companies, online shops everyone else
until 31 Dec 2026 Invoices outside KSeF allowedwhile their total in a month stays at or under 10,000 PLN with VAT any issuer
until 31 Dec 2026 Till receipts with the buyer's NIPup to 450 PLN or EUR 100, they count as simplified invoices outside KSeF cash register users
1 Jan 2027 Both exceptions endcash registers stop issuing invoices; KSeF number required in payment titles all VAT payers

Penalties: under the law in force today, fines for KSeF errors start on 1 January 2027. On 6 November 2026 the Sejm passed a government bill (print no. 3245) that moves the start to 1 January 2028. It still needs the Senate and the President's signature, so for now it is a bill, not the law.

How you log in: trusted signature, certificates and tokens

To use KSeF, someone has to authenticate in it: the taxpayer, or a person or company the taxpayer has authorized, such as an accounting office. The methods the ministry names are the Polish trusted signature (Podpis Zaufany), a qualified electronic signature, or a qualified electronic seal for a company.

Software that talks to the API, a web shop included, usually logs in with one of two things. A KSeF token carries the permissions chosen when it was generated. Tokens were meant to disappear at the end of 2026, but the ministry has decided to keep them with no end date. A KSeF certificate is only proof of identity, valid for up to two years, and comes in two separate types: one for logging in, and one for signing the QR code on invoices issued offline. You request certificates in the ministry's web app or through the API.

What the KSeF number is

It is the identifier KSeF gives an invoice once it accepts the file. It comes back in the official receipt (UPO) and is separate from your own invoice number, which stays inside the invoice. You will meet it again later:

  • A corrective invoice cites the KSeF number of the original, and the final invoice after advance payments cites the KSeF number of the advance invoice.
  • From 1 January 2027 a VAT-active business paying another VAT-active business by transfer puts the KSeF number in the payment title. Paying several invoices at once uses a collective identifier generated in KSeF.
  • The JPK_VAT file, Poland's VAT return, has carried KSeF numbers on both the sales and the purchase side since 1 February 2026.

When KSeF is down, or you are

An invoice can be issued outside the system and sent to it later, under one of three modes. In offline24 mode you may do it for any reason, a lost connection included, and you send the invoice no later than the next business day. During ministry maintenance you send it the day after the break ends. After an outage announced in the ministry's public bulletin you have 7 business days from its end. An invoice handed to the buyer before it reaches KSeF carries two QR codes, and the second one needs the offline-type certificate.

What this means for a WooCommerce shop

If your shop only sells to consumers, the sales side needs no KSeF connection at all. If your checkout has a NIP field and some customers ask for a company invoice, those invoices must be created in KSeF, even when they are a small share of your orders. Installing a plugin is the easy part. The work usually sits here:

  • Apart from consumer invoices and the special schemes listed earlier, every invoice must go to KSeF, so the shop has to tell consumers apart from other buyers and send the right invoices.
  • VAT rates, units, currencies, split payment and buyer details all have to land in the right FA(3) fields. One wrong field and KSeF rejects the invoice.
  • The token or certificate has to sit somewhere safe on the server, and the shop has to keep selling, and keep track, while an invoice waits in offline24.
  • A refund on an order that got a KSeF invoice has to become a corrective invoice that cites the original KSeF number.

There are three usual ways to set it up. If an invoicing service such as Fakturownia, wFirma or inFakt already issues your invoices, you switch on its KSeF support and keep the plugin that passes it your orders. When WooCommerce itself issues invoices, you need an invoicing plugin with KSeF support, configured for your credentials and data. B2B sales with corrections, several tax IDs in one shop or sales abroad are where a ready-made plugin may not cope, and then the setup has to be built and tested around your own cases.

Not sure where your shop stands?

Tell me how you invoice today, whether you have business customers, and where your company is registered. I'll tell you whether a plugin is enough or you need a proper setup, and what exactly has to be done. No commitment, before any quote.

Ask about KSeF