Format FA(3) — struktura XML
Struktura faktury ustrukturyzowanej FA(3) — sekcje XML, wymagane pola, identyfikator KSeF, relacja z polami JPK_V7M.
FA(3) to oficjalna, trzecia wersja schematu XML dla faktur ustrukturyzowanych w KSeF. Każda faktura wystawiona lub odebrana przez KSeF występuje w tym formacie. FA(3) jest rozszerzeniem dotychczasowych wymogów Ustawa o VAT, art. 106e — zawiera wszystkie obowiązkowe elementy faktury VAT, ale w ściśle określonej strukturze maszynowej.
Informacje mają charakter edukacyjny
Dokumentacja nie zastępuje porady doradcy podatkowego ani biegłego rewidenta. W sprawach szczegółowych skontaktuj się ze specjalistą. Jak weryfikujemy dokumentację ↗
Kiedy stosować FA(3)
- Od 1 lutego 2026 r. — duzi podatnicy.
- Od 1 kwietnia 2026 r. — wszyscy pozostali podatnicy VAT.
Poprzednie wersje schematu (FA(1), FA(2)) zostały zastąpione FA(3) przed rozpoczęciem obowiązku. Numify generuje i parsuje wyłącznie FA(3).
Sekcje dokumentu
Faktura FA(3) składa się z następujących sekcji:
| Sekcja | Zawartość |
|---|---|
Naglowek | Metadane systemu (wersja schematu, data wystawienia) |
Podmiot1 | Wystawca faktury (nazwa, NIP, adres) |
Podmiot2 | Nabywca faktury (NIP lub PESEL, adres) |
Podmiot3 (opcjonalnie) | Podmiot trzeci (np. faktoring) |
Fa | Dane faktury (numer, daty, waluta, kwoty) |
Fa/FaWiersz[] | Pozycje faktury |
Stopka | Podpis / informacje dodatkowe |
Wymagane pola (art. 106e ustawy o VAT)
Każdy dokument musi spełniać wymogi Ustawa o VAT, art. 106e. Każda faktura FA(3) musi zawierać (zarówno w XML, jak i w ewentualnej wizualizacji PDF):
- Datę wystawienia.
- Kolejny numer faktury (nadany przez wystawcę).
- NIP wystawcy (i pełną nazwę).
- NIP nabywcy (lub PESEL dla osób fizycznych B2C — wtedy faktura nie musi być w KSeF).
- Datę dostawy / wykonania usługi (jeśli inna niż data wystawienia).
- Nazwę towaru / usługi.
- Jednostkę miary, ilość.
- Cenę jednostkową netto.
- Kwotę rabatu.
- Wartość netto, stawkę VAT, wartość VAT, wartość brutto.
- Łączne kwoty netto, VAT, brutto — zgrupowane wg stawek.
- Sumę należności.
Dodatkowo w FA(3) obowiązkowo:
- Kod walutowy — ISO 4217 (PLN, EUR, USD, …).
- Kurs waluty — jeśli waluta inna niż PLN, kurs NBP z dnia poprzedzającego wystawienie (UoR, art. 30).
- Kod GTU — dla towarów / usług z załącznika 15 do ustawy o VAT (GTU_01 — GTU_13). Np. GTU_12 dla usług niematerialnych.
- Znaczniki procedur — np.
MPP(split payment),TT_WNT,I_42/I_63dla procedur celnych. - KodFormularza =
FAwersja3.
Identyfikator KSeF (NrKSeF)
Każda faktura przesłana do KSeF otrzymuje globalnie unikalny identyfikator w formacie:
NNNNNNNNNN-RRRRMMDD-XXXXXXXX-YY
│ │ │ └─ suma kontrolna
│ │ └────────── losowy identyfikator wystawcy
│ └─────────────────── data wystawienia (YYYYMMDD)
└────────────────────────────── NIP wystawcy (10 cyfr)Identyfikator pozostaje z fakturą do końca jej cyklu życia — jest umieszczany w:
- Pole
KodKontrolnyw XML FA(3). - QR kod drukowany na wizualizacji PDF (zob. Kody QR).
- Pole
NrKSeFw JPK_V7M(3) — zarówno po stronie sprzedawcy, jak i nabywcy. - Odniesienia w fakturach korygujących i zaliczkowych.
Schemat XML — fragment
<Faktura xmlns="http://crd.gov.pl/wzor/2023/06/29/12648/">
<Naglowek>
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
<WariantFormularza>3</WariantFormularza>
<DataWytworzeniaFa>2026-04-16T12:00:00Z</DataWytworzeniaFa>
<SystemInfo>Numify AI 1.0</SystemInfo>
</Naglowek>
<Podmiot1>
<DaneIdentyfikacyjne>
<NIP>1234567890</NIP>
<Nazwa>PERIER sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
<Adres>
<KodKraju>PL</KodKraju>
<AdresL1>ul. Przykładowa 1</AdresL1>
<AdresL2>00-001 Warszawa</AdresL2>
</Adres>
</Podmiot1>
<Podmiot2>
<DaneIdentyfikacyjne>
<NIP>9876543210</NIP>
<Nazwa>Kontrahent sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
<!-- ... adres ... -->
</Podmiot2>
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_1>2026-04-16</P_1> <!-- Data wystawienia -->
<P_2>FV/2026/04/001</P_2> <!-- Numer faktury -->
<P_6>2026-04-15</P_6> <!-- Data dostawy -->
<P_13_1>1000.00</P_13_1> <!-- Suma netto 23% -->
<P_14_1>230.00</P_14_1> <!-- Suma VAT 23% -->
<P_15>1230.00</P_15> <!-- Kwota brutto -->
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>Usługa hostingu — kwiecień 2026</P_7>
<P_8A>szt.</P_8A>
<P_8B>1</P_8B>
<P_9A>1000.00</P_9A> <!-- Cena netto -->
<P_11>1000.00</P_11> <!-- Wartość netto -->
<P_12>23</P_12> <!-- Stawka VAT -->
</FaWiersz>
</Fa>
</Faktura>Walidacja
Ministerstwo Finansów udostępnia oficjalny walidator na portalu
ksef.mf.gov.pl. Numify dodatkowo:
- Wykonuje walidację XSD lokalnie przed wysłaniem do KSeF.
- Sprawdza zgodność sum (wiersze ↔ agregaty).
- Waliduje numer NIP względem rejestrów (biała lista, VIES).
Implementacja w Numify
Generator FA(3) — tworzy XML z danych faktury w bazie: ksef-fa3-generator.ts.
Parser FA(3) — odczytuje otrzymane faktury i mapuje na transakcje: ksef-fa3-parser.ts.
Oba oparte o oficjalny XSD FA(3) z repozytorium CRD MF. Pełne klasy
DTO są w src/lib/services/ksef-types.ts.
Historia zmian podstawy prawnej
- Phase 2
Pierwsza wersja — zagregowana z
_legacy/KSEF-REFERENCE.mdoraz oficjalnej dokumentacji XSD FA(3) Ministerstwa Finansów.
KSeF — harmonogram wdrożenia
Szczegółowy harmonogram obowiązkowego KSeF 2.0 — kto i kiedy musi przejść na faktury ustrukturyzowane, progi wdrożenia, okresy przejściowe, grace period.
KSeF — uwierzytelnianie
Metody logowania i autoryzacji do Krajowego Systemu e-Faktur — podpis kwalifikowany, pieczęć elektroniczna, certyfikaty KSeF, wygaśnięcie Profilu Zaufanego.