# Poland KSeF from 1 January 2027: what invoicing software must change (fines now planned for 2028)

If you build invoicing, POS or payment software with Polish customers, this post gives you what changes on 1 January 2027 when KSeF becomes mandatory for every business, what the government decided on 20 October 2026 about fines, and a checklist, all from official KSeF sources.

## What changed on 20 October 2026

The Council of Ministers adopted the draft VAT amendment known as UD477. It moves fines for not using KSeF (or using it wrongly) from **1 January 2027** to **1 January 2028**. KSeF itself stays mandatory: in 2027 the tax administration will first remind a business individually and then check its VAT if it doesn't react. The bill still has to pass the Sejm and the Senate and be signed; it is meant to enter into force on 31 December 2026. Until it is published, plan as if the current dates apply.

## Timeline

| Date | What applies |
|---|---|
| 1 Feb 2026 | KSeF mandatory for issuing for businesses with 2024 sales above PLN 200 million (incl. VAT); every business must receive in KSeF |
| 1 Apr 2026 | KSeF mandatory for issuing for all other businesses, including VAT-exempt ones |
| Until 31 Dec 2026 | Up to PLN 10,000 a month of invoiced sales may still be invoiced outside KSeF; cash-register invoices and receipts with the buyer's NIP (up to PLN 450) stay outside KSeF |
| 1 Jan 2027 | KSeF for everyone; cash-register invoices end; transfers between active VAT payers must quote the KSeF number (art. 108g) |
| 1 Jan 2028 | Fines start, if bill UD477 passes (today's law: 1 Jan 2027) |

## What a KSeF invoice is

- The **FA(3)** structure, a Polish XML schema. It is not UBL, CII or Peppol BIS.
- It counts as issued on the day it is sent to KSeF. KSeF returns a **KSeF number** in the official receipt (UPO); it is not in the XML and differs from your own invoice number (field P_2).
- Delivered through KSeF to Polish business buyers. Foreign buyers without a Polish establishment and consumers get it in an agreed way (for example a PDF) with a QR code and the KSeF number.

## Checklist before 1 January 2027

- **Drop the PLN 10,000 logic.** Every B2B invoice now goes through KSeF.
- **POS and shop systems:** cash-register invoices and receipts with a NIP stop counting as invoices. Issue business invoices for register sales in KSeF.
- **Store the KSeF number** per invoice from the UPO and pass it to accounting and payments.
- **Payment files:** put the KSeF number (or a KSeF collective identifier for several invoices) in the transfer title, also in split-payment (MPP) messages, when both sides are active VAT payers; the payee's status comes from the official VAT white list on the payment day.
- **Offline modes:** offline24 lets you issue outside KSeF and send by the next business day; an offline invoice handed over outside KSeF needs two QR codes (OFFLINE and CERTYFIKAT), and the second needs a KSeF certificate obtained in advance.
- **Foreign buyers:** still issue in KSeF, then send a PDF with the KSeF QR code and number.
- **Receiving:** every Polish business has had to receive in KSeF since 1 February 2026.

## Fines once they apply

Art. 106ni of the VAT Act: up to **100% of the VAT** on an invoice issued outside KSeF against the rules, or up to **18.7% of the total** when the invoice shows no VAT. Not tax advice.

## Routing check in a multi-country app

*Disclosure: I work on W System, which makes this API.* W System does not submit to KSeF and does not create or validate FA(3). In a multi-country invoicing app, `GET https://api.wsystem.dev/einvoice/route?id=PL7740001454` checks the buyer's VAT number in VIES, looks it up in the Peppol Directory and returns the country's mandate, so your app knows a Polish buyer needs KSeF FA(3) while a Belgian one needs Peppol BIS 3. Free for 20 calls a day per IP.

The full version with sources, FAQ and the live response is at https://wsystem.dev/poland-ksef-2027-invoicing-software.
