---
title: "Poland — KSeF mandatory B2B clearance"
description: "Poland e-invoicing: KSeF 2.0 mandatory for large taxpayers from February 2026, all VAT taxpayers from April 2026. FA(3) format replaces FA(2), 24/7 clearance."
canonical: "https://docs.get-flowie.com/compliance/pl"
source: "https://docs.get-flowie.com/compliance/pl.html"
---

# Poland — KSeF mandatory B2B clearance

Compliance · 🇵🇱 Poland Phased rollout

# Poland — KSeF mandatory B2B clearance

KSeF mandatory clearance · large taxpayers Feb 2026 · all April 2026 — regulator: [Ministerstwo Finansów (Ministry of Finance)](<https://www.gov.pl/web/finanse>). _Facts last refreshed: 2026-09-14._

Coverage model

Flowie operates a registered Peppol Access Point in this jurisdiction **directly** where we hold national accreditation, **or via a vetted local partner** registered with the in-country regulator where on-the-ground presence is required (KSeF, SDI intermediario, ZATCA service-provider, etc.). Either way, you call the same `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(3)** — the Polish XML schema required by **KSeF 2.0** from 1 February 2026, replacing FA(2) on that date for all structured invoices regardless of the source document's date. 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 2.0 mandatory; FA(3) replaces FA(2) for everyone on this date.  
**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.

Since 1 February 2026 the platform is **KSeF 2.0** and the schema is **FA(3)** , which supersedes FA(2) for every structured invoice — original, corrective and settlement alike — whatever the date of the underlying document. FA(3) adds invoice attachments, an employee-as-buyer marker and more flexible payment terms.

Flowie's domestic Polish flow: `POST /v1/documents/send` → Flowie translates JSON to FA(3) → 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(3)** XML schema, defined by the Polish Ministry of Finance, required by KSeF 2.0 from 1 February 2026. No alternative for domestic.
  * **Peppol BIS 3.0** for cross-border.
  * Polish NIP: 10 digits, prefixed with `PL` for 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(3) document type code; derived from `type` when 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(3) 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(3).| 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(3)?

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](<https://ec.europa.eu/digital-building-blocks/sites/spaces/DIGITAL/pages/467108896/eInvoicing+in+Poland>) — Pan-EU reference factsheet.
  * [OpenPeppol · Poland profile](<https://peppol.org/learn-more/country-profiles/poland/>) — Authoritative Peppol facts.
  * [KSeF · Krajowy System e-Faktur (MF)](<https://ksef.mf.gov.pl/>) — National e-invoicing platform — Ministry of Finance.
  * [Podatki.gov.pl · KSeF info portal](<https://ksef.podatki.gov.pl/>) — Taxpayer guidance and FAQ portal.
  * [PEF · Platforma Elektronicznego Fakturowania](<https://efaktura.gov.pl/>) — B2G Peppol-based platform.
  * [Podatki.gov.pl · KSeF 2.0 — zakres obowiązkowego KSeF](<https://ksef.podatki.gov.pl/ksef-na-okres-obligatoryjny/>) — MF — KSeF 2.0 and FA(3) mandatory from 1 Feb 2026.



**Industry analyses** (vendor trackers — useful for cross-referencing):

  * [vatcalc · Poland KSeF 2026 timeline](<https://www.vatcalc.com/poland/poland-ksef-mandatory-b2b-e-invoicing/>) — Industry tracker — Feb/Apr 2026 phased rollout.
