Back to blog

KSeF 2026 — the complete guide for small businesses in Poland

Published on August 23, 20268 min read
This guide is about Poland. KSeF is the Polish national e-invoicing system, and the rules below apply to businesses registered for tax in Poland — including foreign-owned companies and sole traders operating there. If your company is registered elsewhere, this does not apply to you.

The Krajowy System e-Faktur (KSeF — the National e-Invoicing System) has changed how invoicing works in Poland. Structured e-invoicing has been mandatory for large companies since 1 February 2026 and for all active VAT payers since 1 April 2026. Every business — including those exempt from VAT — has had to be able to receive invoices through the system since 1 February 2026.

The change affects more than 1.7 million entities, including sole proprietorships (JDG) and companies. If you run a small business in Poland and want to avoid penalties when the transition period closes, this guide is for you.

What is KSeF?

KSeF (Krajowy System e-Faktur) is a central IT system run by the Polish Ministry of Finance that stores structured electronic invoices in XML format. Every invoice sent to KSeF receives a unique KSeF reference number and an UPO (Urzędowe Poświadczenie Odbioru — Official Receipt Confirmation), which together confirm its authenticity, integrity and delivery date.

The system replaces the previous model, where PDF or paper invoices travelled between seller and buyer. In KSeF the invoice lands in a central database and is immediately available to both parties. You do not need to email it or store it yourself — the system keeps invoices for 10 years from the end of the calendar year in which they were issued.

Who KSeF applies to, and when

The obligation is being introduced in stages. Here is the full timetable:

DateWhat changes
1 February 2026Large companies issue invoices through KSeF. Everyone else — including businesses exempt from VAT — must be able to receive invoices through the system.
1 April 2026Issuing invoices through KSeF becomes mandatory for all active VAT payers.
31 December 2026End of the transition period for micro-businesses (sales under PLN 10,000 per month).
1 January 2027Full obligation for every B2B entity, and financial penalties begin.

What about B2C invoices?

Invoices for consumers (private individuals without a NIP) do not have to go through KSeF. You can still issue them the traditional way, as a PDF or on paper.

NIP is the Polish tax identification number — the equivalent of a VAT number, and the identifier KSeF uses to route an invoice to the right buyer.

How to generate a KSeF 2.0 token, step by step

An authorization token is the key that lets external applications (such as Invoice.app) talk to KSeF on your behalf. Treat it like a password — keep it somewhere safe.

Important: tokens generated in KSeF 1.0 (the test environment used before 2026) do not work in KSeF 2.0 (production). You have to generate a new one in the current portal.

The taxpayer portal is only available in Polish, so the screenshots below are of the Polish interface. The Polish labels you need to look for are given alongside the English.

Step 1 — sign in to the KSeF Taxpayer Application

Go to ap.ksef.mf.gov.pl/web and sign in using one of these methods:

  • Profil Zaufany (Trusted Profile) — the most common method, available through login.gov.pl. It requires a Polish trusted profile, usually set up through a bank or a government office.
  • Podpis kwalifikowany (qualified electronic signature) — faster and more reliable. Requires a qualified certificate, for example from Certum or SimplySign.
  • Pieczęć elektroniczna (electronic seal) — for companies that hold a qualified electronic seal.
KSeF Taxpayer Application (Polish interface) — signing in

Step 2 — generate a token with the right permissions

Once signed in, go to Tokeny (Tokens) and click Generuj token (Generate token). On the token screen:

  1. Give the token a descriptive name, such as "Invoice app" — that makes it easy to tell later what each token is for.
  2. Tick both permissions:
    • Wystawianie faktur (issuing invoices) — lets the app send invoices to KSeF.
    • Przeglądanie faktur (viewing invoices) — lets the app download invoices you have received, such as purchase invoices from your suppliers.

Note that a token's permissions cannot be changed after it is created. If you forget the viewing permission, you will have to generate a new token.

KSeF Taxpayer Application (Polish interface) — generating a token and choosing permissions

Step 3 — copy the token and keep it safe

The portal then shows the token — a string of characters you paste into your invoicing app. Copy it straight away and store it somewhere safe, such as a password manager. The portal shows the token only once; if you lose it, you have to generate a new one.

