Overview
FA(3) is the structured XML format that Poland's KSeF system uses to represent an e-invoice, defined by an official schema (XSD) published by the Ministry of Finance. It is not a printable document like a PDF — it is machine-readable data that encodes the seller, the buyer, the line items, the totals and the VAT fields. In practice you generate the XML from your invoice data and validate it against the schema, rather than writing it by hand.
What the format describes
KSeF (Krajowy System e-Faktur) is Poland's national e-invoicing platform run by the Ministry of Finance (Ministerstwo Finansów). The FA(3) schema is the contract for what a structured invoice must contain. It defines elements such as the issue date and invoice number, the seller and buyer parties with their identifiers, the line items with unit, quantity and price, and the totals broken down by VAT rate. Every field has a defined type, length and — where relevant — an allowed list of values.
Because it is a schema rather than a template, FA(3) is strict. A field that is missing, too long or of the wrong type fails validation, and KSeF rejects the invoice with an error code. That strictness is the point: it is what lets the platform process millions of invoices automatically and reliably.
XML, not a picture
A PDF or an image shows a human how an invoice looks; it does not tell a computer what each value means. FA(3) does the opposite: it labels every value — who sold, who bought, how much, at which rate — so the tax system can read it without interpretation. The visual PDF you send to a customer is a separate rendering of the same data, not the structured invoice itself.
Generate, validate, submit
The reliable way to produce FA(3) is to map your invoice data onto the schema, generate the XML, then validate it against the official XSD before sending it to KSeF. Hand-writing the XML invites the exact mistakes the schema is designed to catch. A KSeF API such as Notaly's takes your plain JSON invoice, generates the FA(3) XML, validates it against the official schema and submits it — returning the status and UPO through a webhook.
Disclaimer
Notaly is not a tax, accounting or legal advisor. This article is general information, not tax advice, and may be outdated. You are responsible for your own VAT compliance; confirm with a qualified accountant where required.
Sources
Source: crd.gov.pl