KSeF Offline QR Codes on Invoices: What They Are and How They Work
During a KSeF (Poland's national e-invoicing system) outage you issue invoices outside the system, but each one must carry two QR codes: one identifies the document so a buyer can verify it, the other — generated from a KSeF Offline certificate — proves who issued it. You still have to upload the invoice to KSeF: in offline24 mode by the next business day, in emergency mode within 7 business days of the outage ending. Missing that deadline triggers penalties under Article 106ni of the VAT Act: under the current act from 1 January 2027 (the Ministry of Finance has announced it will move them to 1 January 2028; that is a bill not yet passed).

KSeF was designed to run around the clock. In reality, any IT system goes down sometimes — and your office internet has a habit of failing exactly when a client is waiting for an invoice. Polish law planned for this: in those situations you issue the invoice in one of several special modes, and the document carries QR codes: the first marked "OFFLINE", the second marked "CERTYFIKAT".
The catch is that few people know what those codes actually do or why there are two of them. And this is not a cosmetic detail — uploading an invoice to KSeF late can cost up to 100% of the VAT. 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.
This article explains what each QR code is for, what each of them contains, how the offline24, offline, emergency and total-outage modes differ, and the deadline for getting the document into KSeF.
Why an offline invoice carries two QR codes
When an invoice is created outside KSeF, the system cannot confirm two things in real time: that the document exists and that you are the one who issued it. So the rules require two independent QR codes, each doing a different job.
This is not double protection "just in case." Each code has a distinct function, and without either one the offline invoice is incomplete.
Code I — the identification QR (on every invoice)
The first code is for identification. Your invoicing software generates it automatically. The code holds a KSeF verification link with the seller's NIP (Polish tax ID), the issue date and the SHA-256 hash of the invoice file; it contains no invoice number or amounts. Under the code sits either the KSeF number or the word "OFFLINE".
The buyer can scan the code with a phone and check the invoice in KSeF, but only once it has been uploaded. Code I is on every invoice, including those issued online (then the signature is the KSeF number); in offline mode the word "OFFLINE" stands under it — a signal that the document was issued in a special mode and is still waiting to be uploaded.
This code asks nothing of you beyond a correctly generated FA(3) structure — the mandatory invoice schema since 1 February 2026.
Code II — the QR from the KSeF Offline certificate
The second code handles authentication, and it causes the most trouble. It is built from a KSeF certificate of the Offline type, is signed "CERTYFIKAT" and appears only on offline invoices. It is a separate certificate from the one you log in to KSeF with (the Authentication type), and one certificate cannot serve both purposes. Its job is to prove that the invoice was issued by an authorized party — with no connection to the system, relying on a trusted certificate instead.
Here is the crux: without an Offline certificate the second QR code is not produced. Biurko will still issue the offline invoice, with one code (Code I) and a warning, but an offline invoice handed to the buyer outside KSeF should carry both codes, so do not hand such a document to the buyer before it reaches KSeF.
The Ministry issues the certificate: you can order it in the Certificate and Permissions Module (MCU) of the KSeF 2.0 Taxpayer Application, or in Biurko, on the KSeF certificates screen (Biurko orders both the Authentication and the Offline certificate from the Ministry). The certificate is valid for about two years, so it is worth noting its expiry date in advance.
The four special modes and upload deadlines
"Offline mode" is really several separate procedures. They differ by cause and — most importantly — by the deadline for uploading the invoice to KSeF.
| Mode | When to use it | Deadline to upload to KSeF |
|---|---|---|
| offline24 | Voluntary, any time — e.g. no internet, KSeF running slow, your own choice | By the next business day after the issue date |
| offline (unavailability) | The Ministry of Finance announces a planned maintenance break in the BIP (official public bulletin) | By the next business day after the break ends |
| emergency (awaria) | The Ministry announces a KSeF outage in the BIP or via API | Within 7 business days of the outage ending |
| total outage | Extraordinary situation (Art. 106ne(3), Art. 106ng; e.g. natural disaster) | No obligation to upload; paper/PDF without FA(3) or QR is allowed |
Two points worth remembering. First, the issue date stays whatever you put on the document — even if you upload it later. Second, in emergency mode the 7-day clock runs from the end of the outage, and if the Ministry announces another outage during that window, the count restarts from the end of the second one.
Example: you issue an invoice on 8 July 2026 in offline24 mode because the office internet went down. The issue date is 8 July. You must upload the invoice to KSeF by 9 July at the latest (the next business day). If you don't, the issue date stays the same — but you expose yourself to a penalty under Article 106ni (under the current act from 2027).
The current rules for all special modes are published at ksef.podatki.gov.pl.
Where Biurko fits in
At Biurko we built offline handling so you're not left with manual work at the worst possible moment:
Certificates ordered in Biurko. Biurko does not use KSeF tokens: you connect with Profil Zaufany, your own KSeF certificate, or a certificate Biurko orders from the Ministry for you, and Biurko can order both the Authentication certificate and the Offline certificate, which provides the second QR code. That way you don't have to scramble to obtain it on the day of the outage.
Code I and Code II on the PDF automatically. An invoice issued in a special mode gets Code I with the verification link on the PDF and, if the company has an Offline certificate, Code II as well, together with the transmission deadline. Without an Offline certificate Biurko issues the invoice with one code and a warning (a warning, not a refusal).
Auto-resubmit after an outage. Once KSeF comes back, queued offline invoices are sent automatically every 5 minutes, without you lifting a finger.
Flagging after the deadline. If the "next business day" or "7-day" limit passes and the invoice has not reached KSeF, Biurko marks it "Needs review" and notifies the responsible person. It does not warn before the deadline runs out and does not resubmit an overdue invoice by itself. Biurko reads the modes announced by the Ministry from the "Latarnia" feed every 5 minutes, and after three gateway errors within 60 seconds it switches submissions to offline24 itself.
Practical checklist for a KSeF outage
Order your KSeF certificate of the Offline type (in Biurko or in the MCU) before you need it — without it an offline invoice carries only one QR code.
Note the certificate's expiry date in your calendar (valid about two years).
Confirm your software generates both QR codes and the FA(3) structure.
Memorize the deadlines: offline24 and unavailability — next business day; emergency — 7 business days from the end of the outage.
Watch Ministry of Finance announcements in the BIP — that's where unavailability and outages are declared.
After KSeF recovers, verify that every offline invoice was actually accepted and assigned a KSeF number.
Conclusion
The two QR codes on an offline invoice aren't decoration — they're two independent proofs: that the invoice exists, and that an authorized party issued it. The key to the second one is the Offline certificate; without it the offline invoice gets no second code. And since you must upload the invoice to KSeF within a strict deadline anyway, it pays to have a tool that does it for you.
Biurko generates QR codes automatically, resubmits after an outage, and flags invoices past their deadline. Try it at biurko.io — every new company gets 14 days of the TEAM plan without a card, then moves to the free FREE plan.
FAQ
Why are there two QR codes on an offline invoice? The first code (Code I) leads to verification of the invoice in KSeF once it has been uploaded. The second (Code II), signed with a KSeF certificate of the Offline type, confirms the issuer's identity. An offline invoice handed to the buyer outside KSeF should carry both.
Do I need a KSeF certificate for offline mode? For the second QR code (Code II), yes: it needs a KSeF certificate of the Offline type, separate from the login certificate. Without it Biurko issues the offline invoice with one code (Code I) and a warning. You can order the certificate in Biurko or in the MCU of the KSeF 2.0 Taxpayer Application.
How long do I have to upload an offline invoice to KSeF? In offline24 mode — by the next business day after the issue date. In unavailability mode — the next business day after the break ends. In emergency mode — within 7 business days of the end of an outage announced by the Ministry of Finance.
What happens if I miss the upload deadline? The invoice's issue date won't change, but a missed deadline can trigger a penalty under Article 106ni of the VAT Act — up to 100% of the VAT amount (invoice with VAT) or up to 18.7% of the total due (invoice without VAT). Under the current act the penalties apply from 1 January 2027; on 16 September 2026 the Ministry of Finance announced it will move them to 1 January 2028, which is a bill not yet passed.
How will I know KSeF is down? The Ministry of Finance announces unavailability and outages in the Public Information Bulletin (BIP) and via the API. That announcement determines whether you use unavailability mode (next business day) or emergency mode (7 business days).
Tags
Previous article
KSeF for Accounting Firms: Handling 30 Clients Without 30 Logins
Next article
Your First KSeF E-Invoice: A 10-Point Checklist