KSeF in Poland for IT B2B Expats: Step-by-Step Guide to Issuing Invoices in 2026
Running a Polish JDG as a foreign IT contractor? Learn how to issue a KSeF invoice Poland without expensive accounting software. Free FA3 XML generator, no signup.

The KSeF (Krajowy System e-Faktur — Poland's mandatory National e-Invoicing System) rollout has been delayed, but the obligation itself is not going away. For many foreign IT contractors running a Polish sole proprietorship (JDG — Jednoosobowa Działalność Gospodarcza), the news sparked real anxiety: "Do I need to hire a local accountant now? Buy some expensive Polish invoicing subscription?"
Relax. The answer is: no.
If you invoice 1–2 Polish clients per month, all you need is a simple, free FA3 XML generator that produces a valid KSeF-compliant file. Literally 2 minutes and zero subscription fees. This guide is your complete, English-language walkthrough — no Polish required.
Is KSeF Mandatory for IT Contractors on Ryczałt (Lump-Sum Tax)?
Yes — no exceptions, regardless of your tax form.
Many foreign freelancers operating in Poland assume that their tax form — whether Ryczałt (Lump-sum tax / flat-rate) or Liniówka (Flat income tax) — might exempt them from KSeF. It does not. Polish law is clear: if you run a JDG and issue invoices to Polish VAT-registered companies, you must issue structured e-invoices through KSeF.
What this means in practice for an IT contractor on Ryczałt (e.g. the popular 12% rate for IT services)?
- You still issue invoices as before — just in the standardized FA(3) XML format instead of a PDF.
- Your Polish client can deduct VAT only from an invoice registered in KSeF.
- Not sure where to start with KSeF Poland in English? Don't worry — the rules are identical for every type of JDG, regardless of your tax formula.
This is not a reason to panic. The obligation is real, but fulfilling it is genuinely trivial.
Why a Foreign IT Freelancer Doesn't Need Expensive Polish Accounting Software
Before you commit to a full-featured Polish accounting platform (whose complete packages often cost from ~50 PLN/month), ask yourself one question:
How many of their features will you actually use?
A typical B2B IT contractor on a Polish contract needs:
- ✅ Issue one invoice per month
- ✅ Generate an FA(3) XML file for KSeF
- ✅ Download a PDF for the client
But ends up paying for modules they'll never touch:
- ❌ Warehouse / inventory management
- ❌ ZUS (social security) calculations and asset depreciation
- ❌ Multi-user CRM
A free KSeF tool does everything you need — one thing, done correctly: generating a valid XML FA(3) file. That tool exists and costs nothing.
Structured Invoice (FA3) vs. Regular PDF: What Changes for B2B?
Let's demystify this. Many expats are intimidated by the term "structured invoice," but in practice it's just a plain-text file in XML format.
Think of it as two separate documents serving two different audiences:
| Regular PDF | Structured Invoice FA(3) XML | |
|---|---|---|
| For whom? | For humans (visually readable) | For the KSeF server (machine-readable) |
| Format? | Image / PDF document | Plain-text .xml with a strict schema |
| Mandatory? | No (but you can still email it to your client) | Yes — from the moment KSeF becomes fully active |
For you as a Polish e-invoicing B2B expat, a structured invoice contains the exact same data you already know: seller's NIP (Polish Tax ID), buyer's NIP, line items, VAT amounts. It's just packaged in structured XML code instead of a PDF.
Your role: enter the data → click "Download XML" → upload the file to the system. No coding. No accountant.
How to Generate an FA3 XML File and Send It to KSeF: A 3-Step Guide
This is the core of the guide. Below is a literal, step-by-step instruction you can follow right now — in under 5 minutes.
Step 1: Generate Your Invoice at ksefinvoices.com
Go to ksefinvoices.com — a free FA3 XML generator for KSeF Poland in English. No registration, no email required.
Fill in the fields:
- Seller: Your JDG data (NIP, address, company name)
- Buyer: Your client's data (NIP, company name)
- Line item: e.g., "IT services – April 2026", your Ryczałt rate, net amount
Your data is saved locally in your browser (Local Storage) — it never leaves your device.

Step 2: Download the FA3 XML File
Click the "Download" button in the top right corner, then select from the menu:
XML-KSEF FA3 ← this is exactly what you need
The service instantly generates a valid, schema-validated *.xml file compliant with the FA(3) specification published by the Polish Ministry of Finance. That's how to generate an FA3 XML file — done.
Step 3: Upload the File via the Free Government App (Aplikacja Podatnika KSeF)
Visit the Polish Ministry of Finance website and access the free Aplikacja Podatnika KSeF (Free government KSeF app — podatki.gov.pl).
- Log in using Profil Zaufany (Trusted Profile — Poland's free digital identity system, no qualified e-signature needed)
- Select "Send invoice"
- Upload the
.xmlfile you just downloaded
Done. Your invoice receives an official KSeF number. Your Polish client can pull it from their own accounting system, but as a courtesy it's still good practice to email them the PDF along with a note that you've issued the document. You just saved money by choosing a simple KSeF invoice tool that requires no SaaS subscription.
Start Now — For Free
Handling your KSeF obligation as a foreign B2B contractor in Poland is simpler than your next sprint.
You need:
- 2 minutes of your time
- Your JDG and client data
- A Profil Zaufany (Trusted Profile) account — you likely already have one
Generate your first valid FA(3) XML file at ksefinvoices.com — completely free, no registration, no subscription.