FA(3) to struktura logiczna XML, której od 1 lutego 2026 r. używa każda faktura ustrukturyzowana przesyłana do Krajowego Systemu e-Faktur (KSeF), kiedy zastąpiła FA(2). Jest to schemat krajowy opublikowany przez Ministerstwo Finansów — nie składnia normy EN 16931 — z ośmioma elementami najwyższego poziomu, z których Naglowek, Podmiot1, Podmiot2 i Fa są obowiązkowe. W porównaniu z FA(2) dodaje przejrzystszą strukturę terminu płatności, rolę pracownika dla podmiotów trzecich, dłuższe opisy pozycji, znaczniki dla jednostek samorządu terytorialnego i grup VAT oraz załącznik XML.
Czym jest FA(3) i kiedy ma zastosowanie
FA(3) to „wzór faktury ustrukturyzowanej" — wzór dokumentu elektronicznego — zdefiniowany przez Ministerstwo Finansów i opublikowany w Centralnym Repozytorium Wzorów Dokumentów Elektronicznych pod adresem crd.gov.pl/wzor/2025/06/25/13775/. Faktura ustrukturyzowana jest prawnie fakturą wystawioną przy użyciu KSeF wraz z przydzielonym jej przez system numerem, a KSeF nadaje numery wyłącznie plikom zgodnym z aktualnym wzorem.
Broszura Ministerstwa jest jednoznaczna: FA(2) obowiązywała od 1 września 2023 r. do 31 stycznia 2026 r.; FA(3) stosuje się do każdej faktury ustrukturyzowanej wystawionej od 1 lutego 2026 r., w tym do korekt faktur pierwotnie wystawionych w FA(2) lub FA(1) oraz do faktur rozliczeniowych do starszych faktur zaliczkowych. API odzwierciedla to: środowiska produkcyjne i demo przyjmują wyłącznie FA(3) (oraz warianty FA_PEF(3) i FA_KOR_PEF(3) dla faktur w zamówieniach publicznych pochodzących z Peppol), natomiast środowisko testowe nadal przyjmuje FA(2). Klient deklaruje schemat przy otwieraniu sesji, a KSeF waliduje względem niego każdy plik w tej sesji.
Budowa: osiem elementów najwyższego poziomu
Element główny Faktura zawiera nagłówek, sprzedawcę, nabywcę, opcjonalne podmioty trzecie, opcjonalny podmiot upoważniony, treść faktury, opcjonalną stopkę i opcjonalny załącznik.
| Element | Wymagany? | Zawartość |
|---|---|---|
Naglowek | Obowiązkowy | KodFormularza z atrybutami kodSystemowy="FA (3)" i wersjaSchemy="1-0E"; WariantFormularza = 3; DataWytworzeniaFa (znacznik czasu UTC utworzenia pliku, np. 2026-02-01T09:30:47Z, który może różnić się od P_1 i od daty przesłania); opcjonalny SystemInfo wskazujący oprogramowanie. |
Podmiot1 | Obowiązkowy | Sprzedawca. NIP w DaneIdentyfikacyjne jest kluczem uprawniającym podatnika w KSeF; bez niego faktury nie można wystawić. Nazwa, adres, opcjonalny adres korespondencyjny, dane kontaktowe, opcjonalny numer EORI i status podatnika. |
Podmiot2 | Obowiązkowy | Nabywca. Polski NIP wpisuje się w NIP; unijny numer VAT w NrVatUE z KodKraju; inny identyfikator zagraniczny w NrID; konsument bez identyfikatora jest odpowiednio oznaczony. FA(3) dodaje znaczniki JST i GV („1" = faktura dotyczy jednostki podległej jednostce samorządu terytorialnego lub członka grupy VAT, „2" = nie dotyczy) oraz opcjonalny klucz IDNabywcy (32 znaki) łączący nabywcę między fakturami. |
Podmiot3 | Opcjonalny, do 100 | Podmioty trzecie z kodem Rola: 1 faktor, 2 odbiorca (jednostka wewnętrzna nabywcy), 3 podmiot pierwotny (poprzednik po połączeniu lub przekształceniu), 4 dodatkowy nabywca, 5 wystawca działający w imieniu podatnika, 6 płatnik, 7–8 wystawca lub odbiorca JST, 9–10 wystawca lub odbiorca będący członkiem grupy VAT oraz — nowość w FA(3) — 11, pracownik, który dokonał zakupu w imieniu firmy. Inne role używają RolaInna z opisem. |
PodmiotUpowazniony | Warunkowy | Podmiot upoważniony, taki jak organ egzekucyjny lub komornik sądowy wystawiający w imieniu podatnika (RolaPU). |
Fa | Obowiązkowy | Właściwa faktura: waluta, daty, numery, sumy VAT według stawek, adnotacje, rodzaj faktury, pozycje (FaWiersz) oraz opcjonalne węzły Rozliczenie, Platnosc, WarunkiTransakcji i Zamowienie. |
Stopka | Opcjonalny | Tekst stopki, numer KRS, REGON i podobne dane rejestrowe. |
Zalacznik | Opcjonalny | Ustrukturyzowany załącznik XML dla faktur z dużą liczbą danych o jednostkach, ilościach lub cenach (media, telekomunikacja). Jego stosowanie wymaga wcześniejszego zgłoszenia w e-Urzędzie Skarbowym; załącznik jest częścią faktury i przyjmowany jest wyłącznie XML, nie PDF ani obrazy. |
Broszura rozróżnia pola obowiązkowe (zawsze wypełniane, np. NIP sprzedawcy), pola opcjonalne (wypełniane zawsze, gdy spełniony jest warunek ustawowy, np. P_11A) oraz pola fakultatywne (według uznania podatnika, np. SystemInfo). Pominięcie węzłów fakultatywnych jest dopuszczalne; pominięcie pola opcjonalnego, którego warunek jest spełniony, daje nieprawidłową fakturę, nawet jeśli XSD przejdzie.
Kluczowe pola wewnątrz Fa
Większość tego, co księgowy rozpoznaje jako „fakturę", znajduje się w Fa, z nazwami pól odziedziczonymi ze struktury raportowej JPK_FA.
KodWaluty- Waluta ISO 4217; „PLN" dla faktur w walucie polskiej. Kwoty podaje się w walucie faktury, z wyjątkiem kwot podatku przeliczonych zgodnie z ustawą o VAT, które mają własne pola (
P_14_xW) obokKursWaluty. P_1,P_1M- Data wystawienia (obowiązkowa) i miejsce wystawienia (fakultatywne). Dla faktury online prawną datą wystawienia jest data przesłania, o ile P_1 jest z nią równa; dla faktur w trybie offline24, niedostępności i awaryjnym — oraz dla faktur online przesłanych po P_1 — formalną datą wystawienia jest sama P_1.
P_2- Własny kolejny numer faktury sprzedawcy. Nie jest to numer KSeF; tych dwóch nie wolno mylić.
P_6,P_6A,OkresFa- Data dostawy lub zapłaty, jeśli różni się od P_1 — na poziomie faktury, gdy jest wspólna dla wszystkich pozycji, w przeciwnym razie na poziomie pozycji w
P_6A, albo jako okres (P_6_Od/P_6_Do) dla usług ciągłych. P_13_x,P_14_x,P_15- Sumy netto i kwoty VAT dla poszczególnych koszyków stawek (podstawowa 23 % lub 22 %, obniżona 8 %/7 %, 5 %/4 %, 3 %, krajowa stawka zerowa, WDT, eksport, zwolnione, odwrotne obciążenie, poza zakresem) oraz kwota należności ogółem. Ministerstwo zwraca uwagę, że FA(3) nadal nie rozdziela 22 % od 23 % na poziomie sum — dokładną stawkę odczytuje się z
P_12w pozycji. Adnotacje- Adnotacje ustawowe jako kody:
P_16metoda kasowa,P_17samofakturowanie,P_18odwrotne obciążenie,P_18Amechanizm podzielonej płatności,P_19podstawa zwolnienia,P_22nowe środki transportu,P_23procedura uproszczona (transakcja trójstronna), znaczniki procedury marży. RodzajFaktury- Rodzaj faktury:
VAT(podstawowa),KOR(korygująca),ZAL(zaliczkowa),ROZ(rozliczeniowa po zaliczce),UPR(uproszczona),KOR_ZALiKOR_ROZ(korekty dwóch ostatnich). Korekta faktury uproszczonej używaKOR. W fakturach korygujących wszystkie pola pokazują stan po korekcie, natomiast pola podstaw, podatku i sum zawierają różnicę. FaWiersz- Pozycje:
NrWierszaFa(numer wiersza), opcjonalnyUU_ID(fakultatywny unikalny klucz wiersza do 50 znaków, wiążący wiersze korekty z wierszami pierwotnymi),P_7(nazwa towaru lub usługi, obecnie do 512 znaków),Indeks,GTIN,PKWiU,CN,P_8A(jednostka miary),P_8B(ilość),P_9A(cena jednostkowa netto),P_9B(cena jednostkowa brutto),P_10(rabaty),P_11(wartość netto wiersza),P_11A(wartość brutto wiersza),P_11VatorazP_12, kod stawki. - Kody stawek
P_12 - „23", „22", „8", „7", „5", „4", „3", „0 KR" (krajowa stawka zerowa), „0 WDT" (wewnątrzwspólnotowa dostawa towarów), „0 EX" (eksport), „zw" (zwolnione), „oo" (krajowe odwrotne obciążenie), „np I" i „np II" (poza polskim zakresem opodatkowania, to drugie dla usług z art. 100 ust. 1 pkt 4). Transakcje spoza ustawy o VAT, takie jak bony różnego przeznaczenia, nie są pozycjami; mogą pojawić się wyłącznie jako informacja dodatkowa w
Rozliczenie. Platnosc- Status i data płatności,
TerminPlatnoscijako data (Termin) lub opis ustrukturyzowany (liczba i jednostka, np. 14 dni), forma płatności, rachunki bankowe i warunki skonta. Zamowienie- Używane wyłącznie dla faktur zaliczkowych i ich korekt, gdzie zastępuje
FaWiersz.
Formaty pól: XML w UTF-8; pola tekstowe domyślnie 256 znaków, 512 dla nazw, linii adresu, P_7 i tekstu załącznika, 50 dla kodów klasyfikacji, jednostek i UU_ID, 32 dla IDNabywcy, 20 dla GTIN. Daty mają format RRRR-MM-DD; znacznik czasu w nagłówku to ISO 8601 w UTC.
Co zmieniło się względem FA(2)
Ministerstwo wymienia zmiany, które uważa za korzystne dla podatników; żadna z nich nie zmienia treści fiskalnej faktury, ale kilka wpływa na mapowanie.
- Termin płatności:
TerminPlatnoscimoże zawierać datę lub opis ustrukturyzowany (liczba plus jednostka) zamiast wolnego tekstu, a pole może opisywać płatność już dokonaną lub przyszłą. - Rola pracownika:
Podmiot3zyskuje rolę 11, „pracownik", tak aby wydatek zakupiony przez pracownika w imieniu firmy mógł nieść tożsamość pracownika na potrzeby rozliczania wydatków. - Dłuższe opisy:
P_7rośnie do 512 znaków. - JST i grupy VAT: nowe znaczniki w
Podmiot2informują jednostkę samorządu terytorialnego lub grupę VAT, do której jednostki podległej lub członka należy zakup; przy wartości „1"Podmiot3zawiera NIP lub identyfikator wewnętrzny tej jednostki. - Załącznik: nowy element
Zalacznikdla dużych wolumenów danych o jednostkach i cenach, wymagający uprzedniego zgłoszenia w e-Urzędzie Skarbowym (otwartego od 1 stycznia 2026 r.). - Co się nie zmieniło: nadal nie ma pola rabatu procentowego w wierszu — rabat jest osobną pozycją lub jest uwzględniony w cenach jednostkowych — a sumy nadal nie rozróżniają 22 % od 23 %.
Sesja otwarta z kodem formularza FA(2) nie może przenosić plików FA(3) i odwrotnie; oprogramowanie musi wybrać kod formularza zgodny z plikiem.
Mapowanie faktury na FA(3)
Faktura utrzymywana w modelu EN 16931 mapuje się na FA(3) pole po polu, ale nie bezstratnie w obu kierunkach: FA(3) ma pola, których brakuje w EN 16931 (znaczniki JST/GV, adnotacja o podzielonej płatności, krajowe kody stawek), a kody kategorii VAT z EN 16931 są zastąpione listą stawek P_12.
| Pojęcie fakturowe | Termin EN 16931 | Pole FA(3) |
|---|---|---|
| Numer faktury | BT-1 | Fa/P_2 |
| Data wystawienia | BT-2 | Fa/P_1 (a dla faktur online rozstrzyga data przesłania) |
| Rodzaj faktury | BT-3 (380, 381, 386…) | Fa/RodzajFaktury (VAT, KOR, ZAL, ROZ, UPR, KOR_ZAL, KOR_ROZ) |
| Waluta | BT-5 | Fa/KodWaluty |
| Identyfikator VAT sprzedawcy | BT-31 | Podmiot1/DaneIdentyfikacyjne/NIP |
| Identyfikator VAT nabywcy | BT-48 | Podmiot2/DaneIdentyfikacyjne/NIP lub NrVatUE + KodKraju |
| Data dostawy | BT-72 | Fa/P_6, FaWiersz/P_6A lub OkresFa |
| Termin płatności | BT-9 | Fa/Platnosc/TerminPlatnosci/Termin |
| Nazwa pozycji, ilość, jednostka, cena netto | BT-153, BT-129, BT-130, BT-146 | FaWiersz/P_7, P_8B, P_8A, P_9A |
| Stawka i kategoria VAT pozycji | BT-152, BT-151 | FaWiersz/P_12 (kod stawki niesie obie informacje) |
| Podsumowanie VAT według stawek | BG-23 | Fa/P_13_x, P_14_x |
| Kwota należności | BT-115 | Fa/P_15 |
| Faktura poprzedzająca (korekta) | BG-3 | Fa/DaneFaKorygowanej z numerem KSeF faktury pierwotnej, jeśli go posiada |
Dwie reguły mapowania zasługują na uwagę. Pozycja z odwrotnym obciążeniem jest kodowana jako oo z adnotacją w P_18; wewnątrzwspólnotowa dostawa to 0 WDT, eksport 0 EX, krajowa stawka zerowa 0 KR — sprowadzenie ich do „0 %" gubi to, czego potrzebuje księgowy nabywcy. A faktura korygująca zawiera stan po korekcie w każdym polu, ale różnice w podstawach, podatku i sumie — inaczej niż konwencja noty kredytowej w EN 16931. Zob. formaty e-faktur oraz EN 16931.
Walidacja: co sprawdza XSD, a co sprawdza KSeF
Przejście XSD jest konieczne, ale niewystarczające: KSeF sprawdza wzór i uprawnienia nadawcy przed nadaniem numeru; poprawność fiskalna jest odpowiedzialnością wystawcy.
XSD wymusza kolejność elementów, krotność, typy danych, długości pól i zamknięte listy kodów. KSeF dodaje sprawdzenie wersji schematu dla sesji oraz sprawdzenie uprawnień. Nie weryfikuje statusu nabywcy w wykazie podatników VAT, nie odrzuca faktury zaadresowanej do niewłaściwego klienta i nie przelicza arytmetyki — Pytania i odpowiedzi Ministerstwa wskazują, że błędna suma w przyjętej fakturze jest naprawiana fakturą korygującą, natomiast odrzucony plik poprawia się i przesyła ponownie, bo nigdy nie stał się fakturą. Trzydzieści kilka przykładów w broszurze to praktyczne odniesienie dla przypadków brzegowych.
Jak KRONENWERK to obsługuje
Obsługiwane z ograniczeniami. KRONENWERK generuje XML FA(3) (wersja 1-0E) dla faktur, faktur korygujących i faktur zaliczkowych na podstawie danych faktury i rozstrzygnięcia podatkowego, waliduje plik względem XSD Ministerstwa i własnych kontroli przy wystawieniu oraz wczytuje przychodzące pliki FA(3) jako faktury zakupowe. Trzy kody stawki zerowej, odwrotne obciążenie i zwolnienie są prowadzone jako odrębne kategorie, a kwoty w koszykach są obliczane z pozycji, a nie wpisywane. Przesyłanie do KSeF jest Jeszcze niegotowe: moduł KSeF 2.0 nie był używany z systemem produkcyjnym, a KRONENWERK nie sprzedaje subskrypcji polskim firmom, dopóki to nie nastąpi — zob. centrum Polska oraz KSeF 2.0. Element załącznika, warianty FA_PEF i znaczniki JST/grup VAT nie są generowane. Programiści mogą porównać powyższe mapowanie z przewodnikiem integracji KSeF; bezpłatne narzędzie do sprawdzania e-faktur waliduje pliki względem reguł danego kraju bez ich zapisywania.
Najczęściej zadawane pytania
Czy FA(3) jest zgodna z EN 16931 lub Peppol BIS?
Nie. FA(3) to schemat krajowy; plik XRechnung, Factur-X lub Peppol BIS trzeba na nią zmapować, a część informacji (krajowe kody stawek, znacznik podzielonej płatności) nie ma odpowiednika w EN 16931.
Czy nadal mogę wysyłać faktury FA(2)?
Nie do środowiska produkcyjnego ani demo: od 1 lutego 2026 r. przyjmują one wyłącznie FA(3), także dla korekt starszych faktur FA(2). Jedynie środowisko testowe nadal przyjmuje FA(2).
Które części FA(3) są opcjonalne?
Rozliczenie, Platnosc, WarunkiTransakcji, Stopka i Zalacznik są fakultatywne; wypełnienie jednej z nich może uczynić pola wewnątrz niej obowiązkowymi.
Co oznacza „0 WDT" w P_12?
Stawkę zerową dla wewnątrzwspólnotowej dostawy towarów; „0 EX" to stawka zerowa dla eksportu, a „0 KR" — krajowa stawka zerowa. Są to odrębne kody i nie wolno ich łączyć.
Źródła
- Ministry of Finance (Poland) — Broszura informacyjna dotycząca struktury logicznej FA(3) (March 2026) — odczytano
- Ministry of Finance (Poland) — Pytania i odpowiedzi KSeF 2.0 (section: Rozwiązania informatyczne, integracje i struktura KSeF) — odczytano
- Ministry of Finance (Poland) — Środowiska KSeF API 2.0 (accepted schemas per environment) — odczytano
- Ministry of Finance (Poland) — Sesja interaktywna (schema selection when opening a session) — odczytano