KSeF for hauliers invoicing in Poland
Druma builds the FA(3) invoice, sends it to KSeF 2.0 under the NIP of each billing entity and emails the client only after KSeF accepts it.
We set up your 30-day trial after a short call. No card.

A Polish haulier issues its invoices in KSeF, for Polish clients and for business clients abroad alike: intra-EU supplies, exports and services to foreign businesses go through KSeF too. Issuing has been mandatory since 1 February 2026 for taxpayers whose 2024 sales exceeded PLN 200 million, and since 1 April 2026 for everyone else. Receiving has been mandatory for everyone since 1 February 2026. Sellers with monthly invoiced sales up to PLN 10,000 gross may stay outside KSeF until the end of 2026.
Under current law penalties start on 1 January 2027, according to the Ministry of Finance. A government bill before the Sejm (print 3245) would move the art. 106ni penalties to 1 January 2028; on 1 November 2026 it was not yet law. A Romanian or Hungarian haulier with no Polish establishment is usually outside the obligation; check your own case on the Ministry's KSeF pages.
Druma builds the Polish structured invoice and sends it to KSeF under the NIP of the entity that issues it. As of October 2026 the filing has run only against KSeF's test environment, with fictional data.
What is built
The invoice is an FA(3) document, checked against the Ministry's XSD and sent through the KSeF 2.0 interface. The environment (test, demo or production) is set per company. The connection uses a KSeF token or your own certificate, and Druma tests it when you register it.
Each billing entity is filed under its own NIP with its own credential. If the credential belongs to a different NIP, Druma refuses to file.
KSeF answers asynchronously, so Druma polls for the verdict. If the same file goes twice, KSeF answers "duplicate" and Druma reads that as accepted, using the number KSeF gave the first copy, so the invoice is not filed twice.
On acceptance the invoice shows its KSeF number and the QR code (KOD I), and Druma stores the official confirmation (UPO). When KSeF rejects an invoice, the Ministry's own explanation is shown on it. A rejected invoice was never filed, so there is nothing in KSeF to correct: fix what the Ministry's message points at, usually the client's or your own company data, and press Retry. Druma rebuilds the file from the corrected data and sends it again.
Euro invoices with Polish VAT use the National Bank of Poland rate of the last working day before the tax point. When no rate exists, the invoice is not sent. A credit note can only correct an invoice KSeF has accepted. It becomes a corrective invoice (KOR) that points at the original's KSeF number.
A consolidated invoice covering several orders is filed like any other.
The client's email waits until KSeF has accepted the invoice, so the PDF already carries the KSeF number and the QR code. The one exception is an invoice issued offline.
When KSeF is down
Druma can issue an invoice offline in the offline24 mode: the client gets it at once, and Druma files it with KSeF by the next Polish business day after the issue date. The copy carries two QR codes, KOD I marked OFFLINE and KOD II marked CERTYFIKAT. KOD II is signed with your company's KSeF Offline certificate, which the Ministry issues at no charge. You upload it in Settings, or request it from KSeF there when your connection uses a KSeF certificate rather than a token.
With the setting "Issue offline when KSeF is down" switched on, which is the default once a certificate is in place, this happens by itself, but only when KSeF cannot be reached before the invoice gets there. A rejected or invalid invoice is never issued offline. A planner can also press "Issue offline now" on an invoice held in the queue. The invoice list marks it "Offline" with the date KSeF is due.
Once issued, the file is frozen. Druma sends the same file to KSeF from its queue. On acceptance, the copies show the KSeF number and drop KOD II; the client is not emailed a second time. In JPK_V7M an offline invoice without a number is marked OFF, and once it has one it files the KSeF number.
If KSeF rejects the late filing for a technical reason, such as a format error, a planner presses "Technical correction" on the invoice. Druma rebuilds the file, checks that the content has not changed and sends it once, as a correction of the rejected file. The client's copy and QR codes stay as they are. A rejection over permissions needs fixing in KSeF first.
The filing date follows the Ministry's announcements, in its KSeF Latarnia feed and technical notices. Druma never decides by itself that KSeF has failed. After an announced unavailability the invoice is due the next business day after it ends, after a failure 7 business days after it ends, and after a total failure nothing needs filing. The office gets an alert on the due day and on every business day the filing is late.
A test or demo acceptance has no legal effect. Druma keeps those numbers out of the JPK_V7M export and the accounting exports; only a production acceptance counts there.
Questions we get asked
Can I go live today?
No. Production needs an operator's live token and a first invoice accepted in production.
Token or certificate?
Both work. A KSeF token is quicker to set up; a certificate suits a company that already signs with one.
What happens during a KSeF outage?
With an Offline certificate and the setting on, Druma issues the invoice offline. Without one, the invoice is held in Druma's queue, hidden from the client portal, with no reminders. Druma retries every 30 minutes and emails the invoice to the client once KSeF accepts it.
What does "Send without KSeF" do?
After a confirmation, the client gets the invoice by email without a KSeF number or QR code, and Druma logs who sent it and when. The invoice stays outside KSeF, so the obligation to file it stays with your company, and the JPK_V7M export stops until the invoice has a number. The app warns that this is legal only during a KSeF outage or for a document that is not filed in KSeF, so talk to your accountant first. When a valid Offline certificate is in place, the button is hidden.
We are registered for Polish VAT but based abroad. Does this work for us?
Druma files under whichever NIP issues the invoice, so technically yes. A company with no seat or fixed place of business in Poland is outside the mandatory scope according to the Ministry, and issuing in KSeF is then voluntary.