4 min read

Poland's KSeF mandate: why it is not Peppol, and what Stripe users need to do

Poland is moving all domestic B2B invoicing onto KSeF, a national clearance system that works nothing like Peppol. Here is what that means if you bill through Stripe.

Poland has one of the most demanding e-invoicing regimes in the EU, and it does not run on Peppol. Domestic B2B invoices go through KSeF — the Krajowy System e-Faktur, a government-operated platform that every invoice must pass through before it counts as issued. If you sell into Poland from a Stripe-billing business, the question that decides your workload is whether KSeF applies to you at all — and the answer is often narrower than the headlines suggest.

What KSeF actually is

KSeF is a central clearance system. You submit a structured invoice to the tax authority's platform; it validates the document, assigns it a KSeF number, and only then is the invoice legally issued. The buyer collects it from the same platform. There is no email, no PDF exchange, no direct handoff between supplier and customer — the state sits in the middle of every transaction.

The mandated format is the national FA(3) XML schema. A document that does not match that schema, or that never reaches KSeF, is not a valid invoice under Polish law once the mandate bites. Paper and PDF lose their standing for in-scope B2B transactions.

The rollout is phased across 2026:

  • 1 February 2026 — taxpayers with turnover above PLN 200 million must issue through KSeF.
  • 1 April 2026 — all other VAT-registered businesses join.
  • 1 January 2027 — the smallest taxpayers come in, and the penalty regime switches on. Through 2026 there is a grace period with no fines for KSeF breaches; from 2027 penalties of up to 100% of the invoice VAT apply.

Dates and thresholds have moved several times in this file's history, so confirm the current position with the Polish Ministry of Finance before you act on it.

How this differs from Peppol

Peppol is a four-corner model. Your access point hands the document to the recipient's access point, and the two exchange it directly across a shared network. No government platform holds the invoice; there is no central number stamped on it. Belgium's mandate, which we covered in the Belgium rundown, works this way, and so does most of the EU.

KSeF is the opposite: a single national hub through which everything is cleared. It is a different rail with a different format, and Poland is not the only country to have taken this route — Italy's SdI and, in its own way, Spain's forthcoming system are national platforms rather than pure Peppol. The country-by-country guide flags which is which, because it changes what tooling you need. For the background on how the Peppol rail works, see what Peppol is.

What a Stripe user selling into Poland has to do

Start with the establishment question, because it decides everything. KSeF binds businesses with a fixed establishment in Poland — an office, staff, or equivalent presence that takes part in the sale. Per the Ministry of Finance's January 2026 guidance, a foreign company that holds a Polish VAT number but has no fixed establishment is generally not required to issue through KSeF. Where a Polish buyer is on the receiving end of an out-of-scope foreign invoice, the document is made available to them by agreement rather than through the platform.

So the practical path splits:

  1. You have a fixed establishment in Poland. You are in scope and need a KSeF integration for your Polish domestic sales. That is a national clearance connection, not something a Peppol sender provides — Peppost does not submit to KSeF, and no honest Peppol tool will claim to.
  2. You do not. KSeF likely does not bind your invoicing, but your Polish customers still expect structured documents, and every other Peppol country you sell into carries its own obligations. This is where a Peppol delivery layer earns its place.

For that second, far more common case, Peppost sends the invoices you have already finalised in Stripe over Peppol as UBL that follows the BIS Billing 3.0 profile and the EN 16931 standard. It looks the recipient up in the Peppol directory before any credit is spent, so you learn immediately whether a given customer is reachable on the network. There is no subscription — you buy credits, one per send, and new accounts get a few free sends to test the flow, including in Stripe test mode. The sending guide walks through it, and the FAQ covers the edge cases.

KSeF and Peppol solve the same problem on incompatible rails. Knowing which one actually applies to you is most of the work; the rest is small.