Regulation · · 6 min read

Poland KSeF 2026 Mandate: Migration Path for Peppol-First Architectures

Poland KSeF: both mandate waves are live — 1 February 2026 above PLN 200m of 2024 sales, 1 April 2026 for everyone else. FA(3), clearance, Peppol bridging.

Last updated .

When did KSeF become mandatory in Poland?

Both waves are already live. The Polish Ministry of Finance set 1 February 2026 for businesses whose 2024 sales including tax exceeded PLN 200 million, and 1 April 2026 for every other VAT-registered business. Nothing about KSeF is optional now for a business in scope: the invoice a Polish supplier issues today is the one KSeF has cleared.

From Who it covers
1 February 2026 Businesses whose 2024 sales including tax exceeded PLN 200 million
1 April 2026 Every other VAT-registered business, whatever its turnover

Both stages are business-to-business. The April date is the second B2B wave rather than an extension to consumer invoicing — a confusion worth naming, because it circulated widely while the schedule was still being set. A small set of transitional carve-outs published by the Ministry of Finance sits alongside the two dates; check your own position against the Ministry rather than against a rule of thumb.

If you are looking for what GoRoute connects rather than how the rules work, Poland e-invoicing is that page.

Why KSeF matters even if you live on Peppol

Poland is the largest CTC clearance regime in the EU. Even teams whose architecture is Peppol-first eventually meet KSeF when a Polish counterparty enters scope.

This guide is for architects bridging an existing Peppol estate to KSeF, not for greenfield Polish-only deployments.

The model in one paragraph

KSeF is centralised clearance. The supplier issues an FA(3)-format invoice to the National e-Invoicing System (Krajowy System e-Faktur), operated by the Polish Ministry of Finance. KSeF authorises the invoice (assigns a KSeF identifier), and the legal invoice is the KSeF-cleared document. Buyers retrieve the authorised invoice from KSeF. Peppol is not the channel for the cleared invoice; it can be the channel into and out of the supplier's and buyer's service providers.

Where Peppol bridges to KSeF

A pragmatic architecture for international groups:

ERP (multi-country) ─► Peppol AP (one estate)
                              │
                              ├─► Peppol BIS to most counterparties
                              ├─► PINT-OM / PINT-AE / PINT-SG / PINT-MY etc. by jurisdiction
                              └─► KSeF connector for Polish flows
                                            │
                                            └─► KSeF clearance + identifier
                                            └─► Cleared invoice delivered downstream

Two architectural points:

  1. One issuance pipeline, multiple destinations. Generate the structured invoice once, transform per destination (Peppol UBL, FA(3) XML for KSeF). Avoid maintaining two parallel issuance estates.
  2. The KSeF identifier is the linchpin. It must be persisted alongside the invoice so reconciliation and audit can trace the cleared document.

FA(3) vs Peppol BIS — practical differences

FA(3) is the schema KSeF requires. The Ministry of Finance published it on 25 June 2025, and it replaced FA(2) on 1 February 2026 — the same day the first mandate wave started, so no invoice cleared under the mandate has ever used FA(2). If your transform was written against FA(2), that is the piece to rework first.

Concern Peppol BIS Billing 3.0 KSeF FA(3)
Syntax UBL 2.1 National XML schema
Semantic EN 16931 EN 16931 + Polish extensions
Tax authority interaction Optional / out-of-band Mandatory clearance before delivery
Identifier on issuance Document cbc:ID KSeF-assigned numerical identifier
Self-billing Self-Billing 3.0 profile Specific flow within KSeF
Currency EUR + multi-currency PLN + multi-currency

A pure transform from your internal canonical model to FA(3) is the same architectural pattern as the Oman TDD generator — a deterministic emitter, exhaustively testable.

Migration plan for a Peppol-first estate

Sprint 1 — KSeF API access and credentials

Provision API access in the KSeF test environment. Implement the authorisation flow. Persist the KSeF tokens correctly (they are short-lived).

Sprint 2 — Canonical model to FA(3) transform

Write a pure transform from your internal canonical invoice model to FA(3). Run the published KSeF test invoices through it; do not stop until the entire test set passes.

Sprint 3 — Clearance roundtrip

Submit FA(3) to KSeF test, receive the clearance identifier, persist it. Implement retry on transient failures with idempotency.

Sprint 4 — Buyer fetch

Implement the buyer-side retrieval of cleared invoices from KSeF. Many large buyers will pull on a schedule; some will subscribe to push notifications.

Sprint 5 — Cutover and dual-running

