FA(2) — e-faktura ustrukturyzowana
FA(2) is the official XML schema of the Polish structured invoice — the second version, deployed on 1 September 2023 after eighteen months of FA(1) testing. UN/CEFACT CII conformant, aligned with EN 16931, it is the only format accepted by KSeF in 2026.
Genealogy FA(1) → FA(2) → FA(3)?
The Polish e-invoice format has known two operational versions:
- FA(1) — January 2022. Initial schema published with the voluntary KSeF opening. Partially EN 16931 compliant, many optional fields. Criticised for its permissiveness.
- FA(2) — September 2023. Full overhaul after feedback. Strict EN 16931 + CII compliance, normalisation of Polish VAT codes (oznaczenia GTU, kody JPK), addition of JPK_FA fields reused from SAF-T.
- FA(3) — 2027 project. Announced in public consultation in April 2026, integrating feedback from the 2026 mandatory rollout. Fields added: faktura proforma, faktura pro forma korygująca, e-Doręczenia integration.
FA(2) XML structure
The document is an XML with root <Faktura> and three main
blocks: Naglowek (header), Podmiot1/2/3/4 (parties),
Fa (invoice body with FaWiersz lines).
<?xml version="1.0" encoding="UTF-8"?>
<Faktura xmlns="http://crd.gov.pl/wzor/2023/06/29/12648/">
<Naglowek>
<KodFormularza kodSystemowy="FA (2)" wersjaSchemy="1-0E">FA</KodFormularza>
<WariantFormularza>2</WariantFormularza>
<DataWytworzeniaFa>2026-05-19T08:42:11Z</DataWytworzeniaFa>
<SystemInfo>ERP X v12.4</SystemInfo>
</Naglowek>
<Podmiot1>
<DaneIdentyfikacyjne>
<NIP>5260250274</NIP>
<Nazwa>Spółka Sprzedaży Sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
<Adres>
<KodKraju>PL</KodKraju>
<Wojewodztwo>mazowieckie</Wojewodztwo>
<Powiat>warszawski</Powiat>
<Gmina>Warszawa</Gmina>
<Ulica>ul. Świętokrzyska</Ulica>
<NrDomu>12</NrDomu>
<Miejscowosc>Warszawa</Miejscowosc>
<KodPocztowy>00-916</KodPocztowy>
</Adres>
</Podmiot1>
<Podmiot2>
<DaneIdentyfikacyjne>
<NIP>7010023492</NIP>
<Nazwa>Klient Sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
</Podmiot2>
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_1>2026-05-19</P_1> <!-- Issue date -->
<P_2>FV/2026/05/0142</P_2> <!-- Sequence number -->
<P_6>2026-05-15</P_6> <!-- Delivery date -->
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>IT consulting — May 2026</P_7>
<P_8A>hour</P_8A> <!-- Unit -->
<P_8B>40.00</P_8B> <!-- Quantity -->
<P_9A>250.00</P_9A> <!-- Net unit price -->
<P_11>10000.00</P_11> <!-- Net amount -->
<P_12>23</P_12> <!-- VAT rate (23%) -->
</FaWiersz>
<P_13_1>10000.00</P_13_1> <!-- Net total -->
<P_14_1>2300.00</P_14_1> <!-- VAT total -->
<P_15>12300.00</P_15> <!-- Gross total -->
</Fa>
</Faktura> Mandatory fields
| Code | XML element | Description |
|---|---|---|
| P_1 | Fa/P_1 | Data wystawienia (issue date) |
| P_2 | Fa/P_2 | Numer kolejny faktury (issuer sequence number) |
| P_6 | Fa/P_6 | Data dostawy lub wykonania (delivery or performance date) |
| P_7 | FaWiersz/P_7 | Nazwa towaru lub usługi (item description) |
| P_8A | FaWiersz/P_8A | Miara (unit) |
| P_8B | FaWiersz/P_8B | Ilość (quantity) |
| P_11 | FaWiersz/P_11 | Wartość netto (net amount) |
| P_12 | FaWiersz/P_12 | Stawka VAT (rate 23/8/5/0/zw/np) |
| P_13_1 | Fa/P_13_1 | Suma wartości netto (net total at 23% rate) |
| P_14_1 | Fa/P_14_1 | Suma kwoty VAT (VAT total at 23% rate) |
| P_15 | Fa/P_15 | Należność ogółem (gross total) |
The issuer NIP (Podmiot1/DaneIdentyfikacyjne/NIP) and recipient
NIP (Podmiot2/DaneIdentyfikacyjne/NIP) are mandatory, in
10-digit format without dashes. For non-residents with a fiscal
representative, see Podmiot3 (Przedstawiciel).
Sectoral extensions
The FA(2) schema natively integrates four sectoral extensions, activated by specific blocks:
- Mediation (pośrednictwo) —
FaWierszPosr. For intermediation operations where the issuer acts on behalf of a third party (insurance, real estate). Explicit links to Polish VAT Act art. 30 paragraph 4. - Transport —
FaWierszTransp. Invoices linked to road freight transport: waybill number, route, vehicle registration. Articulation with SENT (Electronic Road Transport Monitoring System). - Energy —
FaWierszEnerg. For electricity / gas / heat invoices from URE-regulated suppliers. Specific fields: PPE number (Connection Point), reading period, G/C tariff structure. - Service import (faktura uproszczona import usług) —
FaWierszImpUslug. For VAT reverse charge on intra-EU and non-EU services. Articulation with JPK_VAT.
Corrective invoices
FA(2) distinguishes three types of corrective invoices:
- Faktura korygująca (corrective) — cancellation or
modification of a previous invoice. Mandatory reference to the original
invoice's numer KSeF in
FaKor/NumerKSeFFaKor. - Faktura zaliczkowa (advance) — invoice issued for an
advance payment. Mandatory link to the final invoice in
FaZal/PowiazanieFaZal. - Faktura końcowa (final after advance) — definitive
invoice settling advances. Mandatory list of advance invoices
referenced via
FaKon.
Common pitfalls
- UTF-8 BOM. KSeF rejects any XML starting with the UTF-8 BOM (EF BB BF). Verify the ERP export — many Windows editors add the BOM by default.
- NIP with dashes. NIP must be 10 digits without
separators. The humanised format
123-456-78-90is invalid in XML, even if visually expected. - Non-breaking space (NBSP). NBSP characters (U+00A0) in text fields (company name, line description) are sometimes interpreted as invisible characters and cause semantic rejections.
- VAT rate as code. The 23% rate is noted
23(integer), not0.23or23%. For exemption, use the specific codezw. For out-of-scope, it isnp. - ISO date format. All dates are in ISO 8601 format
(
YYYY-MM-DD) without time for business dates (P_1,P_6). The traditional Polish formatDD.MM.YYYYis not accepted.