← Back to all posts
· 3 min read · eurobillr team

How to issue a KSeF invoice (step by step)

Issuing an invoice through KSeF is different from emailing a PDF — the invoice is 'issued' the moment KSeF accepts it. Here's the exact sequence and what to keep.

How to issue a KSeF invoice (step by step)

In KSeF an invoice isn't "issued" when you save a PDF — it's issued the moment KSeF accepts it and returns a number. Here's the whole sequence, whether you do it through software or the Ministry's tools.

Step 1 — Prepare the invoice data

You need the usual VAT-invoice content, but it must map to the FA_VAT schema:

□ Seller + buyer NIP (Polish tax IDs)
□ Invoice number and issue date
□ Line items: description, quantity, net unit price
□ VAT rate and amount per line/rate
□ Net, VAT and gross totals
□ Payment details

Step 2 — Authenticate to KSeF

Identify as the taxpayer (or authorised software) using a qualified signature/ seal, a trusted profile, or an authorisation token. This opens a session. See KSeF integration.

Step 3 — Build the FA_VAT XML

Your software converts the invoice into the structured FA_VAT format and validates it against the schema. A PDF, if you produce one, is only a visualisation — the legal invoice is the XML.

Step 4 — Submit it to KSeF

Send the XML in your session (interactive) or as part of a package (batch). KSeF validates it. If a field or rule fails, it's rejected with a reason — fix and resubmit.

Step 5 — Get the KSeF number

On acceptance, KSeF assigns a unique KSeF number. This is the moment the invoice is legally issued — not when you clicked "create".

Step 6 — Collect the UPO

Retrieve the UPO (official confirmation of receipt). Store it, along with the KSeF number and the submitted XML, against your invoice record. This is your proof.

Step 7 — The buyer retrieves it

You don't email the invoice for domestic B2B — the buyer accesses it directly in KSeF via their NIP. (You may still share a PDF visualisation as a courtesy.)

Corrections

To correct a KSeF invoice you issue a correcting invoice (faktura korygująca) through KSeF — you don't edit or delete the original. Same principle as a Peppol credit note.

The common mistakes

  1. Treating the PDF as the invoice — it's the XML in KSeF that counts.
  2. Not storing the UPO — that's your receipt; keep it.
  3. Wrong/again-used number — numbering must stay unique and consistent.
  4. Testing in production — use the test/demo environment first.

Where Eurobillr fits

Eurobillr issues structured e-invoices on the EU/Peppol side (Belgium, France via an accredited platform, and more) with the same "build valid XML → submit → get confirmation → store proof" flow. KSeF is Poland's national channel; for domestic Polish issuance you'll use KSeF directly or a KSeF-connected tool. If you also invoice across the EU from Poland, Eurobillr covers that side.

Next: KSeF for foreign companies · KSeF for freelancers.

Written by eurobillr team. Have feedback? Reply to any release email.