Skip to main content

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 and KSeF

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 categoryMandatory from
Large taxpayers (gross VAT revenue > PLN 200M/year)1 February 2026
SMEs and all other active VAT taxpayers1 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:

  1. Structured XML conforming to the FA(3) schema is submitted to the KSeF API.
  2. KSeF validates the schema and assigns an official KSeF number (KSEFNR).
  3. 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).
  4. 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):

ElementChange in FA(3)
Seller and buyer identificationExpanded taxpayer role codes (including local government subordinate units JST and VAT groups GV)
VAT rate enumerationNew structured markers for 0% rates, exports, intra-Community supplies (WDT), and exemptions
Advance payment invoicesUpdated 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:

  1. Challenge request (AuthorisationChallenge): requested for the issuing entity's NIP.
  2. Challenge signature: signed with a qualified electronic signature (XAdES) or a KSeF authorization token encrypted with the Ministry of Finance public key.
  3. Interactive or batch session initialization: returns a temporary session token.
  4. Invoice transmission: submission of the FA(3) XML payload (encrypted with AES-256 in the v2 workflow).
  5. KSEFNR and UPO retrieval: asynchronous status polling until processingCode: 200, returning the ksefReferenceNumber (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 = 1 marker and the original NrKSeFFaKorygowanej (KSEFNR) are mandatory.
  • When correcting an invoice issued outside KSeF prior to the mandate, NrKSeFN = 1 is set alongside the original invoice number and issue date (NrFaKorygowanej, DataWystFaKorygowanej).

VAT rates in Poland​

RateCategory
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)
ZWVAT-exempt (zwolniony)

Official references​