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
- Treating the PDF as the invoice — it's the XML in KSeF that counts.
- Not storing the UPO — that's your receipt; keep it.
- Wrong/again-used number — numbering must stay unique and consistent.
- 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.