ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

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 fa2-example.xml
<?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

CodeXML elementDescription
P_1Fa/P_1Data wystawienia (issue date)
P_2Fa/P_2Numer kolejny faktury (issuer sequence number)
P_6Fa/P_6Data dostawy lub wykonania (delivery or performance date)
P_7FaWiersz/P_7Nazwa towaru lub usługi (item description)
P_8AFaWiersz/P_8AMiara (unit)
P_8BFaWiersz/P_8BIlość (quantity)
P_11FaWiersz/P_11Wartość netto (net amount)
P_12FaWiersz/P_12Stawka VAT (rate 23/8/5/0/zw/np)
P_13_1Fa/P_13_1Suma wartości netto (net total at 23% rate)
P_14_1Fa/P_14_1Suma kwoty VAT (VAT total at 23% rate)
P_15Fa/P_15Należ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:

  1. Faktura korygująca (corrective) — cancellation or modification of a previous invoice. Mandatory reference to the original invoice's numer KSeF in FaKor/NumerKSeFFaKor.
  2. Faktura zaliczkowa (advance) — invoice issued for an advance payment. Mandatory link to the final invoice in FaZal/PowiazanieFaZal.
  3. 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-90 is 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), not 0.23 or 23%. For exemption, use the specific code zw. For out-of-scope, it is np.
  • 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 format DD.MM.YYYY is not accepted.