Free Tool Desk

Guide

KSeF FA(3): How to Inspect an Invoice XML

Last updated October 6, 2026

In Poland's National e-Invoice System (KSeF) the invoice is not a PDF. It is a structured XML file in a layout published by the Ministry of Finance, and everything you see as a PDF or a printout is a visualisation made from that XML. If you were sent an XML file and need to know what is in it, this guide explains the structure and how to check it.

What FA(3) is

FA(3) is the logical structure of the Polish structured invoice. The Ministry of Finance published it in the Central Repository of Electronic Document Templates in June 2025, and it is the structure that applies from 1 February 2026, replacing FA(2). Among other changes it provides more fields for supplementary business information and a way to attach supplementary files to an invoice. The official description is on the Ministry's KSeF site (ksef.podatki.gov.pl).

How to recognise an FA(3) file

Four things identify it, and the KSeF FA(3) XML Viewer checks all of them:

  • the root element is Faktura;
  • its namespace is http://crd.gov.pl/wzor/2025/06/25/13775/;
  • the header element KodFormularza has the system code attribute FA (3);
  • and the schema version attribute reads 1-0E.

A file in another namespace or with another form code, such as the older FA(2), is a different format and is reported as such.

The parts of the file

ElementWhat it holds
NaglowekHeader: form code, schema version, creation time, the system that made the file.
Podmiot1The seller: NIP (tax number), name, address, contact details.
Podmiot2The buyer, identified by NIP, an EU VAT number, another country's identifier, or no identifier.
Podmiot3Optional additional parties, each with a role (for example a recipient or a factor).
FaThe invoice itself: currency, issue date (P_1), number (P_2), sale date (P_6), totals per VAT rate group (P_13_x net, P_14_x VAT), amount due (P_15), invoice type, the lines, payment details, transaction terms.
StopkaFooter information such as registry numbers.
ZalacznikOptional attachment blocks.

The invoice type (RodzajFaktury) takes values such as VAT (standard), KOR (correcting), ZAL (advance payment), ROZ (settlement) and UPR (simplified). Lines are FaWiersz elements with the name (P_7), unit (P_8A), quantity (P_8B), unit net price (P_9A), net value (P_11) and VAT rate (P_12).

Visualisation is not the invoice

A PDF or printout produced from the XML has no KSeF number of its own and no legal status as the invoice. The Ministry's applications produce the official visualisation. A viewer such as this site's is a reading aid: it shows the data in a table, not the invoice that was issued.

Schema validity and what it covers

The Ministry publishes the schema as schemat.xsd. Validating a file against it answers a structural question: are the elements the right ones, in the right order, with values of the right kind? The viewer does this in your browser with the official schema and lists the problem lines. A file can be schema-valid and still be rejected on submission, because KSeF applies further business and identification rules. Equally, a file that fails the schema will not pass in KSeF.

A short inspection routine

  1. Open the file in the viewer and confirm it says FA(3) with schema 1-0E.
  2. Read seller, buyer and the invoice type. Check the NIPs digit by digit against your records.
  3. Compare the amount due (P_15) and the VAT rate groups with what the lines add up to.
  4. Look at the schema-validation result; follow any line numbers into the XML.
  5. If you are unsure what a file is at all, start with the E-Invoice Format Detector.

None of this is tax or legal advice. Rules for issuing, receiving and correcting invoices in KSeF are set by Polish law and the Ministry of Finance; use their documentation for any decision that matters.