KSeF Taxpayer Application (Polish interface) — copy the generated token

Using KSeF in Invoice.app

Setting up the connection

Paste the generated token into Invoice.app's settings and the KSeF connection is configured automatically. From that point you can send and receive invoices from inside the app.

KSeF setup screen in Invoice.app — authenticating with a token

Sending your first invoice to KSeF

With the token in place, sending an invoice is straightforward and largely automatic:

  1. Create the invoice as usual — fill in the client details, line items, VAT rates and payment terms.
  2. Check the buyer's NIP — KSeF requires a NIP on every B2B invoice. Make sure the client's details are complete and match the VAT register.
  3. Send the invoice to KSeF — Invoice.app generates the structured XML file, encrypts it and submits it to the system.
  4. Wait for validation — KSeF checks the invoice. Once accepted, it receives an official KSeF reference number and a UPO.

Tip: an invoice sent to KSeF cannot be edited or deleted. If you spot a mistake, the only remedy is to issue a corrective invoice (faktura korygująca).

Sending an invoice to KSeF in Invoice.app

Tracking status and downloading the UPO

Invoice.app tracks the status of every invoice in real time:

  • Pending — the invoice has been sent and is awaiting validation.
  • Accepted — the invoice passed validation and received its KSeF reference number. The buyer can see it in their own system.
  • Rejected — the invoice contains errors, such as an invalid NIP. Correct the details and send it again.
Tracking KSeF invoice status in Invoice.app

Syncing purchase invoices

You no longer need to type in invoices for fuel or phone bills by hand. Invoice.app downloads the invoices you receive through KSeF automatically, keeping your local data in step with the national system. Everything you have issued and received sits in one place.

Syncing invoices from KSeF in Invoice.app

QR codes on invoices

Invoice.app adds a QR code to the PDF version of any invoice sent to KSeF. The recipient can scan it with a phone and check the document directly in the national system.

A KSeF QR code on an invoice generated by Invoice.app

Common mistakes when adopting KSeF

  1. A missing or invalid buyer NIP — KSeF requires a NIP on every B2B invoice, entered without dashes or spaces. Check that your client records are up to date.
  2. A token without the viewing permission — tick both permissions when generating the token. They cannot be changed afterwards.
  3. Trying to edit an invoice already sent — an invoice in KSeF is immutable. The only remedy is a corrective invoice.

What KSeF gives a small business

  • Faster VAT refunds — the refund period drops from 60 to 40 days for invoices issued through KSeF.
  • No archiving — the system keeps documents for 10 years, so you do not have to archive invoices yourself.
  • No more JPK_FA — the tax office already has your invoices, so there are no extra files to prepare.
  • Immediate delivery — your counterparty sees the invoice as soon as KSeF validates it.

Useful links

FAQ — common questions about KSeF

Yes. The obligation covers both active VAT payers and those exempt from VAT. Since 1 February 2026 every business has had to be able to receive invoices from KSeF, and since 1 April 2026 to issue them.

Receiving invoices has been mandatory since 1 February 2026 and issuing them since 1 April 2026. Micro-businesses with sales under PLN 10,000 per month have a transition period until 31 December 2026.

No. Invoices for consumers — private individuals without a NIP — are outside the KSeF obligation. You can keep issuing them the traditional way.

KSeF applies to businesses registered for tax in Poland. If your company is registered elsewhere and has no Polish tax registration, it does not apply. A foreign-owned company or sole trader registered in Poland is covered like any other Polish business, whatever language they work in.

A token is a confidential string generated in the KSeF Taxpayer Application. It lets external applications such as Invoice.app send and receive invoices on your behalf. Treat it like a password and do not share it.

An invoice in KSeF cannot be edited or deleted. The only way is to issue a corrective invoice linked to the original document.

Yes. Invoice.app is fully integrated with the KSeF 2.0 API. It supports issuing and receiving invoices, syncing purchase invoices, QR codes and UPO downloads.

Ready to get started with KSeF?

Download Invoice.app and start submitting e-invoices to Poland's National e-Invoicing System today.

Download on the App StoreGet it on Google PlayOpen the web app