Skip to content
KSeF Kit

KSeF Invoice Visualisation: the PDF Is Not the Invoice

The invoice is an XML file in the FA(3) format that sits in KSeF and carries a KSeF number. The visualisation — a PDF, a printout, or a preview on screen — is only a picture of that document. It is not a separate invoice and it does not replace the original. So one thing matters most on a visualisation: whether it gets you back to the invoice in the system, via the KSeF number and the verification code.

Until recently an invoice and a PDF were effectively the same thing. You issued a document, printed it or emailed it, and that file was what moved between companies. Since 1 February 2026, when KSeF became mandatory, the order reversed. The XML comes first, the system assigns it a number and keeps it for ten years. The PDF comes afterwards, made from that XML, and it is a convenience rather than the transaction.

That single change explains most of the questions people ask after their first encounter with KSeF. Why did I get an XML file instead of an invoice. Why is my counterparty asking for a PDF when they already have the invoice. What is that QR code on the printout for.

What a visualisation actually is

The word sounds bureaucratic and means something simple: the human-readable form of an invoice that lives in the system as an XML file. It can be a PDF, a sheet of paper, a screen in accounting software, or an email attachment. Each of those shows the same data, only in a form you can read without an XML editor.

The word does not come from the statute. The VAT Act never uses the term "visualisation" and says nothing about how such a document should look. It prescribes no layout, no typeface, and nothing about whether your logo belongs on the printout. It says something else: when an invoice has to be made available outside the system, and what it must be marked with when that happens. Everything else is market practice and the templates in the Ministry of Finance's technical documentation.

That is why two companies can send you visualisations of the same invoice that look nothing alike, and both are fine. The content and the code are what count, not the graphics.

The three situations people are in

Almost everyone looking for a KSeF invoice visualisation has one of three problems.

I got an XML file and I can't open it. A counterparty sent an attachment that looks like a tree of tags in the browser. You want to see amounts, dates and line items, not code. How to do that is below.

I need to give a customer something readable. The customer is a consumer, a foreign company, or simply has no access to KSeF. The invoice sits in the system, but they will never see it there, so they need a document that arrives by email. This is the most common case, and it is the one that drives the requirements in the next section.

I need a printout. For the file, for a driver, for the bank, for a grant application. Paper is still needed sometimes; it is just a copy now, not the original.

What has to appear on a visualisation

These are two different things: what the statute requires and what the market has settled on.

The statute requires a code. Art. 106gb sec. 5 of the VAT Act says a taxpayer must mark a structured invoice with "a code enabling access to that invoice in the National e-Invoicing System and enabling verification of the data contained in that invoice". Two situations trigger the duty: making the invoice available to a buyer covered by art. 106gb sec. 4 by any means other than KSeF, or using the invoice outside the system. In practice that means every PDF that leaves your company should carry the code.

The buyers in sec. 4 are exactly the ones who will never see the invoice in KSeF: where the place of supply is another country, where the buyer has no seat in Poland, where the buyer does not use a tax identification number, or where the buyer is a private individual not running a business. For such a buyer, the invoice is made available "in a manner agreed with them", which usually means a PDF by email.

There is one more provision that is easy to forget. Art. 106gb sec. 6 covers buyers with no tax number and consumers who receive the invoice through KSeF. In that case you must give them access by supplying the code from sec. 5 together with "data allowing that invoice to be identified", meaning the KSeF number. The number alone is not enough, and neither is the code alone.

Practice adds the KSeF number under the code. The Ministry of Finance documentation states plainly that the invoice's KSeF number goes underneath the QR code, and that where no number has been assigned yet, the word "OFFLINE" appears in that spot instead. That is not a statutory requirement, just the template the whole market follows. Follow it too, because your recipient will look for the number in exactly that place.

That leaves the third part, the most obvious one: the invoice content. Parties, line items, rates, amounts, dates. Without it, a visualisation is just a sticker with a code.

In short: the KSeF number, the verification code, the content. How the codes themselves work, how KOD I differs from KOD II, and why you compute them yourself instead of fetching them from the API is covered separately in QR codes on a KSeF invoice.

How to read an XML you can't open

You have four routes, best first.

The free Aplikacja Podatnika KSeF. The Ministry of Finance publishes its own application at ap.ksef.mf.gov.pl, and it simply does this. It browses invoices and corrections, lets you search for and download issued documents as XML or PDF, download the UPO for a single invoice or many at once, handles QR codes, and gives access to an invoice from a scanned code. You do not have to buy software to look at your own invoice. Try it before somebody sells you a "KSeF viewer" on a subscription. The test environment is at ap-test.ksef.mf.gov.pl and production at ap.ksef.mf.gov.pl. The old KSeF 1.0 addresses no longer answer.

Scanning the QR code on a visualisation. If you were sent a PDF with a code, just scan it. You will get a simplified presentation of the invoice's basic data plus confirmation that the document is in KSeF. That is enough to check whether the invoice is genuine. Full access to the content, such as downloading the XML file, requires supplying additional details, so a passer-by cannot read someone else's invoice from a photo of a printout.

