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).
A grace period runs until 31 December 2026 — formal KSeF errors don't yet carry administrative penalties. But from 1 January 2027, the sanctions under Article 106ni of the VAT Act take effect: a penalty of up to 100% of the VAT amount on an invoice issued outside KSeF (or up to 18.7% of the gross total 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 grace period through the end of 2026 to train your team calmly — from 2027, 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. Biurko makes that obvious — we clearly display the active environment, and you move from demo to production without changing how you issue invoices. Run the full process on fictitious data first, then go live with confidence. Try Biurko free for 14 days and test your invoicing flow before it counts for 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.
