Skip to content
In this article
For clinics

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.

3 minute readReviewed: April 26, 2026

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.

01

Log in to KSeF

Open ksef.mf.gov.pl and sign in with your Trusted Profile or a qualified certificate.

02

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.

03

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.

  1. Open the patient's visit for the day you're invoicing.
  2. Click "Issue invoice" — Heltio will fill in the patient, date, amount, and buyer NIP (if it's on the patient card).
  3. Check the data and click "Send to KSeF".
  4. 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).

Was this article helpful?

Didn't find an answer? Write to us.

Open the contact form