Poland KSeF mandatory B2B e-invoicing (FA(3))
Poland's KSeF (Krajowy System e-Faktur) is the national e-invoicing clearance platform operated by the Polish Ministry of Finance (mf.gov.pl). It centralizes B2B invoice exchange: structured XML invoices conforming to the official FA(3) schema are transmitted to KSeF, which validates the document, assigns a unique official identifier (KSeF number / KSEFNR), and makes the invoice available to the buyer.
Frihet does not submit invoices to KSeF. To issue them in KSeF, use the official tools of the Polish Ministry of Finance (podatki.gov.pl/ksef) or a provider integrated with KSeF.
Mandatory dates in Poland
| Taxpayer category | Mandatory from |
|---|---|
| Large taxpayers (gross VAT revenue > PLN 200M/year) | 1 February 2026 |
| SMEs and all other active VAT taxpayers | 1 April 2026 |
| Micro-enterprises (monthly sales ≤ PLN 10,000) | 1 January 2027 |
If you issue invoices from a Polish VAT-registered entity (with a NIP tax identifier), Polish law requires compliance with the official FA(3) logical structure and KSeF.
What KSeF requires operationally
Under the KSeF clearance model:
- Structured XML conforming to the FA(3) schema is submitted to the KSeF API.
- KSeF validates the schema and assigns an official KSeF number (
KSEFNR). - The invoice is deemed issued on the date it is sent to KSeF and received by the buyer on the date KSeF assigns its number (
KSEFNR). - The buyer retrieves the invoice directly from KSeF using the
KSEFNR.
Official FA(3) schema
The official invoice schema effective 1 February 2026 for the mandatory KSeF rollout is FA(3) (Struktura logiczna FA(3)), replacing FA(2):
- XML Namespace:
http://crd.gov.pl/wzor/2025/06/25/13775/ - Official XSD Schema:
FA(3)logical structure published by the Polish Ministry of Finance in the Central Repository of Electronic Document Templates (crd.gov.pl).
Key technical changes in FA(3) compared to FA(2):
| Element | Change in FA(3) |
|---|---|
| Seller and buyer identification | Expanded taxpayer role codes (including local government subordinate units JST and VAT groups GV) |
| VAT rate enumeration | New structured markers for 0% rates, exports, intra-Community supplies (WDT), and exemptions |
| Advance payment invoices | Updated ZaliczkaCzesciowa block and settlement linkage to final invoices |
KSeF reference (NrKSeF) | Mandatory node when referencing corrective invoices (faktura korygująca) issued in KSeF |
Tax annotations (Adnotacje) | Structured mandatory annotation codes (cash accounting, self-billing, reverse charge) |
Structured attachments (Zalacznik) | Support for structured data attachments embedded directly inside the FA(3) XML |
Authentication and session flow in the KSeF API
The KSeF API uses an asynchronous challenge-response authentication and encrypted session workflow:
- Challenge request (
AuthorisationChallenge): requested for the issuing entity's NIP. - Challenge signature: signed with a qualified electronic signature (XAdES) or a KSeF authorization token encrypted with the Ministry of Finance public key.
- Interactive or batch session initialization: returns a temporary session token.
- Invoice transmission: submission of the
FA(3)XML payload (encrypted with AES-256 in the v2 workflow). KSEFNRand UPO retrieval: asynchronous status polling untilprocessingCode: 200, returning theksefReferenceNumber(KSEFNR) and the official receipt (Urzędowe Poświadczenie Odbioru, UPO).
Certificate requirements in Poland
The certificate used to authenticate must be a qualified electronic signature or qualified electronic seal (carrying the Polish NIP or PESEL attribute) issued by a recognized provider, or an official KSeF authorization token generated in the Ministry of Finance KSeF portal (podatki.gov.pl/ksef).
Official KSeF test environment (Sandbox)
The Polish Ministry of Finance operates an official test environment separate from production:
https://api-test.ksef.mf.gov.pl
The official KSeF 2.0 test environment is api-test.ksef.mf.gov.pl.
Corrective invoices (Faktura korygująca) in FA(3)
In the FA(3) schema, every corrective invoice must identify the original invoice inside the DaneFaKorygowanej block:
- When correcting an invoice originally issued via KSeF, the
NrKSeF = 1marker and the originalNrKSeFFaKorygowanej(KSEFNR) are mandatory. - When correcting an invoice issued outside KSeF prior to the mandate,
NrKSeFN = 1is set alongside the original invoice number and issue date (NrFaKorygowanej,DataWystFaKorygowanej).
VAT rates in Poland
| Rate | Category |
|---|---|
| 23% | Standard rate |
| 8% | Reduced (food, medical equipment, hospitality, social housing construction) |
| 5% | Super-reduced (basic food, books, periodicals) |
| 0% | Exports and intra-Community supplies of goods (WDT) |
| ZW | VAT-exempt (zwolniony) |
Official references
- KSeF Ministry of Finance portal: https://www.podatki.gov.pl/ksef/
- Official KSeF documentation and
FA(3)schema: https://ksef.podatki.gov.pl/ - Official
FA(3)XML namespace:http://crd.gov.pl/wzor/2025/06/25/13775/ - PEF B2G platform (Poland PEPPOL): https://www.pef.gov.pl