Run KSeF production alongside any legacy channel for two weeks before retiring the legacy. Reconciliation must match across all three: ERP, KSeF, bank.

What do you do if you have missed both dates?

Run the same five sprints, without the runway. Nothing in the sequence changes once the deadline is behind you; what changes is that every week of it happens while invoices are still being issued. Three practical adjustments:

  1. Do not skip the sandbox to save time. The four-week floor above is about how long it takes to find the schema and authorisation failures that only appear on real invoice data. Skipping it moves those failures into production, where a rejected invoice is a rejected invoice rather than a failed test.
  2. Sequence by counterparty pressure, not by volume. The Polish buyers who will chase you first are the ones already clearing through KSeF and reconciling on the KSeF identifier. Get those flows correct before the long tail.
  3. Settle the compliance question separately from the technical one. Penalties, correction of invoices issued outside KSeF, and any transitional easement are the Ministry of Finance's to set. Confirm your own position with the Ministry or a Polish tax adviser; a service provider can tell you what the system accepts, not what your exposure is.

The Poland e-invoicing page has the connector detail — what GoRoute handles, the formats and the VAT and NIP handling — if you are past the rules and choosing how to connect.

Common KSeF traps

  1. Treating KSeF as just another transport. It is a clearance regime — the legal invoice is the cleared one. Build the workflow around the clearance identifier.
  2. Mixing FA(3) and UBL pipelines. Keep them separate; have a single canonical source of truth in your system.
  3. Underestimating sandbox time. Four weeks is a floor, not a ceiling.
  4. Forgetting the disaster scenario. Plan for a KSeF outage — what does the supplier do when KSeF is briefly unreachable? The Ministry of Finance has published continuity rules.

How the rest of the world plays into this

If your scope spans multiple countries — typical for groups with a Polish subsidiary — the multi-country e-invoicing API is the cross-cutting frame. The e-invoicing mandates 2026 tracker shows where Poland sits among Belgium, Latvia, Croatia, Greece, the UAE, Malaysia, Singapore and France in the same calendar year.

For the comparative discussion of clearance vs Peppol semantically, Peppol vs PINT: the difference explained is the right read.

What we ship at GoRoute

GoRoute (POP000991) operates a certified Peppol Access Point and SMP and a KSeF connector for Polish flows. Customers with mixed Peppol + KSeF scope are live within eight weeks on the standard runbook.

Book a demo if Poland is in scope, or read the Poland e-invoicing page for the connector detail.


Sources: Polish Ministry of Finance KSeF portal; FA(3) schema documentation; OpenPeppol BIS Billing 3.0 specification.

Frequently asked questions

When does KSeF become mandatory in Poland?
It already is. The Ministry of Finance set two dates, and both have passed: 1 February 2026 for businesses whose 2024 sales including tax exceeded PLN 200 million, and 1 April 2026 for every other VAT-registered business. A small set of transitional carve-outs published by the Ministry sits alongside them, so confirm your own position against the Ministry rather than against a rule of thumb.
Is KSeF a Peppol model?
No. KSeF is centralised clearance — the invoice is submitted to the National e-Invoicing System for authorisation before it is delivered to the buyer. Peppol can act as a transport layer that bridges into KSeF, but the legal invoice is the KSeF-cleared document.
What is FA(3)?
FA(3) is the current version of the Polish e-invoice schema, a national XML format with KSeF-specific extensions to EN 16931. The Ministry of Finance published it on 25 June 2025, and it replaced FA(2) on 1 February 2026 — the day the first mandate wave started. It is distinct from UBL but semantically aligned.
Can a foreign supplier issue KSeF invoices?
Foreign suppliers without a Polish establishment are generally outside the mandate but face commercial pressure from Polish buyers. A Peppol-first architecture eases that bridge through a service provider that handles the KSeF clearance.
Is there a sandbox?
Yes. The Ministry of Finance operates a KSeF test environment for issuers and integrators. Allow at least four weeks of sandbox testing before production cutover.
What does a business that missed both dates do now?
The same sequence, compressed and without a runway — KSeF authorisation credentials, the transform from your canonical invoice model to FA(3), a clearance round trip proved in the Ministry of Finance test environment, then production cutover. Penalties and any transitional easement are the Ministry's to set and are worth confirming with it directly, or with a Polish tax adviser, before you plan around them.

Related posts

Building on Peppol?

GoRoute is a certified Peppol Access Point & SMP. Book a demo or read the docs to get started.

Book a demo Read the docs