Invoice Stuck in KSeF — How to Check Status and What to Do

this article shows you how to tell whether an invoice actually reached KSeF (Poland's national e-invoicing system) or merely "left" your software. We explain the difference between the reference number and the KSeF number, the three states an invoice can be in, where to check status (in your software and in the free official Taxpayer App), and — most importantly — when to resend and when not to, so you don't create a mess.

8 min read 102 views
Invoice Stuck in KSeF — How to Check Status and What to Do

You know the moment: you click "Send," your software shows "sent," and there's no KSeF number next to it. The invoice is stuck. Your client is waiting, and you don't know whether the document is already in the system or jammed somewhere along the way — or whether it's safe to send it again.

As of 2026 this is no longer a theoretical question. KSeF (Krajowy System e-Faktur, Poland's mandatory e-invoicing system) is live, and from 1 January 2027 penalties apply for failing to issue an invoice through the system (Article 106ni of the VAT Act). "Did this invoice actually reach KSeF?" stops being about peace of mind and becomes about your books.

Below I'll walk through how to check invoice status in KSeF step by step, how to read where a document is stuck, and how to make a decision instead of nervously hitting "Resend."

"Sent" is not the same as "accepted"

The single biggest misunderstanding here: sending the file ≠ the invoice being accepted. These are two different events, and even people who have worked in KSeF for months mix them up.

When you send a document, the system assigns a reference number — an identifier for the transmission itself (an online session or a batch package). It lets you track status and download confirmation, but it is not the invoice's KSeF number.

The KSeF number appears only after the file has been verified and accepted. The system checks that the sender was authorized and that all fields required by the FA(3) schema are present; if everything checks out, the invoice is accepted and automatically receives a unique number identifying it in the system. Only an invoice with a KSeF number is legally considered issued.

Second thing that's easy to forget: KSeF doesn't push notifications. It's your software that has to check status regularly. So if you see "sent" and then silence, it doesn't mean something broke. It means someone — you or your tool — has to ask the system for the result.

The three states your invoice can be in

When an invoice is "stuck," it's really in one of three states:

State What you see What it means Processing Reference number present, no KSeF number yet The transmission arrived; the system hasn't finalized it. Usually a matter of seconds, longer under load Accepted KSeF number assigned, UPO available Success. The document is legally in circulation and can be booked Rejected No KSeF number, an error message instead Validation failed. The invoice formally does not exist — fix the error and resend

There's a hidden fourth case: sometimes there's no reference number at all. Then the transmission never reached KSeF (e.g. the session expired or the connection dropped) and you simply send the document again.

The key: until you read which of these states the invoice is in, you don't know what to do. That's why the first step is always to check the status, not to resend.

How to check whether an invoice is in KSeF

1. In your invoicing software

The simplest path first. In most tools the KSeF number lands in a field like "KSeF number," "KSeF ID," or in the document's event history. If you see a number there and a status of "accepted," you're done — you can download the UPO.

If the status is "pending processing" or "sent / UPO not received," use the refresh-status function (named variously: "Check KSeF status," "Fetch data from KSeF"). The tool queries the system based on the reference number and, if the KSeF number has been assigned, pulls it in automatically.

2. In the official Taxpayer App (free, from the Ministry of Finance)

The Ministry of Finance provides a free Taxpayer App KSeF 2.0 (Aplikacja Podatnika KSeF, web version at ap.ksef.mf.gov.pl plus a mobile app). After logging in under your own company context, you'll see the list of invoices sent on behalf of your business and can download the UPO.

There's also a handy anonymous invoice lookup — no login required, by entering the KSeF number and a few details of the document. Note: anonymous lookup requires that you already have the KSeF number, so it's better for confirming a specific, known invoice (e.g. one from a supplier) than for finding the one that just got stuck without a number.

3. A quick example (illustrative — replace with real data if you have it)

An accounting office batch-sends a package of 40 of a client's invoices. After sending, the package has a reference number, but 3 documents don't yet have a KSeF number. Instead of resending those 3, the accountant refreshes the package status: 2 invoices finalized after a few dozen seconds, and 1 was rejected with an invalid buyer NIP (Polish tax ID) error. Conclusion: only that one needs correcting and resending — the other 39 are already in KSeF.

What to do when an invoice is stuck — decide, don't panic

The worst thing you can do is blindly hit "Resend" a few times. Automatically resending without checking status increases the mess and makes it harder to work out later which document is the right one. Instead:

  1. Check the status (one of the three ways above). This is always the first move.

  2. "Processing"? Wait and refresh after 1–2 minutes. The KSeF number usually appears quickly, but under heavy system load it needs a moment.

  3. KSeF number present? Done. Save the KSeF number, download the UPO (or confirm your software did it automatically), and treat the document as closed.

  4. Invoice rejected? The KSeF number won't appear — fix the error shown in the message and send the corrected document. This is not a duplicate, because the previous version never entered the system.

  5. You resent and got "Duplicate invoice"? That's good news: it means the first transmission did reach KSeF. Find the KSeF number from that original document and attach it to the invoice — you don't have two invoices, you have one that was accepted.

This one rule — status first, action second — saves the most nerves and keeps your archive clean.

What it looks like when the system does it for you

A good tool takes this whole status dance off your plate. In Biurko every transmission runs through an automatic cycle: QUEUED → SUBMITTED → PROCESSING → ACCEPTED / REJECTED. The system polls KSeF itself and translates the raw processing codes into plain language:

200          → accepted, KSeF number assigned
100–399      → in flight (queued / verifying / awaiting UPO)
400 and up   → rejected (semantic, business, or infrastructure error)
440          → "Duplicate invoice" — the document is already in KSeF

The KSeF number and UPO are fetched automatically (the UPO is sometimes available a few seconds after acceptance — Biurko retries), and invoices that need attention — rejected, or with an unusual result — land in a separate "needs review" bucket instead of hanging unexplained. Instead of asking "did this invoice go through?", you see the answer right away. Everything you'd otherwise do by hand happens in the background.

Checklist: invoice stuck — what to do

  • Don't resend blindly. Check the status first.

  • Distinguish the reference number from the KSeF number. The first is about the transmission, the second about the invoice.

  • Refresh the status in your software, or log in to the Taxpayer App and check the document.

  • "Processing"? Wait 1–2 min and check again.

  • KSeF number present? Save it and download the UPO — only now is the document closed.

  • Rejected? Fix the error from the message and resend (it's not a duplicate).

  • "Duplicate" after resending? The first transmission succeeded — recover the KSeF number from the original.

Summary

A "stuck" invoice is almost always in one of three states: it's being processed, it was accepted, or it was rejected. The whole skill is reading which one — instead of guessing and sending the document a fifth time. The KSeF number and UPO are your hard confirmations; the reference number is just a trace of the transmission.

In Biurko, every invoice's status is visible immediately, KSeF codes are translated into clear messages, and the UPO is fetched automatically. Try the 14-day free trial at biurko.io and stop guessing whether your invoice arrived.


FAQ

How do I know an invoice definitely reached KSeF? By the assigned KSeF number and an available UPO. The KSeF number is a unique identifier given to an invoice only after it's been accepted and verified. A "sent" status or a reference number alone don't confirm this — they're just a trace of the transmission, not proof of acceptance.

Is an invoice without a KSeF number valid? No. Until an invoice receives a KSeF number, it's not considered issued under the regulations. If the number doesn't appear, the document is either still being processed or was rejected — in the second case you need to fix the error and resend it.

My invoice has been stuck in KSeF for a few minutes — should I resend? Refresh the status first. The KSeF number usually appears quickly, but it can take a moment under heavy system load. Resending blindly risks a mess; if the original transmission succeeded, the second one will return a duplicate message.

What does "Duplicate invoice" mean when sending to KSeF? It means the invoice is already in the system — most likely from an earlier, successful transmission you weren't aware of. It's not an error to fix: just find the KSeF number of that original document and attach it. You don't have two invoices, only one that was accepted.

Where can I check invoice status if I don't trust my software? In the free Taxpayer App KSeF 2.0 (web or mobile) provided by the Ministry of Finance. After logging in you'll see invoices issued on behalf of your company and can download the UPO. There's also anonymous invoice lookup by KSeF number.

Tags

#KSeF
Share

Previous article

KSeF Transition Period: Mandatory Now, Penalties From 2027

Next article

5 KSeF Myths Businesses Still Believe in 2026

Stay in the Loop

Get notified when we publish new articles. No spam, unsubscribe anytime.

We respect your privacy. Unsubscribe at any time.

Cookies

We use cookies to keep the service running and — with your consent — to improve it. You can accept all, reject the optional ones, or customize your choices. Cookie Policy