← Back to blog

KSeF 2026: deadlines, fines and what your company must do in time

KSeF is mandatory from February 2026. The 2026 grace period has no fines — but strict enforcement starts January 2027. Deadlines, common mistakes, and a readiness checklist.

KSeF (Krajowy System e-Faktur) is Poland's national mandatory e-invoicing system — and it is already live. Throughout 2026 it becomes compulsory for all VAT payers, and from January 2027 the grace period ends and financial penalties kick in. If your business operates in Poland or invoices Polish companies, here is what you need to know.

The deadlines

KSeF rollout follows three waves:

  • 1 February 2026 — mandatory for large taxpayers (annual turnover above PLN 200 million)
  • 1 April 2026 — mandatory for all other VAT payers
  • 1 January 2027 — mandatory for micro-entrepreneurs

2026 is formally a grace period: the obligation is in force, but financial sanctions are not yet applied. From 1 January 2027 that changes. Companies that fail to issue invoices through KSeF, or submit malformed data, face penalties. The grace period is not an extension — it is the window to make your integration reliable, not just functional.

What "being ready" actually means technically

Complying with KSeF is not a matter of ticking a box in your accounting software. An invoice must be:

  1. Created in the structured FA(2) format — an XML schema defined by the Polish Ministry of Finance
  2. Signed with an authorisation token or qualified electronic signature
  3. Submitted asynchronously via the KSeF API — not by email, not as a PDF attachment
  4. Confirmed by receipt of a UPO (Urzędowe Poświadczenie Odbioru) — without a UPO the invoice does not legally exist

The last point is where most integrations break down. Many systems send an invoice and stop. They do not track whether KSeF returned an error, whether the session expired, or whether a UPO was ever received. The invoice looks sent. In the government system, it is not. That discrepancy only surfaces during a tax audit.

The most common integration mistakes

From production deployments, we see the same failure patterns repeatedly:

Fire-and-forget submission. The application fires an HTTP request and moves on. No retry, no state tracking, no UPO collection. While KSeF is running smoothly this looks fine. One timeout or maintenance window and invoices disappear silently.

No reconciliation. Nobody systematically checks whether every submitted invoice has a confirmed UPO. Errors accumulate quietly — by the time they are noticed, there may be hundreds.

In-memory rate limiting. KSeF has per-session call limits. A service running on multiple instances will exhaust those limits because each instance tracks its own counter independently.

Ignored session TTL. KSeF sessions expire. An integration that does not refresh tokens automatically will stall overnight and lose hours of invoices by morning.

We cover these failure modes in depth in Robust KSeF integration: why most connectors fail.

Czech and foreign companies operating in Poland

If you are a Czech (or other foreign) company with a Polish branch, or if you are a registered Polish VAT payer, the obligation applies to you exactly as it does to Polish companies. Country of origin is irrelevant — the trigger is Polish VAT registration.

A common scenario: the ERP or invoicing system has a KSeF module, but only in a basic version without durable state management. The IT team ships a simple API call. During the grace period it holds. In January 2027, the first KSeF maintenance window hits, the integration fails silently — no alert, no log, no UPO — and nobody notices until an auditor asks.

Readiness checklist

Go through this honestly:

  • Are you submitting invoices directly via the KSeF API (not PDF by email)?
  • Do you collect and store a UPO for every submitted invoice as proof of acceptance?
  • What happens if KSeF returns a timeout — can you locate that invoice?
  • Does your integration survive an application restart mid-submission?
  • Is there a job that verifies no invoice is stuck in a pending state?
  • Do you receive an alert when a submission stalls?
  • Does it work correctly across multiple instances, not just locally?

If you checked every box, you are ready for January 2027. If not — there is still time, but not unlimited time.

Next steps

The grace period is for fixing problems, not for postponing them. Time invested now in a solid integration will pay off when an auditor asks for your UPOs.

If you want to know exactly where your current integration is vulnerable, we offer a KSeF audit and custom integration service — from architecture design through to production deployment with reconciliation and monitoring.

Get in touch — we will tell you specifically what your risk exposure is and how to address it.

Facing a similar problem? Get in touch.

Book a consultation