KSeF Environments: Where to Practice Without Breaking Anything
Picture this: you're training a new team member to issue invoices. They click "send" on a test invoice — and it lands in the production KSeF as a real document, complete with made-up data. Or the opposite happens: they practice in demo, everything works, but the invoices are nowhere to be found in the taxpayer app, because they're looking at a completely different environment. KSeF (Poland's national e-invoicing system, Krajowy System e-Faktur) has been mandatory since 1 February 2026 for the largest taxpayers and since 1 April 2026 for other taxpayers (the smallest from 1 January 2027). Under the current act, penalties under Article 106ni of the VAT Act apply from 1 January 2027, and on 16 September 2026 the Ministry of Finance announced it will move them to 1 January 2028; that is a bill not yet passed. Production invoices are already real accounting documents. So before anyone on your team starts clicking "send," it's worth knowing where you can safely practice. This article explains the three KSeF environments — test, demo and production — what each is for, and how not to mix them up.

Three environments, three separate worlds
KSeF runs three completely separate environments. Each has its own addresses, its own data, and its own purpose. This is the key point: an invoice sent to one environment will not appear in the others. In short:
Test (TE) — for checking technical integration and API communication.
Demo / pre-production (TR) — for practising real-world scenarios with no tax consequences.
Production (PRD) — where real invoices go, with full legal effect.
Each environment also has its own Aplikacja Podatnika (the Ministry of Finance's free "Taxpayer Application" for issuing and receiving invoices). This is a common source of confusion: you log into one app, but the invoice was sent in a different environment — so it simply isn't there.
Test environment — the integrator's sandbox
The test environment (labelled TE) is mainly for developers and software vendors. It's used to check API communication, validate the FA(3) invoice structure, handle errors, and work through the technical side of the system.
Invoices sent here have no tax or legal effect — and crucially, they must contain fictitious data only (KSeF 2.0 Taxpayer Application — test version, Ministry of Finance).
The KSeF 2.0 test API went live on 30 September 2025, and the test version of the Taxpayer Application followed on 3 November 2025 (Open testing of the KSeF 2.0 API, gov.pl). If you're building your own integration or want to verify a new technical scenario, this is the place.
For a typical company — especially a foreign business with a Polish subsidiary — the test environment is rarely the right choice. To learn the workflow itself, demo is a better fit.
Demo environment — where most businesses practice
Demo (pre-production, labelled TR) is the environment most companies and accounting offices actually care about. It behaves almost identically to production, but without consequences. Here you can safely practice:
issuing invoices and having them assigned a KSeF number,
corrections and advance (prepayment) invoices,
receiving purchase invoices from your contractors,
retrieving the UPO (Urzędowe Poświadczenie Odbioru, the official acceptance confirmation) for a single invoice or a batch.
The data is fictitious, so nothing breaks. Demo is currently the environment most widely used to prepare before going live in production.
One practical note: demo tends to be slower and more rate-limited than production, especially during bulk imports or many parallel operations. That's normal — the demo environment isn't scaled like the production system. If something takes longer than usual, don't panic and don't resend the same invoice five times.
Production environment — this is the real thing
Production (PRD) runs on the real data of your company and your contractors. Every document sent here is an official e-invoice in KSeF, with full tax effect. The moment a KSeF number is assigned is also the moment the invoice is issued and delivered — there's no quietly "undoing" it later.
Since 1 February 2026, the production environment is accessible only via the new addresses. The old addresses for all environments were switched off on 17 January 2026, with no further redirects (Ministry of Finance notice on KSeF environment address changes).
Under the current act, penalties under Article 106ni of the VAT Act apply from 1 January 2027. On 16 September 2026 the Ministry of Finance announced it will move them to 1 January 2028; that is a bill not yet passed, and it moves only the penalties, not the obligation to use KSeF. The penalty is up to 100% of the VAT amount on an invoice issued outside KSeF (or up to 18.7% of the total amount due for invoices without VAT) (Rules governing KSeF, ksef.podatki.gov.pl; legal basis: Act of 5 August 2025, Journal of Laws 2025 item 1203). Production is no place for "test" invoices — it isn't a training ground.
"I can't see my invoices" — the most common mistake
If you've issued an invoice and can't find it in the Taxpayer Application, the cause is almost always trivial: you're checking the wrong environment. A demo invoice won't show up in production, and vice versa. Each environment has its own app, its own permissions, and its own certificates.
The second common pitfall is habit. After weeks of practising in demo, it's easy to forget to switch to production on go-live day — or, the other way around, to send a fictitious invoice to production. That's why good invoicing software should clearly show which environment you're currently working in.
Current addresses for all environments (2026, per the Ministry of Finance):
| Environment | API | Taxpayer Application | QR code visualisation |
|---|---|---|---|
| Test (TE) | api-test.ksef.mf.gov.pl | ap-test.ksef.mf.gov.pl | qr-test.ksef.mf.gov.pl |
| Demo / pre-production (TR) | api-demo.ksef.mf.gov.pl | ap-demo.ksef.mf.gov.pl | qr-demo.ksef.mf.gov.pl |
| Production (PRD) | api.ksef.mf.gov.pl | ap.ksef.mf.gov.pl | qr.ksef.mf.gov.pl |
Note the small detail that saves you from mistakes: production has no prefix in its address (api., ap.), while the practice environments do (api-test., ap-demo., and so on).
How to practise in KSeF without making a mess — checklist
Use demo (TR) to learn the workflow, not production. Leave the test environment (TE) to integrators.
In demo and test, use fictitious data only — names, tax IDs (NIP), amounts.
Before sending a production invoice, confirm which environment you're in. One glance is enough.
Don't look for demo invoices in the production Taxpayer Application — they're two different worlds.
After 17 January 2026, use only the new addresses (
*.ksef.mf.gov.pl); the old ones no longer work.Use the time through the end of 2026 to train your team calmly — from 2027 (or from 2028, if the announced move passes), mistakes can get expensive.
Conclusion
The three KSeF environments aren't a complication — they're a safety net: test for integration, demo for practice, production for real invoices. The whole trick is always knowing where you are. In Biurko the environment is set by the address you work at, not by a switch: an account on app.biurko.io sends invoices to production KSeF, so every invoice you send there is real. To practise without legal effect, use the Biurko demo (demo.biurko.io, 7-day access through the form on biurko.io, the KSeF demo environment) with fictitious data, then go live on your app.biurko.io account. Create an account in Biurko (every new company gets 14 days of the TEAM plan without a card, then moves to the free FREE plan), but send your first invoices there only when they are meant to be real.
FAQ
What's the difference between the test and demo environments in KSeF? The test environment (TE) is mainly for integrators checking API communication and invoice structure. Demo (TR) is for practising real scenarios — issuing, corrections, receiving documents — in conditions close to production. Both run on fictitious data and have no tax effect.
Do invoices issued in the demo environment have tax consequences? No. Invoices in the demo and test environments have no tax or legal effect. They exist purely for learning and testing, which is why they must contain fictitious data. Only invoices sent to the production environment carry tax consequences.
Why can't I see my invoices in KSeF? The most common reason is checking the wrong environment. An invoice sent to demo won't appear in the production Taxpayer Application, and vice versa. Make sure you're logging into the app for the correct environment and that your software sent the invoice where intended.
What are the current KSeF environment addresses? Since 17 January 2026, a unified addressing scheme applies: production is api.ksef.mf.gov.pl (Taxpayer Application: ap.ksef.mf.gov.pl), demo is api-demo.ksef.mf.gov.pl, and test is api-test.ksef.mf.gov.pl. The old addresses were switched off with no redirects.
Can I practise in KSeF using my company's real data? In the test and demo environments, use fictitious data only — that's a Ministry of Finance requirement. You work with real data only in the production environment, where every invoice is an official document with full tax effect.
Tags
Previous article
KSeF emergency mode vs offline24 — the difference and when each saves you
Next article
How to Grant KSeF Permissions to Staff or an Accountant