Faktura ustrukturyzowana KSeF

Czym jest faktura ustrukturyzowana? Format FA(2) XML, wymagane pola i walidacja.

Faktura ustrukturyzowana to fundament Krajowego Systemu e-Faktur — dokument elektroniczny w formacie XML, zgodny ze schematem FA(2) opracowanym przez Ministerstwo Finansów. W przeciwieństwie do tradycyjnych faktur papierowych czy PDF-ów, faktura ustrukturyzowana ma ściśle określoną strukturę danych, która umożliwia automatyczne przetwarzanie przez systemy informatyczne. Każde pole — od numeru NIP, przez pozycje faktury, po kody GTU — musi spełniać precyzyjne wymagania walidacyjne. Zrozumienie formatu FA(2) jest kluczowe dla każdego przedsiębiorcy, programisty i księgowego, który chce prawidłowo korzystać z KSeF. W tym artykule przedstawiamy kompletny przewodnik po strukturze faktury ustrukturyzowanej — od wymaganych pól, przez walidację, aż po najczęstsze błędy i sposoby ich unikania.

Czym jest faktura ustrukturyzowana w KSeF

Faktura ustrukturyzowana (e-faktura) to dokument elektroniczny wystawiany i przesyłany wyłącznie za pośrednictwem Krajowego Systemu e-Faktur. Jej format jest zdefiniowany w schemacie XSD (XML Schema Definition) opublikowanym przez Ministerstwo Finansów pod nazwą FA(2). Schema ta określa dokładną strukturę pliku XML — nazwy elementów, ich typy danych, ograniczenia walidacyjne oraz relacje między poszczególnymi polami.

W odróżnieniu od faktury w formacie PDF, która jest w istocie obrazem dokumentu nieczytelnym dla maszyn (poza OCR), faktura ustrukturyzowana jest natywnie maszynowo czytelna. Każda informacja — nazwa kontrahenta, kwota netto, stawka VAT, numer pozycji — jest zapisana w oddzielnym elemencie XML, co umożliwia automatyczne księgowanie, walidację i analizę danych bez interwencji człowieka.

Schemat FA(2) jest drugą wersją struktury logicznej faktury KSeF. Pierwsza wersja (FA(1)) była stosowana w okresie dobrowolnego korzystania z systemu i została zaktualizowana na podstawie uwag zgłaszanych przez przedsiębiorców i dostawców oprogramowania. Wersja FA(2) zawiera m.in. rozszerzone pola dotyczące korekt, faktur zaliczkowych oraz oznaczeń procedur podatkowych. Aktualna schema jest dostępna na stronach Ministerstwa Finansów oraz w środowisku testowym KSeF.

Struktura pliku XML faktury ustrukturyzowanej FA(2)

Plik XML faktury ustrukturyzowanej składa się z kilku głównych sekcji (elementów nadrzędnych), z których każda grupuje określony typ danych. Sekcja nagłówkowa (Naglowek) zawiera informacje o wersji schematu, dacie wystawienia faktury, rodzaju dokumentu (faktura VAT, faktura korygująca, faktura zaliczkowa) oraz oznaczeniach systemowych. Sekcja podmiotów (Podmiot1, Podmiot2) definiuje dane sprzedawcy i nabywcy — NIP, nazwa, adres, dane rejestracyjne.

Sekcja pozycji faktury (Fa) to najobszerniejsza część dokumentu. Zawiera dane dotyczące poszczególnych linii faktury — nazwę towaru lub usługi, ilość, jednostkę miary, cenę jednostkową netto, wartość netto, stawkę VAT, kwotę VAT oraz wartość brutto. Każda pozycja może dodatkowo zawierać kody GTU (Grupy Towarów i Usług) oraz oznaczenia procedur szczególnych (np. MPP — mechanizm podzielonej płatności, TP — transakcje z podmiotami powiązanymi).

