Poland — KSeF mandatory B2B clearance
KSeF mandatory clearance · large taxpayers Feb 2026 · all April 2026 — regulator: Ministerstwo Finansów (Ministry of Finance). Facts last refreshed: 2026-05-05.
POST /v1/documents/send.
TL;DR
- KSeF (Krajowy System e-Faktur) is Poland's central clearance platform — every domestic invoice is submitted, validated, and assigned a KSeF number before being delivered to the buyer.
- Mandatory from 1 February 2026 for taxpayers with sales > PLN 200M; 1 April 2026 for everyone else.
- Format: FA(2) — Polish XML schema, mandatory; not interchangeable with Peppol BIS for domestic.
- Cross-border invoices ride Peppol BIS as usual; only domestic KSeF.
Deadlines
| Date | Who | What |
|---|---|---|
| 2022-01-01 | Voluntary KSeF | Available for early adopters. |
| 2026-02-01 | Large taxpayers (sales > PLN 200M) | KSeF mandatory. |
| 2026-04-01 | All other VAT taxpayers | KSeF mandatory. |
| 2027-01-01 | Cash register integration | POS systems must connect to KSeF for B2C documents. |
Background
Poland operates the most aggressive CTC regime in the EU: clearance, not just reporting. An invoice does not legally exist until KSeF accepts it and returns a KSeF number. The seller can then deliver the invoice to the buyer (in any format), with the KSeF number as proof of validity.
Flowie's domestic Polish flow: POST /v1/documents/send → Flowie translates JSON to FA(2) → submits to KSeF → receives KSeF number and visualisation URL → returns those to the caller, then optionally delivers to the buyer (PDF or Peppol).
Format profile
- FA(2) XML schema, defined by the Polish Ministry of Finance. No alternative for domestic.
- Peppol BIS 3.0 for cross-border.
- Polish NIP: 10 digits, prefixed with
PLfor VAT.
Required fields
-
seller.taxId.nipstring (10 digits)required
Polish NIP.
-
buyer.taxId.nipstring (10 digits)required for B2B
Buyer NIP.
-
ksef.invoiceTypecodeauto-derived
FA(2) document type code; derived from
typewhen omitted.
Public sector (B2G)
| Hub | Peppol identifier scheme | Lookup |
|---|---|---|
| KSeF (covers public + private) | PL-NIP-<nip> | https://www.podatki.gov.pl/ksef |
KSeF is the universal Polish hub — public-sector recipients use it too. There's no separate B2G platform.
B2B reporting / clearance
KSeF — Clearance: invoice validated and assigned KSeF number before legal delivery.
| Lifecycle status | Reported as |
|---|---|
issued | Submitted; KSeF number returned. |
rejected | Schema or business-rule failure; original FA(2) returned. |
cancelled | Cancellation message; original KSeF number referenced. |
Opt-out: settings.autoCompliance.PL = false (only for cross-border-only sellers)
Error codes
| Code | Meaning | Fix |
|---|---|---|
KSEF-21100 | Schema validation failure on FA(2). | Inspect error.details for the offending element. |
KSEF-21102 | NIP not registered with KSeF. | Either party not yet onboarded; verify with the buyer. |
KSEF-22001 | Authentication token expired. | Flowie auto-refreshes; manual integrations must re-issue the JWT. |
Testing in sandbox
| What you want to test | How |
|---|---|
| KSeF happy path | Seller NIP 1111111111, buyer NIP 2222222222; sandbox returns synthetic KSeF number. |
| Force KSeF rejection | simulateCompliance: "reject_KSEF_21100". |
FAQ
Can I send PDF to the buyer if KSeF accepted the FA(2)?
Yes — once KSeF returns a number, the invoice exists. You may also deliver a human-readable PDF (with the KSeF number on it) to the buyer's mailbox, or send via Peppol if they prefer.
Are foreign sellers obligated?
Only if registered for Polish VAT. A foreign EU seller invoicing into Poland uses standard EU rules; KSeF is not required.
References
Primary sources (government / regulator / standards body):
- EU Commission · eInvoicing in Poland — Pan-EU reference factsheet.
- OpenPeppol · Poland profile — Authoritative Peppol facts.
- KSeF · Krajowy System e-Faktur (MF) — National e-invoicing platform — Ministry of Finance.
- Podatki.gov.pl · KSeF info portal — Taxpayer guidance and FAQ portal.
- PEF · Platforma Elektronicznego Fakturowania — B2G Peppol-based platform.
Industry analyses (vendor trackers — useful for cross-referencing):
- vatcalc · Poland KSeF 2026 timeline — Industry tracker — Feb/Apr 2026 phased rollout.
