KSeF invoice reader: an FA(3) XML file as a readable invoice

Drop the XML file you downloaded from KSeF, or click the example. The invoice appears as on paper, with a totals check and the verification link. Everything runs in your browser.

The file stays on your device: nothing is uploaded.

The result appears here: parties, amount due and totals check.

Prepared by Radif Partners · Method · VAT Act, regulations and ministry notices checked on 25 October 2026

An invoice from Poland's National e-Invoicing System (KSeF) is an XML file in the FA (3) logical structure, which has been the only structure the system accepts since 1 February 2026. The file holds every invoice detail in fields with fixed names: Podmiot1 is the seller, Podmiot2 the buyer, P_1 the issue date, P_2 the invoice number, P_13_1 and P_14_1 the net amount and VAT at the 23 percent rate, P_15 the total amount due. Without software such a file is hard to read, so this reader turns it into an ordinary invoice layout: parties, line items, a summary by rate, payment terms and annotations. It also recomputes the totals from the lines and compares them with the P_13, P_14 and P_15 fields, to the grosz. The file is never uploaded, and the PDF printout can go into your records. The original remains the XML with its KSeF number, kept for 10 years, not its visualisation.

What an FA(3) file contains

A KSeF file always has the same skeleton, described in the Finance Ministry FA(3) schema. The main blocks the reader turns into an invoice layout:

XML elementMeaning
Naglowekform code FA (3), variant and file creation date
Podmiot1, Podmiot2seller and buyer: tax ID (NIP), name, address, contact
Podmiot3other parties: recipient, payer, local-government unit, VAT group member
Fa/FaWierszline items: name, quantity, price, net value, rate
P_13_x, P_14_xnet total and VAT total at each rate
P_15total amount due
Adnotacje, Platnosccash accounting, self-billing, split payment, due date and account

The reader also shows fields that are easy to miss: a delivery date different from the issue date, the split payment note on amounts above PLN 15,000, or the details of the invoice being corrected. Empty blocks are skipped to keep the printout short.

A totals check to the grosz

The reader checks every invoice three ways: it adds the net line values at each rate, computes VAT by rate and compares both with the P_13 and P_14 fields, and finally checks that P_15 equals net plus VAT. Rounding to the grosz follows Art. 106e(11) of the VAT Act. You can compute the same fields yourself before sending an invoice:

Total amount due (field P_15)

Total amount due (field P_15)

PLN 1,446.00

P_13_1PLN 1,000.00
P_14_1PLN 230.00
P_13_2PLN 200.00
P_14_2PLN 16.00
Compute the P_13, P_14 and P_15 fields →

Printing and keeping records

The print button produces a clean A4 page without menus or buttons; choose save as PDF in the print dialog. The ministry also publishes its own open-source visualisation generator, and the free KSeF Taxpayer Application shows the invoice after login. What a structured invoice is in law is explained on the ministry page on the FA structure. This reader needs no login, because it works on a file you already have.

Keep the original as XML. Invoices in KSeF are stored for 10 years from the end of the year of issue, so you can download the file again if needed. If the visualisation carries a QR code, read it with the QR code tool, and check the number from the header with the KSeF number validator.

A supplier invoice step by step

The usual route is this: you log in to KSeF or open your software, download the purchase invoice as an XML file and load it here. The reader first shows the seller and buyer, so you see at once whether the invoice concerns your business and whether the tax ID matches. Then you check the lines, rates and totals, and finally the due date and the bank account. If something is wrong, you do not edit the file: you ask the issuer for a corrective invoice, because correction notes from the buyer disappeared with KSeF.

Common questions

Is the XML file uploaded to a server while I view it?

No. The reader runs entirely in the browser: the file is read locally and the page has nowhere to send it. You can check by disconnecting from the internet once the page has loaded; the preview still works. We do not record file names or any trading partner details either.

Why does the reader show a difference in the VAT totals?

The reader adds up the net values of the lines by rate and compares the result with the P_13 and P_14 fields. A difference of a few grosz usually comes from rounding per line rather than per rate. The VAT Act requires tax to be rounded to the full grosz, so a larger gap is worth raising with the issuer.

Does a printout from the reader replace the invoice in KSeF?

No. The invoice is the XML file stored in KSeF with its number. A printout is only a visualisation, useful for approving a cost or talking to a supplier. If you pass the invoice to someone outside the system, the visualisation should carry a QR code that lets them check it in KSeF.

Which files can this invoice viewer open?

Files in the FA (3) structure, that is every invoice downloaded from KSeF since February 2026, including corrective and advance invoices. A file of another type, such as the older FA(2) or a document from another country, is recognised as unsupported and the reader says so plainly instead of showing incomplete data.

Keep going

Official sources for this page

Prepared by

Publisher of free KSeF tools: obligation and deadline check, FA(3) invoice reader, PLN 10,000 limit counter and offline modes, all in your browser

Updated on · Editorial policy · Contact

As of 2026, laws and ministry notices checked on