Na końcu dokumentu znajduje się sekcja podsumowująca (Razem), która zawiera sumy wartości netto, VAT i brutto w podziale na poszczególne stawki podatkowe. Schema FA(2) przewiduje również sekcje opcjonalne — np. dane dotyczące zamówienia, numeru umowy, warunków płatności czy informacji dodatkowych. Pełna struktura jest opisana w dokumentacji technicznej API KSeF, która jest niezbędnym źródłem wiedzy dla programistów integrujących systemy z KSeF.

Wymagane pola faktury ustrukturyzowanej

Schemat FA(2) definiuje zarówno pola obowiązkowe (wymagane dla każdego typu faktury), jak i pola warunkowe (wymagane tylko w określonych scenariuszach). Do pól bezwzględnie obowiązkowych należą: data wystawienia faktury (P_1), numer faktury (P_2), dane sprzedawcy (NIP, nazwa, adres), dane nabywcy (NIP — w przypadku transakcji B2B), pozycje faktury z pełnymi danymi kwotowymi oraz podsumowanie.

Pola warunkowe obejmują m.in.: numer KSeF faktury korygowanej (wymagany dla faktur korygujących), dane dotyczące zaliczek (wymagane dla faktur zaliczkowych), oznaczenia procedur podatkowych (wymagane, gdy transakcja podlega szczególnym procedurom), kody GTU (wymagane dla określonych grup towarów i usług zgodnie z przepisami o JPK_VAT) oraz informacje o mechanizmie podzielonej płatności.

Ważnym elementem jest pole P_13_11, które określa stawkę VAT dla każdej pozycji. Schema dopuszcza wyłącznie stawki zdefiniowane w polskim prawie podatkowym: 23%, 8%, 5%, 0% oraz oznaczenia „zw” (zwolniony), „np” (nie podlega), „oo” (odwrotne obciążenie). Wpisanie nieprawidłowej stawki powoduje natychmiastowe odrzucenie faktury przez system walidacyjny KSeF. Dlatego integracja z programem księgowym musi uwzględniać dokładne mapowanie stawek.

Pole XMLOpisObowiązkowePrzykład wartości
P_1Data wystawienia fakturyTak2026-04-01
P_2Numer fakturyTakFV/2026/04/001
P_3A / P_3BNazwa / NIP sprzedawcyTakFirma ABC Sp. z o.o. / 5261234567
P_4A / P_4BNazwa / NIP nabywcyTak (B2B)XYZ S.A. / 7891234560
P_7Nazwa towaru/usługiTakUsługa konsultingowa
P_8AJednostka miaryTakszt.
P_8BIlośćTak10
P_9ACena jednostkowa nettoTak500.00
P_11Wartość netto pozycjiTak5000.00
P_12Stawka VATTak23
P_13_1Suma netto dla stawki 23%Warunkowe5000.00
P_14_1Kwota VAT dla stawki 23%Warunkowe1150.00
P_15Kwota należności ogółemTak6150.00

Walidacja faktury ustrukturyzowanej — jak działa weryfikacja w KSeF

Każda faktura przesłana do KSeF przechodzi wieloetapowy proces walidacji, zanim zostanie zaakceptowana i otrzyma numer identyfikacyjny. Pierwszy etap to walidacja strukturalna — system sprawdza, czy plik XML jest poprawnie sformułowany (well-formed) i zgodny ze schematem XSD FA(2). Braki elementów obowiązkowych, nieprawidłowe typy danych (np. tekst zamiast liczby) czy naruszenia ograniczeń (np. za długi ciąg znaków) powodują natychmiastowe odrzucenie.

Drugi etap to walidacja biznesowa — system weryfikuje logiczną spójność danych. Sprawdzane jest m.in., czy sumy pozycji zgadzają się z podsumowaniem, czy NIP sprzedawcy jest zgodny z danymi podmiotu uwierzytelnionego w KSeF, czy daty są logicznie poprawne (np. data sprzedaży nie jest późniejsza niż data wystawienia w niedozwolonych przypadkach) oraz czy kwoty VAT są prawidłowo obliczone dla podanych stawek.

