KSeF for a small business: what actually changes
I went through the Polish Ministry of Finance’s KSeF pages so you know what applies to you, from when, and what you can take off your plate.
The short version
- You receive invoices through KSeF from February 1, 2026. You issue them from April 1, 2026, unless your invoices to businesses stay under 10,000 zł incl. VAT a month: then from January 1, 2027.
- An invoice only exists once it has a KSeF number. A PDF sent by email stops being the invoice; it’s a copy for reference.
- When KSeF or your internet is down, you issue offline and upload the file later. The deadlines are tight.
- Invoices from foreign suppliers and cash-register receipts don’t go through KSeF.
- Penalties for KSeF mistakes are postponed until January 1, 2027. That’s time to get your process in order, not to put it off.
KSeF (Krajowy System e-Faktur, Poland’s National e-Invoicing System) is a Ministry of Finance server that every business-to-business invoice in Poland passes through starting in 2026. You no longer send the invoice to your customer. You send it to the government, and your customer picks it up from there. It sounds like a small technical change, but it changes how you handle paperwork every day.
I’m relying only on what the Ministry publishes at ksef.podatki.gov.pl (in Polish). The KSeF dates have already moved several times, so for each one I give the source and the state of things as of the day I’m writing this: October 12, 2026.
When KSeF applies to you
The schedule, from the official page on when you have to issue invoices in KSeF:
- February 1, 2026: businesses with more than 200 million zł in sales (incl. VAT) in 2024 start issuing; from the same day, everyone receives invoices through KSeF;
- April 1, 2026: all other businesses start issuing;
- through December 31, 2026: you can issue invoices outside KSeF as long as their total sales (incl. VAT) stay under 10,000 zł a month; the invoice that crosses the limit, and every one after it, goes through KSeF (the page for businesses under 10,000 zł);
- January 1, 2027: the exceptions end and penalties for KSeF mistakes kick in, having been postponed until then.
Answer three questions:
Your group joined KSeF in the second wave. Every invoice to a business goes through the system.
- You receive invoices through KSeF from February 1, 2026, whatever your answers.
- Penalties for KSeF mistakes are postponed until January 1, 2027.
How an invoice travels now
Until now, an invoice was a file you emailed. With KSeF, your software sends the file to the Ministry, the system checks it and assigns a KSeF number. In online mode, the day it’s sent counts as the issue date, and the buyer is considered to have received the invoice the moment the system assigns its number (KSeF 2.0 Q&A).
- You issue it Your software builds the FA(3) file and sends it to KSeF. The day it’s sent is the issue date.
- KSeF KSeF checks it The Ministry accepts the file, or rejects it if the structure doesn’t match.
- 1234567890-20260412-0A1B2C3D4E5F-7A KSeF number The invoice gets its number. From this moment it exists, and the buyer counts it as received.
- The buyer pulls it The buyer’s business (or their accountant) downloads the file from KSeF. An email with a PDF is just a courtesy now.
- You issue it offline The invoice is created on your end with a QR code for verification. You can hand it to the customer right away.
- KSeF You send it in By the next business day at the latest, you upload the file to KSeF.
- 1234567890-20260412-0A1B2C3D4E5F-7A KSeF number Only now does the number arrive. For the buyer, the invoice counts as received on the day it’s assigned.
- The buyer pulls it Their software sees it in KSeF like any other invoice, just later.
What that means day to day:
- Issuing. You do it in your invoicing software or in the free KSeF Taxpayer App. An invoice without a KSeF number, issued during a period when you’re required to use the system, is a problem, not a formality.
- Receiving. Cost invoices no longer land in your inbox; they sit in KSeF. A supplier may still email you a PDF as a courtesy, but it’s a copy. If nobody checks KSeF, the invoices are there and you don’t know about them.
- Invoices from foreign suppliers. KSeF isn’t used to report purchases from foreign suppliers. An invoice for hosting or ads from Ireland still arrives by email, and you collect it the way you always have.
- Private customers. Invoices to individuals who aren’t businesses don’t have to go through KSeF; you deliver them however you’ve agreed, a PDF for example. If you do issue one in KSeF, the customer’s PDF carries a QR code they can use to verify it.
- Receipts. Through the end of 2026, invoices from a cash register, including receipts with a tax ID up to 450 zł, can be issued outside KSeF. A plain receipt sale to a private customer has nothing to do with KSeF.
When KSeF or the internet is down
The Ministry planned for three situations, each with its own deadline (KSeF 2.0 Q&A):
- offline24: you have no internet, or for some other reason can’t send right away; you issue on your end and upload without delay, no later than the next business day after issuing;
- KSeF unavailable (an announced outage, such as maintenance): you upload by the next business day after the outage ends;
- KSeF failure (declared by the Ministry): you have 7 business days from the end of the failure.
An offline invoice carries a QR code the customer can use to verify it without logging in to KSeF before it reaches the system. For the buyer, though, what counts is the date the KSeF number is assigned, meaning the day you uploaded it.
FA(3): an invoice a machine can read
KSeF doesn’t accept PDFs. It accepts an XML file in the FA(3) structure, which has been required since February 1, 2026. Every field has its own place and name: number, date, both parties’ tax IDs, line items, amounts. A PDF is just one possible way of displaying that file.
- Invoice number
- FV 41/10/2026
- Issue date
- Oct 12, 2026
- Seller, tax ID
- 1234567890
- Buyer, tax ID
- 0987654321
- Line item
- Boiler service, 1 unit
- Amount due
- 615.00 zł
<Faktura>
<Naglowek>…<KodFormularza>FA</KodFormularza>…</Naglowek>
<P_2>FV 41/10/2026</P_2> <P_1>2026-10-12</P_1> <Podmiot1>…<NIP>1234567890</NIP> <Podmiot2>…<NIP>0987654321</NIP> <FaWiersz><P_7>Serwis kotła</P_7> <P_15>615.00</P_15></Faktura> The buyer’s software reads the right side. It doesn’t have to guess which part is the number and which is the amount.
For the buyer, “an invoice in KSeF” means three things:
- it’s already in the system, no need to ask for it or dig through email;
- their software reads the amounts and tax ID without retyping or scanning;
- the date received is unambiguous: it’s the day the KSeF number was assigned.
That last one matters for deducting VAT and for payment terms. The “I never got the invoice” argument pretty much disappears with KSeF.
What your accountant does, and what you do
KSeF doesn’t shift anything to your accounting firm that used to be yours. What it changes is how documents get there.
You:
- issue sales invoices and make sure each one gets a KSeF number;
- grant permissions in KSeF; the Ministry says you can grant them to the whole accounting firm, and the firm assigns its own people;
- supply what KSeF doesn’t have: foreign invoices, receipts, contracts, bank statements;
- answer questions about costs: what this invoice is, what it’s for, whether it’s a business expense.
Your accountant:
- pulls cost and sales invoices from KSeF instead of waiting for you to send a batch;
- does the books and handles VAT;
- asks for a description wherever the invoice alone doesn’t say what a purchase was for.
What you can automate
Since invoices are now structured files in one place, the work around them becomes repetitive, which makes it a good fit for automation. KSeF has an API for software and integrators, so nothing has to be clicked through by hand.
- Pulling. Once a day, a program pulls new cost invoices from KSeF and saves them along with a PDF for viewing.
- Labeling. An invoice from a regular supplier gets a description and category by rule (“fuel, company car”); a new one comes to you with a question.
- Matching payments. Your bank statement gets matched to invoices by amount, tax ID and the invoice number in the transfer title; only the unmatched ones are left.
- Handing off to your accountant. Your accountant gets KSeF invoices on their own, but descriptions, foreign invoices from email and receipts can all land in one fixed place, without the “is that everything?” back-and-forth.
What I wouldn’t automate: issuing invoices with a script hacked together on the side. Invoicing software that supports KSeF and offline mode costs less than one lost number.
The most common mistakes
- “I’m small, this doesn’t apply to me.” The 10,000 zł limit includes VAT and is counted monthly; on top of that, every business has had to receive through KSeF since February 1, 2026.
- Sending a PDF instead of an invoice. If you’re required to issue in KSeF, an emailed PDF without a KSeF number isn’t an invoice as far as the system is concerned.
- Nobody checks KSeF. Cost invoices don’t arrive by email anymore, so payment deadlines and deductions slip through the cracks.
- Forgetting the offline upload. The deadline is the next business day, not “sometime.”
- Permissions for one person only. Your accountant goes on vacation and nobody at the firm can see your invoices.
- Waiting for the penalties. The postponement to January 1, 2027 is a year to learn from mistakes without sanctions. Better to make them now.
Finally, the simplest tip of all: look at KSeF yourself once a week, even if your software and your accountant handle everything. Five minutes is enough to see whether what’s in the system matches what you think you issued and bought.
What this means for you
- Check when you have to start issuing through KSeF, and put that date in your calendar along with January 1, 2027.
- Give your accounting firm permissions in KSeF: the whole firm, not one person.
- Make sure your invoicing software sends to KSeF and shows the KSeF number on every invoice.
- Decide who pulls cost invoices from KSeF and when; an email from the supplier is no longer your cue.
- Do a dry run of offline mode before you need it: issue, hand it over, upload.
- Keep collecting foreign invoices and receipts separately, the way you do now.