Skip to content
FakturAI

·

How to issue an invoice in KSeF in 2026 — 3 ways

An invoice in KSeF is a structured XML file in the FA(3) format, not a PDF. You don't have to write the XML yourself, though — just pick one of three ways, depending on how many invoices you issue and what your company works in.

Way 1: the Ministry of Finance's free tools

The Ministry provides the KSeF 2.0 Taxpayer Application (Aplikacja Podatnika KSeF 2.0) and the KSeF 2.0 mobile app free of charge. You fill in an invoice form and the application prepares the XML and sends it to KSeF. You don't need paid software to use KSeF.

Who it suits: you issue a few invoices a month. The Ministry's explanation (in Polish).

Way 2: an invoicing program

Popular invoicing and accounting programs support KSeF — usually as part of the subscription. The program issues the invoice, sends it to KSeF and downloads your purchase invoices.

Who it suits: you invoice regularly and don't have a system of your own where invoices are created.

Way 3: integrating your own system through the KSeF API

If invoices are created in your company's own system — an ERP, an online shop or custom software — it can be connected to KSeF directly through the API. The Ministry publishes the KSeF 2.0 API documentation and official libraries for C# and Java.

How it works technically

  1. Authentication — the system logs in to KSeF with a KSeF token or the company's certificate.
  2. Session — the system opens a session and hands over an encryption key (AES-256, encrypted with the Ministry's RSA public key).
  3. FA(3) XML — the invoice is converted into XML that conforms to the official FA(3) schema, encrypted and sent.
  4. Status and KSeF number — KSeF verifies the invoice; an accepted invoice gets a KSeF number, a rejected one gets an error description.
  5. UPO — the official confirmation of receipt (urzędowe poświadczenie odbioru) is worth storing with the invoice as proof of acceptance.

Who it suits: you don't want to retype invoices into another program, and your system also has to handle purchase invoices and — from 1 January 2027 — the KSeF number in transfers.

Always test an integration on the KSeF test environment first. An invoice accepted on the production environment is a real invoice and can't be “taken back” — a mistake is fixed with a corrective invoice.

Which way to choose

  • A few invoices a month — the free KSeF 2.0 Taxpayer Application.
  • Regular invoicing without your own system — an invoicing program.
  • Invoices are created in your own system — integration through the KSeF API.
Penalties for breaching the KSeF rules: under current law from 1 January 2027, up to 100% of the VAT on the invoice. The government has adopted a bill that extends the penalty deferral to 31 December 2027 (status as of October 2026). The obligation to use KSeF applies regardless of penalties.

This English version is a translation of the Polish original, provided for convenience. It describes Polish law, and the Polish version prevails. It is for information only and is not tax advice.

How to issue an invoice in KSeF in 2026 — 3 ways | FakturAI