Trzeci etap dotyczy walidacji specyficznej dla typu dokumentu. Faktura korygująca musi zawierać odniesienie do numeru KSeF faktury pierwotnej. Faktura zaliczkowa musi zawierać dane dotyczące zamówienia i wpłaconej kwoty. Faktura do paragonu musi zawierać numer paragonu fiskalnego. Błędy na każdym z tych etapów skutkują odrzuceniem dokumentu z komunikatem błędu — kody błędów są udokumentowane w specyfikacji technicznej API KSeF.

Kody GTU i oznaczenia procedur w fakturze ustrukturyzowanej

Kody GTU (Grupy Towarów i Usług) to oznaczenia od GTU_01 do GTU_13, które identyfikują kategorie towarów i usług podlegających szczególnemu raportowaniu w JPK_VAT. W fakturze ustrukturyzowanej kody GTU są przypisywane na poziomie poszczególnych pozycji faktury, a nie na poziomie całego dokumentu — co stanowi zmianę w porównaniu z dotychczasowym raportowaniem w JPK_V7.

Przykładowe kody GTU to: GTU_01 (napoje alkoholowe), GTU_02 (paliwa), GTU_05 (odpady), GTU_06 (urządzenia elektroniczne), GTU_10 (budynki i budowle), GTU_12 (usługi niematerialne — doradcze, księgowe, prawne, zarządcze), GTU_13 (usługi transportowe i magazynowe). Prawidłowe przypisanie kodów GTU wymaga dokładnej analizy klasyfikacji PKWiU oferowanych towarów i usług — błędne kody mogą skutkować niezgodnością z danymi w JPK_VAT i potencjalnymi konsekwencjami kontrolnymi.

Oznaczenia procedur szczególnych (np. MPP, TP, MR_T, MR_UZ, I_42, I_63, B_SPV, B_MPV_PROWIZJA) również są wymagane w odpowiednich scenariuszach. Mechanizm podzielonej płatności (MPP) musi być oznaczony, gdy wartość faktury przekracza 15 000 zł i dotyczy towarów z załącznika nr 15 ustawy o VAT. Transakcje z podmiotami powiązanymi (TP) wymagają oznaczenia zgodnie z przepisami o cenach transferowych. Więcej o wpływie tych oznaczeń na rozliczenia w artykule KSeF a VAT.

Typy faktur obsługiwane w schemacie FA(2)

Schema FA(2) obsługuje wszystkie typy faktur przewidziane w polskim prawie podatkowym. Podstawowa faktura VAT (oznaczenie VAT) to najczęściej wystawiany dokument, dokumentujący sprzedaż towarów lub usług. Faktura korygująca (KOR) wymaga wskazania numeru KSeF dokumentu korygowanego oraz przyczyny korekty — format przewiduje zarówno korekty pozycyjne (zmiana konkretnych linii), jak i korekty zbiorcze.

Faktura zaliczkowa (ZAL) dokumentuje otrzymanie całości lub części zapłaty przed dokonaniem dostawy lub wykonaniem usługi. Schema wymaga podania danych zamówienia, kwoty zaliczki oraz przewidywanej daty dostawy. Faktura końcowa rozliczająca zaliczki musi zawierać odniesienia do wszystkich faktur zaliczkowych z danej transakcji — ich numery KSeF, kwoty i daty.

Oprócz tego schema FA(2) obsługuje: faktury do paragonów (wymagające podania numeru paragonu fiskalnego), faktury VAT marża, faktury RR (rolnik ryczałtowy), noty korygujące (w ograniczonym zakresie — KSeF nie obsługuje not w pełni, co wymaga alternatywnych rozwiązań) oraz faktury uproszczone (dla transakcji do 450 zł). Każdy typ dokumentu ma specyficzne wymagania dotyczące pól obowiązkowych i opcjonalnych, co jest szczegółowo opisane w dokumentacji technicznej publikowanej przez Ministerstwo Finansów.

Najczęstsze błędy w fakturach ustrukturyzowanych i jak ich unikać

