KSeF Guard: KSeF invoice resubmission deadlines
A register of the deadlines for resubmitting invoices issued outside KSeF, Poland's national e-invoicing system: it watches every deadline and builds the PDF proof, and the invoice data stays in your browser.
A KSeF outage does not cancel your deadline
KSeF has been mandatory since February 2026. When the system is down, or an invoice is issued in offline24 mode, the document still has to reach KSeF within a statutory deadline. From 2027 missing it carries a penalty: a fine of up to 100% of the VAT on the invoice (art. 106ni ust. 1 pkt 3 of the VAT act, in force from 1 January 2027 under Dz.U. 2025 poz. 1203 art. 2 pkt 5 lit. b). Existing tools only monitor system uptime; none of them track the resubmission deadline of a specific invoice. Accounting offices and companies keep this in spreadsheets today. KSeF Guard turns it into a ledger with live status and written proof.
From invoice import to PDF proof
- Invoice import
- Load an FA(3) XML or CSV file (2 MB limit), or add an invoice by hand. Clients come with NIP (tax ID) validation.
- Deadline engine
- Computes the resubmission deadline in all four modes outside KSeF: offline24 (art. 106nda ust. 2), announced unavailability (art. 106nh ust. 2), announced failure (art. 106nf ust. 4) and total failure, where there is no duty to send at all (art. 106ng). Statuses: pending, at risk, overdue, submitted, submitted late, no duty.
- PDF proof
- One click generates a document with the deadline and submission date, computed and assembled entirely in the browser.
The KSeF outage timeline is built from Latarnia API notices plus a local archive, so you can see which outage window a given invoice falls into. A total failure announced before you manage to send an invoice lifts that duty, and the ledger then cites the provision that fits the invoice's own mode: art. 106nha pkt 2, art. 106nh ust. 3 pkt 2 or art. 106nf ust. 7. KSeF Guard does not replace UPO or the Ministry of Finance's official tools: it organizes the obligations the law leaves on your side.
A ledger that never leaves the browser
Invoice data never leaves your browser.
- 0
- network requests with invoice data: the ledger lives in your browser's IndexedDB, nothing reaches a server.
- 268/268
- tests passing (vitest, 18 files), 59 of them on the deadline engine alone, because a miscomputed deadline is a real penalty.
- live
- KSeF status straight from the Ministry of Finance Latarnia API, with graceful fallback to sample data.
The app's only network traffic is the public KSeF status from the Latarnia API. There is no account, no sign-in and no cloud copy. The tool is free for now; the test count is what npm test prints in the repository.
Our own project. We built it and we run it ourselves. You add the invoices to the register yourself, and nothing is sent to KSeF.
Every choice has a reason
| Layer | Choice | What it does |
|---|---|---|
| Framework | Next.js (App Router) | The deadlines are computed on your side, so the register works on a weak connection too. |
| Data | Dexie (IndexedDB) | Invoices and clients stay on your device, with no account and no cloud. |
| Backup | File System Access API | After every change a backup is written into a folder you pick on your own disk. |
| KSeF status | MF Latarnia API via proxy | When the Ministry's API goes quiet, the register keeps working on sample data. |
| Import | FA(3) XML / CSV | You load invoices from your accounting file instead of retyping them. |
| Proof | PDF in the browser | The proof of the deadline is made on your own computer and is ready to print. |
