How to issue an invoice in KSeF
KSeF is mandatory from 1 July 2026. Heltio talks to the Ministry of Finance system for you — this is a walkthrough of what the process looks like on your side.
What KSeF is and who it applies to
KSeF (Krajowy System e-Faktur — Poland's national e-invoice system) is the Ministry of Finance's central platform for issuing and receiving structured VAT invoices. From 1 July 2026 it is mandatory for all active VAT taxpayers — including most physiotherapy clinics.
The good news: in Heltio you don't have to log in to KSeF manually or configure qualified certificates. You issue an invoice the same way as before, click "Send to KSeF", and we do the rest.
Before you issue the first invoice
One-time setup. Takes about 10 minutes.
Company data configuration
Open Settings → Company data and check that the following fields are complete:
- Full name (the same as in CEIDG/KRS)
- NIP (10 digits, no dashes)
- Registered address with postcode
- Bank account number (IBAN)
If any field is empty, KSeF will reject the first invoice with a validation error. Better to check now.
Generating the UPO token
The UPO token is the key that lets Heltio sign invoices on your behalf. It's generated once, on your taxpayer account in KSeF.
Log in to KSeF
Open ksef.mf.gov.pl and sign in with your Trusted Profile or a qualified certificate.
Generate a token in the Permissions section
Select the "Issuing invoices" permission for the integrator "Heltio sp. z o.o." (NIP: 525-…). Copy the generated token.
Paste the token into Heltio
Go back to Settings → Payments → KSeF, paste the token, and click "Save". Heltio will check that it works immediately.
Issuing an invoice — step by step
Issuing an invoice is the same as before — with one difference at the end.
- Open the patient's visit for the day you're invoicing.
- Click "Issue invoice" — Heltio will fill in the patient, date, amount, and buyer NIP (if it's on the patient card).
- Check the data and click "Send to KSeF".
- After a few seconds the status changes to "Accepted by KSeF" (green icon) — done.
What to do when an invoice is rejected
If KSeF rejects an invoice, the status changes to "Rejected" (red icon) and Heltio shows the reason. Most common causes:
- Mismatched company data — name or NIP doesn't match the Ministry of Finance database. Check Settings → Company data.
- Invalid buyer NIP — KSeF validates NIPs in real time. Fix the NIP on the patient card and resend.
- UPO token expired — the token is valid for 12 months. Generate a new one in KSeF and paste it into settings.
Most common errors
From our experience: 80% of rejections are a typo in the NIP or a company-name mismatch. Another 15% are an expired token. The rest is a technical outage on the KSeF side (rare, but you'll see it in our system status).