How to choose small business invoicing software in Poland?
Selecting invoicing software in Poland requires testing whether the tool automatically submits documents to KSeF and stores the KSeF number alongside the UPO. The temporary exemption for monthly billing under PLN 10,000 gross expires on 31 December 2026. Compliant software also inserts the original identifier into corrections and JPK_V7 records.

Last updated: 10 November 2026. The rules below are as of that date.
You issue an invoice in Poland, press send, and then wonder whether the tax authority's system actually took it. The KSeF number is nowhere to be seen, the official confirmation (UPO) sits in a government portal, and your Polish client asks whether the invoice has arrived. If you are choosing small business invoicing software in Poland, test two things first: does the invoice reach KSeF (Poland's national e-invoicing system) on its own, and do you see the KSeF number and UPO next to every invoice?
The clock matters. Until 31 December 2026 some very small taxpayers can still invoice outside KSeF. From 1 January 2027 everyone must use it.
I am the founder of Biurko and a developer, not a tax adviser, so I cite the Ministry of Finance (MF) and link every rule. Below: selection criteria, a 10-minute test and a checklist.
The KSeF number and UPO, in plain English
The KSeF number is a unique identifier of an invoice inside the system. According to the Ministry of Finance, KSeF assigns it automatically once the e-invoice has been sent and accepted. It comes back in the UPO, it is not part of the invoice XML file, and it is not the same as the invoice number from your own numbering (field P_2).
UPO stands for Urzędowe Poświadczenie Odbioru, the official confirmation of receipt. MF's description says it includes, among other things, the reference number of the session or package and the range and number of documents. That is why software should link the right UPO to each invoice. You should not have to dig through sessions to find it.
MF lists three situations where the number matters:
Corrections. A corrective invoice in the FA(3) structure must carry the KSeF number of the original invoice.
VAT reporting. Since 1 February 2026, the KSeF number goes into the records part of the JPK_V7M(3) and JPK_V7K(3) files (Poland's VAT return and ledger file), for both sales and purchases.
Payments. From 1 January 2027, active VAT payers who pay a structured invoice by transfer must put the KSeF number in the payment title. For several invoices, a collective identifier replaces it. In split payment (MPP), the number is part of the transfer title.
If your company has a Polish subsidiary, this last point lands on accounts payable. MF says the duty also covers third parties paying on the buyer's behalf, so a group treasury paying for the subsidiary is in scope.
Dates that matter when you pick software
As of 9 November 2026:
1 February 2026: receiving invoices through KSeF applies to everyone. Issuing is mandatory for companies with 2024 sales above PLN 200 million.
1 April 2026: mandatory issuing in KSeF covers all other taxpayers.
Until 31 December 2026: an exception lets you issue invoices outside KSeF if your sales on such invoices stay at or below PLN 10,000 gross in a month. The issue date counts. Once you exceed the limit, the invoice that crossed it and every later one go through KSeF (MF).
1 January 2027: KSeF for everyone. MF's own example is a florist issuing three invoices a month of PLN 1,500 to 2,500 each: from that date she issues them in KSeF too.
Penalties are a separate story. Under the law currently in force, penalties under Article 106ni of the VAT Act can be imposed from 1 January 2027 (Sejm print no. 3245), reaching up to 100% of the VAT shown on the invoice (rp.pl). On 6 November 2026, however, the Sejm passed a law postponing them to the end of 2027 (PAP/Bankier). It now goes to the Senate and needs the President's signature. The postponement covers penalties only, not the obligation itself. For your own situation, talk to a tax adviser.
What good small business invoicing software in Poland does
Six criteria, most important first. They apply equally to a one-person JDG (jednoosobowa działalność gospodarcza, a Polish sole proprietorship) and to a small sp. z o.o.
It sends the invoice to KSeF by itself
You issue the invoice and the software passes it to KSeF in the FA(3) structure. You do not export XML files or log in to a separate portal just to make the invoice go through. If sending takes extra steps, ask the vendor whether it can be automated.
It shows the sending status
Between "sent" and "accepted" there is a short wait, and an invoice can also be rejected. Good software shows the status in the invoice list and explains a rejection in plain language. Check that the explanation is in a language your team reads, because KSeF's own messages come in Polish.
It shows the KSeF number and UPO next to every invoice
Once an invoice is accepted, the KSeF number should be stored on the document and the UPO should be one click away.
Take a software contractor on a Polish B2B contract who bills one client PLN 18,450 gross a month (PLN 15,000 net plus 23% VAT). In March 2027 the client reports a mistake in the service description. The correction must carry the KSeF number of the original invoice. If the number sits on the invoice, that takes a minute. If not, the contractor goes hunting in the MF portal.
It handles corrections, JPK and transfers
The software should insert the original KSeF number into a correction on its own and carry numbers into the JPK_V7 records. From 2027 your buyers will put the number in their transfer titles, so someone will eventually ask you for it. Easy access saves time.
It lets you revoke KSeF access yourself
Ask how the software connects to KSeF and whether you can withdraw its access directly in KSeF. They are your invoices and your permissions. The software is only a user of them.
It receives purchase invoices and copes with KSeF downtime
Since 1 February 2026 you receive invoices through KSeF. Check that the software pulls them in, and ask what it does when KSeF is unavailable (the offline24 and emergency modes).
A ten-minute test before you commit
Run it on your first real invoice, or in the software's test environment if it has one. Do not issue fictitious invoices to production KSeF.
Issue an invoice and click nothing else. Did it go to KSeF by itself?
Watch the status. Does it switch to "accepted" after a moment?
Find the KSeF number on the invoice.
Download the UPO. Is it the original file from KSeF, not just the software's own confirmation?
Log in to MF's free application and compare the KSeF number.
Issue a correction. Did the original invoice's number appear on its own?
How Biurko handles it
We build Biurko from the point of view of a developer who runs his own JDG. After you issue an invoice, sending to KSeF runs in the background: Biurko tracks the status, stores the KSeF number on the invoice and downloads the UPO once the invoice is accepted. It connects to KSeF through a permission you grant in KSeF and can withdraw at any time in the KSeF portal or with Profil Zaufany (Poland's state e-identity). The interface is in English, Polish and Ukrainian.
The FREE plan includes unlimited sending to KSeF, and paid plans start at PLN 29 net per month. Run the test above on us, as you would on any vendor you are considering.
Checklist: choosing invoicing software for KSeF
The invoice reaches KSeF with no manual steps and no XML export.
I see the sending status and a readable reason for any rejection.
The KSeF number is stored on every accepted invoice.
I download the UPO from the invoice, as the original file from KSeF.
A correction picks up the original invoice's KSeF number by itself.
I can revoke the software's access to KSeF myself.
I know the plan limits and price, and KSeF sending is included.
Conclusion
What matters when choosing small business invoicing software in Poland is what happens after you click "issue": whether the invoice goes to KSeF on its own, whether you see the KSeF number and whether the UPO is at hand. The PLN 10,000 exception ends on 31 December 2026, and the postponement of penalties does not change the obligation.
If you are switching software before 1 January 2027, you can try Biurko on the FREE plan: no card, unlimited sending to KSeF.
FAQ
Do I need invoicing software to use KSeF?
No. The Ministry of Finance provides free KSeF applications, one web-based and one mobile. Invoicing software helps when you want sending, the KSeF number and the UPO handled automatically, with invoices flowing straight into VAT registers and JPK files.
Where do I find the KSeF number of an invoice?
KSeF returns the number in the UPO once the invoice is accepted, and you can also see it in the MF application. In good invoicing software it is stored on the document itself. Do not look for it in the invoice XML: according to MF, the KSeF number is not an element of the invoice file.
Is the KSeF number the same as the invoice number?
No. The KSeF number is a separate identifier that the system assigns after accepting the invoice. It differs from the number in your own numbering (field P_2). It appears in corrections of the original invoice, and from 1 January 2027 buyers put it in the transfer title.
When do KSeF penalties start?
Under the law currently in force, from 1 January 2027. On 6 November 2026 the Sejm passed a law postponing them to the end of 2027, but it still needs the Senate and the President's signature. The obligation to use KSeF from 1 January 2027 does not change. Status as of 9 November 2026.
Does the PLN 10,000 KSeF limit apply in 2027?
No. It runs until 31 December 2026. Until then you can issue invoices outside KSeF if their gross total in a month stays within PLN 10,000. The issue date counts. After you exceed the limit, the obligation applies from the invoice that crossed it. From 1 January 2027 the exception ends.
Tags
Previous article
How to Choose KSeF Invoicing Software for a Small Business?