Doświadczenia z testowego środowiska KSeF pokazują, że najczęstszym powodem odrzucenia faktur jest niezgodność sum — wartość netto pozycji nie zgadza się z podsumowaniem na poziomie stawek VAT, lub kwota VAT jest zaokrąglona inaczej niż wymaga schema. KSeF stosuje ściśle określone zasady zaokrąglania (matematyczne, do dwóch miejsc po przecinku), które mogą różnić się od reguł stosowanych w niektórych programach księgowych.

Drugim częstym błędem jest nieprawidłowy format NIP — schema wymaga NIP-u bez myślników i spacji, wyłącznie jako ciągu 10 cyfr. Programy, które przechowują NIP w formacie „526-12-34-567” lub „PL5261234567”, muszą dokonać konwersji przed wygenerowaniem pliku XML. Podobnie problematyczne są znaki specjalne w nazwach kontrahentów — cudzysłowy, ampersandy i znaki mniejszości/większości muszą być prawidłowo enkodowane w XML (tzw. entity encoding).

Trzeci błąd dotyczy referencji w fakturach korygujących — brak numeru KSeF faktury pierwotnej lub podanie nieprawidłowego numeru prowadzi do odrzucenia. Programy fakturujące muszą przechowywać numery KSeF wszystkich wystawionych i otrzymanych faktur, aby móc prawidłowo tworzyć dokumenty korygujące. Jednym z rozwiązań na polskim rynku jest Finito Pro, które automatycznie zarządza numerami KSeF i zapewnia poprawność referencji w korektach.

Generowanie faktur ustrukturyzowanych — narzędzia i podejścia techniczne

Istnieją trzy główne podejścia do generowania faktur ustrukturyzowanych w formacie FA(2). Pierwszym jest korzystanie z gotowego oprogramowania fakturującego z wbudowaną obsługą KSeF — aplikacja generuje plik XML na podstawie danych wprowadzonych przez użytkownika i przesyła go do KSeF przez API. To rozwiązanie jest najwygodniejsze dla małych firm, które nie dysponują zasobami programistycznymi.

Drugim podejściem jest integracja istniejącego systemu ERP z KSeF za pośrednictwem API. W tym scenariuszu system ERP generuje plik XML zgodny ze schematem FA(2) i przesyła go do KSeF programowo. Wymaga to zaimplementowania logiki generowania XML, walidacji lokalnej (przed wysłaniem do KSeF) oraz obsługi odpowiedzi API (potwierdzenia, błędy, statusy). To podejście jest typowe dla średnich i dużych przedsiębiorstw korzystających z systemów takich jak SAP, Comarch ERP, Enova czy Symfonia.

Trzecim podejściem jest wykorzystanie miniPortalu KSeF — webowej aplikacji udostępnianej przez Ministerstwo Finansów, która pozwala na ręczne wypełnienie formularza i wygenerowanie faktury ustrukturyzowanej online. To rozwiązanie jest przeznaczone dla firm o niewielkiej liczbie faktur (kilka miesięcznie) i nie wymaga żadnej integracji technicznej. Jednak przy większych wolumenach jest zbyt czasochłonne i podatne na błędy ręczne. Niezależnie od wybranego podejścia, warto zacząć od wyboru odpowiedniego programu do KSeF.

Przechowywanie i archiwizacja faktur ustrukturyzowanych

Jedną z największych zalet KSeF z perspektywy archiwizacji jest to, że system przechowuje faktury przez 10 lat od końca roku, w którym zostały wystawione. Oznacza to, że przedsiębiorcy nie muszą samodzielnie archiwizować faktur wystawionych i otrzymanych w KSeF — system pełni funkcję centralnego archiwum. To istotne uproszczenie, zwłaszcza w kontekście dotychczasowego obowiązku przechowywania dokumentów podatkowych przez 5 lat (a w praktyce dłużej, ze względu na terminy przedawnienia).

Mimo to eksperci rekomendują prowadzenie lokalnych kopii zapasowych faktur pobranych z KSeF. W przypadku awarii systemu, przerw technicznych lub sporów z kontrahentami, dostęp do lokalnej kopii XML może okazać się nieoceniony. Systemy księgowe powinny automatycznie pobierać i archiwizować faktury z KSeF — zarówno wystawione, jak i otrzymane. Format XML gwarantuje, że dane nie ulegną degradacji w czasie (w przeciwieństwie do np. skanów PDF).