Your accounting software. Most tools that can receive invoices from KSeF can also display them like a document and print them.

Last resort: a browser. An XML opened in a browser or a text editor is readable, because the FA(3) field names are in Polish. Fine for checking one amount. Not suitable as a document for a customer.

Does a PDF still carry any weight

This calls for care, because the answer is not binary.

A PDF is not the invoice. The structured invoice is the document in KSeF, identified by its KSeF number, and that is what produces VAT effects. A visualisation issues nothing and replaces nothing. If the PDF differs from the XML, the XML is the truth.

That does not make the PDF worthless. For a buyer outside the system it is the only form of the invoice they will ever see, and it is what they pay against. For you it is a commercial document, an attachment to a contract, material for a project settlement. The verification code makes it more than a sheet of paper: scanning it leads to the invoice in KSeF, so the recipient can check whether the document in their hand matches what is in the system. That is where its value lies, and it is why the code and the KSeF number matter more than the page layout.

What I will not claim, because I would be guessing: there is no single simple rule for how courts and tax authorities will treat a visualisation in a dispute with a counterparty. That practice is still forming. One safe rule covers it: make sure every visualisation gets you back to the original.

What to archive

Here is the good news. Under art. 112aa of the VAT Act, structured invoices sent to KSeF are kept in the system for 10 years counted from the end of the year they were issued, and art. 112 and art. 112a do not apply to them. In other words the state archives them for you, and you do not have to keep your own copy of an invoice just to satisfy the retention requirement.

Two caveats. First, if those 10 years run out before the tax liability lapses, you cover the remaining period yourself, outside KSeF. Second, no duty is not the same as no reason. Your own copy helps when you want to check something without signing into the system, when your accountant works from their own files, or when you change tools.

What is worth keeping, in order of importance: the KSeF number against every invoice, the UPO, and the XML. The KSeF number is the document's address in the system, and finding an invoice without it gets needlessly tedious. The UPO proves KSeF accepted the invoice, and it has its own article on the official acknowledgement of receipt. Keep the PDF if you like, but treat it as a copy of a letter, not the letter.

Invoices issued offline

A separate case, worth a paragraph. An invoice issued in offline or offline24 mode reaches the buyer before the system assigns it a KSeF number. The visualisation then carries two codes: KOD I labelled "OFFLINE" and KOD II labelled "CERTIFICATE", which confirms the issuer's identity. The KSeF number appears only once the document is sent to the system, so a visualisation handed over earlier does not contain it. The details, including the deadline for sending, are in QR codes on a KSeF invoice.

Common misconceptions

What KSeF Kit shows you

Honestly, at the end, because this matters more than a nice promise. KSeF Kit does not generate an invoice visualisation. Stripe produces the invoice PDF and that is what reaches the customer, exactly as before. What we add is the KSeF side: the proofs and identifiers that the Stripe PDF does not carry.

What you get:

What we don't do: we don't draw a QR code image, we don't assemble an invoice PDF, and we don't add the KSeF number to the PDF Stripe issues, because Stripe does not allow a finalised invoice to be changed. That is why the KSeF number lives in the panel and on the printable acknowledgement.

If you are still designing the process, start with how to issue a structured invoice, then look at the Stripe and KSeF integration.

Frequently asked questions

Does a KSeF invoice have a PDF?

Not automatically. KSeF stores the invoice as an XML file in the FA(3) format, and that file is the invoice. A PDF exists only once something makes one from the XML: your own tool, the buyer's accounting software, or the free Aplikacja Podatnika KSeF, which lets you search for an issued document and download it as XML or PDF.

What is a structured invoice visualisation?

The human-readable form of an invoice that lives in the system as an XML file: a PDF, a printout, or a screen in an application. The VAT Act never uses the word "visualisation" and does not prescribe a layout. What it does impose is marking the invoice with a code that gives access to it in KSeF and allows the data to be verified.

What has to appear on a printed KSeF invoice?

The invoice content, the verification code (KOD I), and the KSeF number, which per the Ministry of Finance documentation goes underneath the QR code. The duty to apply the code comes from art. 106gb sec. 5 of the VAT Act and covers invoices handed to a buyer outside KSeF or used outside the system.

Does a printed KSeF invoice have legal force?

A printout is not the invoice, only a picture of it. The original sits in KSeF and the KSeF number identifies it. For your counterparty the printout remains a commercial document that leads back to the original, provided it carries the KSeF number and the verification code.

Do I have to archive the invoice PDF?

Not in order to satisfy the retention duty. Under art. 112aa of the VAT Act, structured invoices are kept in KSeF for 10 years counted from the end of the year they were issued, and art. 112 and art. 112a do not apply to them. If those 10 years run out before the tax liability lapses, you cover the remaining period yourself, outside KSeF.

How do I view an invoice if all I got is an XML file?

The easiest route is the free Aplikacja Podatnika KSeF at ap.ksef.mf.gov.pl: it browses invoices and lets you download them as XML or PDF. You can also scan the QR code on a visualisation, but that gives you a simplified presentation of the basic invoice data; full access requires supplying additional details.