Warto pamiętać, że faktura ustrukturyzowana w KSeF jest dokumentem prawnie wiążącym — nie wymaga dodatkowego podpisu elektronicznego ani pieczęci. Numer KSeF pełni funkcję uwierzytelniającą. Faktury przechowywane w KSeF mogą być udostępniane kontrahentom, organom kontrolnym i biurom rachunkowym za pośrednictwem systemu autoryzacji, bez konieczności fizycznego przekazywania plików.

Podsumowanie

Faktura ustrukturyzowana w formacie FA(2) to centralny element KSeF, który determinuje sposób wystawiania, przesyłania i przetwarzania dokumentów sprzedaży w Polsce. Zrozumienie jej struktury — wymaganych pól, kodów GTU, oznaczeń procedur, zasad walidacji i typów dokumentów — jest niezbędne zarówno dla przedsiębiorców, jak i dla zespołów technicznych odpowiedzialnych za integrację systemów. Kluczem do sukcesu jest odpowiednie przygotowanie: wybór oprogramowania obsługującego FA(2), przeprowadzenie testów w środowisku testowym oraz wdrożenie procedur kontroli jakości danych. Firmy, które zainwestują czas w poznanie formatu faktury ustrukturyzowanej, unikną kosztownych błędów i przestojów po wejściu w życie obowiązku KSeF w 2026 roku.

Gotowy na zmianę?

Dołącz do setek polskich firm, które już zautomatyzowały swoje procesy. Bez zobowiązań — 30 dni za darmo.

Rozpocznij bezpłatny test →

Najczęstsze pytania

Faktura ustrukturyzowana to plik XML o ściśle określonej strukturze (schemat FA(2)), w którym każda informacja jest zapisana w osobnym elemencie danych. Faktura PDF to obraz dokumentu, nieczytelny dla maszyn bez użycia OCR. Faktura ustrukturyzowana umożliwia automatyczne przetwarzanie, walidację i księgowanie — PDF tego nie zapewnia.

Pola bezwzględnie obowiązkowe to: data wystawienia, numer faktury, dane sprzedawcy (NIP, nazwa, adres), dane nabywcy (NIP w B2B), pozycje faktury z pełnymi danymi kwotowymi (nazwa, ilość, cena, wartość netto, stawka VAT, kwota VAT) oraz podsumowanie. Pola warunkowe zależą od typu dokumentu i rodzaju transakcji.

Faktura zostanie odrzucona i nie otrzyma numeru KSeF — oznacza to, że nie jest uznawana za wystawioną. System zwraca kod błędu z opisem problemu. Należy poprawić dane i przesłać fakturę ponownie. Dlatego warto stosować lokalną walidację (pre-walidację) przed wysłaniem do KSeF.

Tak. Schema FA(2) obsługuje faktury korygujące (typ KOR). Każda korekta musi zawierać numer KSeF faktury pierwotnej, przyczynę korekty oraz dane korygowane. Obsługiwane są korekty pozycyjne (zmiana konkretnych linii), korekty zbiorcze oraz korekty danych formalnych (np. adres, nazwa).

Kody GTU (od GTU_01 do GTU_13) należy stosować dla towarów i usług objętych obowiązkiem raportowania w JPK_VAT. Przypisuje się je na poziomie poszczególnych pozycji faktury. Odpowiedni kod zależy od klasyfikacji PKWiU towaru lub usługi — np. GTU_12 dla usług doradczych, prawnych i księgowych, GTU_06 dla urządzeń elektronicznych.

KSeF przechowuje faktury przez 10 lat od końca roku wystawienia, więc formalnie nie ma obowiązku dodatkowej archiwizacji. Niemniej eksperci zalecają prowadzenie lokalnych kopii zapasowych na wypadek awarii systemu, przerw technicznych lub potrzeby szybkiego dostępu do danych w trybie offline.