Wróć do bloga
Poradnik17 kwietnia 202611 minRafał Zeidler

XML i schemat FA(3) w KSeF - przewodnik dla przedsiębiorców

Czym jest XML, po co KSeF go wymaga i dlaczego FA(2) nie działa w 2026 roku. Praktyczny przewodnik bez żargonu technicznego.

XML i schemat FA(3) w KSeF - przewodnik dla przedsiębiorców

Streszczenie artykułu

XML to ustrukturyzowany format danych, nie obraz ani PDF. KSeF go wymaga, bo maszyny mogą go czytać i walidować automatycznie.

Schemat FA(2) był poprzednią wersją struktury faktury. Od 2026 roku obowiązuje FA(3). Jeśli Twój system nadal używa FA(2), faktury będą odrzucane.

Nieprawidłowy XML to odrzucona faktura - czyli faktura, która w świetle prawa nie istnieje. Walidacja przed wysyłką jest koniecznością, nie opcją.

Spis treści

1. Czym jest XML - i dlaczego KSeF go wymaga

2. Schemat FA(2) - co oznacza ta nazwa i skąd pochodzi

3. Struktura faktury w FA(2) - kluczowe elementy XML

4. FA(2) a FA(3) - co się zmieniło i co obowiązuje

5. Dlaczego XML i schemat FA są ważne dla integracji z KSeF

Kluczowe Wnioski

Poniższa tabela zbiera najważniejsze wnioski z artykułu - jedno zdanie na każdą sekcję.

PunktSzczegóły
XML jako fundament KSeFKSeF nie przyjmuje PDF - wymaga danych w formacie XML zgodnym z FA(3). To dane, nie wizualizacja.
Schemat FA(2) - kontekst historycznyFA(2) obowiązywał do 2026 roku. Wiele starszej dokumentacji nadal się do niego odwołuje - stąd zamieszanie.
Struktura faktury w XMLWęzły Podmiot1, Podmiot2, Fa i FaWiersz - każdy z obowiązkowymi polami precyzyjnie zdefiniowanymi przez MF.
FA(3) to aktualny obowiązekOd 1 lutego 2026 (duże firmy) i 1 kwietnia 2026 (pozostałe) - jedyny schemat akceptowany przez KSeF.
Walidacja chroni przed odrzuceniemBłąd XML równa się faktura odrzucona, a odrzucona faktura prawnie nie istnieje. Walidacja przed wysyłką jest kluczowa.

Czym jest XML - i dlaczego KSeF go wymaga

XML (eXtensible Markup Language) to format tekstowy służący do zapisu danych w sposób zrozumiały zarówno dla człowieka, jak i dla maszyny. Nie jest to język programowania ani oprogramowanie - to sposób organizowania informacji za pomocą znaczników, czyli tagów. Każdy element danych jest opisany parą otwierającego i zamykającego tagu, np. nazwa kontrahenta, kwota faktury czy numer NIP są zapisane w wyraźnie oznaczonych polach.

Najlepsza analogia to porównanie do formularza urzędowego. Wolne pismo może zawierać te same informacje co wypełniony formularz, ale urzędnik może z trudem wyłuskać odpowiedź na konkretne pytanie. Formularz - z gotowymi polami do wypełnienia - daje odpowiedź natychmiast. XML działa dokładnie tak samo: zamiast swobodnego tekstu masz precyzyjnie opisane pola, które system może odczytać automatycznie.

PDF działa zupełnie inaczej. Plik PDF to w istocie opis wizualny dokumentu - mówi drukarce i ekranowi, gdzie narysować tekst, ile ma mieć pikseli i jak wyglądać. Człowiek widzi fakturę. System widzi obraz. Nie ma tam danych, które komputer mógłby przetworzyć bez dodatkowego rozpoznawania tekstu (OCR). Właśnie dlatego KSeF nie przyjmuje PDF jako właściwej faktury.

Ministerstwo Finansów wybrało XML z kilku powodów. Po pierwsze, XML jest maszy czytelny: system może zweryfikować, czy NIP ma 10 cyfr, czy kwoty się zgadzają i czy wszystkie wymagane pola są wypełnione - bez udziału człowieka. Po drugie, XML jest walidowalny: istnieje możliwość sprawdzenia dokumentu wobec wzorca (tzw. schematu XSD) jeszcze przed wysyłką. Po trzecie, XML jest interoperacyjny: każdy system ERP, każda aplikacja i każdy serwer mogą go odczytać w ten sam sposób, niezależnie od producenta oprogramowania.

Podsumowując różnicę, którą każdy przedsiębiorca powinien zapamiętać: PDF jest dla oczu, XML jest dla systemów. KSeF to system, a nie człowiek - stąd wymóg XML.

CechaPDFXML FA(3)
Co przechowujeWizualizację dokumentu (układ, czcionki, obrazy)Dane strukturalne (pola, wartości, relacje)
Kto czytaCzłowiekSystem / maszyna
Czy można automatycznie walidowaćNie (bez OCR)Tak - wobec schematu XSD
Czy KSeF akceptujeNieTak (tylko FA(3))
Czy nadaje numer KSeFNieTak - po pozytywnej walidacji

Schemat FA(2) - co oznacza ta nazwa i skąd pochodzi

Schemat XSD to wzorzec opisujący, jak ma wyglądać poprawny dokument XML. Możesz myśleć o nim jak o przepisie kulinarnym: przepis mówi, jakich składników użyć, w jakiej kolejności i w jakich proporcjach. Schemat XSD mówi dokumentowi XML, jakie elementy muszą być obecne, jakie typy danych są dopuszczalne (np. data musi mieć format RRRR-MM-DD) i jakie relacje muszą zachodzić między polami. Faktura XML bez zgodności ze schematem to jak danie przygotowane niezgodnie z przepisem - rezultat może być niejadalny.

Skrót FA pochodzi od słowa faktura - FA(1), FA(2) i FA(3) to kolejne wersje schematu XSD dla faktury ustrukturyzowanej w KSeF, publikowane przez Ministerstwo Finansów. FA(1) był stosowany w fazie pilotażowej systemu. FA(2) obowiązywał w okresie dobrowolnego korzystania z KSeF - firmy mogły, ale nie musiały wystawiać faktur przez system. FA(3) jest schematem obowiązkowym, wprowadzonym wraz z etapowym uruchomieniem obowiązkowego KSeF.

Dlaczego warto wiedzieć, czym jest FA(2), skoro już nie obowiązuje? Dokumentacja systemów ERP, artykuły branżowe, poradniki i wewnętrzne procedury wielu firm były tworzone właśnie w oparciu o FA(2). Jeśli natkniesz się na przykłady pól, opisy węzłów XML lub instrukcje konfiguracji systemu odwołujące się do FA(2), musisz wiedzieć, że masz do czynienia z nieaktualną wersją. Skutek może być poważny: faktura wysłana w formacie FA(2) do systemu KSeF w 2026 roku zostanie odrzucona.

Ważna data: od 1 lutego 2026 roku jedynym akceptowanym przez KSeF schematem jest FA(3). Dotyczy to dużych firm (sprzedaż brutto powyżej 200 mln zł w 2024 roku). Od 1 kwietnia 2026 roku obowiązek ten obejmuje wszystkich pozostałych podatników VAT. FA(2) nie jest już akceptowany przez system - a każda faktura wysłana w tym formacie zostanie automatycznie odrzucona, bez wyjątku.

WersjaKiedy obowiązywałaStatus w 2026 rokuKluczowe cechy
FA(1)Pilotaż KSeF (2021–2022)WycofanaWersja testowa, ograniczona funkcjonalność
FA(2)Dobrowolny KSeF (2022–2025)Wycofana - odrzucana przez systemSzersze zastosowanie, brak pełnych wymagań B2B
FA(3)Obowiązkowy KSeF (od 2026)Jedyny akceptowany schematTerminy płatności, załączniki, rozszerzone pola, kody GTU

Struktura faktury w FA(2) - kluczowe elementy XML

Aby zrozumieć FA(3) i ewentualne problemy z migracją z FA(2), warto poznać podstawową strukturę faktury XML w KSeF. Dokument podzielony jest na kilka głównych węzłów, z których każdy odpowiada za określoną część danych faktury. Węzły to nic innego jak sekcje dokumentu - jak rozdziały w umowie.

Podmiot1 to sekcja opisująca sprzedawcę - wystawcę faktury. Zawiera dane identyfikacyjne firmy: NIP, nazwę, adres. To pole jest obowiązkowe i musi dokładnie odpowiadać danym zarejestrowanym w rejestrach podatkowych. Podmiot2 to analogicznie nabywca faktury. Również zawiera NIP, nazwę i adres. W przypadku transakcji z osobą fizyczną nieprowadzącą działalności pole jest opcjonalne lub wypełniane w specyficzny sposób.

Węzeł Fa to nagłówek faktury - jej metadane. Tutaj znajdują się: numer faktury (P_2), data wystawienia (P_1), data sprzedaży (P_6), typ faktury (P_15), waluta (KodWaluty), forma płatności (TerminPlatnosci) i inne kluczowe atrybuty. FaWiersz to pozycja faktury - jeden wiersz odpowiada jednemu produktowi lub usłudze. Zawiera opis towaru lub usługi, ilość, jednostkę miary, cenę jednostkową netto, stawkę VAT i wartości. Faktura może mieć wiele takich wierszy. Podsumowanie to węzeł zbierający sumy VAT według stawek - łączną kwotę netto, VAT i brutto.

Jakie pola najczęściej powodują błędy walidacji? Doświadczenie z wdrożeń pokazuje, że problemy koncentrują się w kilku miejscach. NIP musi mieć dokładnie 10 cyfr i przejść weryfikację sumy kontrolnej - prefiks PL ani spacje nie są dozwolone w polu przeznaczonym wyłącznie na cyfry. Daty muszą być w formacie ISO 8601 (RRRR-MM-DD) - zapis 15.04.2026 zostanie odrzucony. Kody stawki VAT muszą być zgodne ze słownikiem MF, a nie dowolnymi opisami. Kwoty muszą być zaokrąglone zgodnie z algorytmem KSeF - nawet różnica jednego grosza powoduje odrzucenie.

Węzeł XMLCo zawieraWymagany?
Podmiot1Dane sprzedawcy: NIP, nazwa firmy, adresTak - zawsze
Podmiot2Dane nabywcy: NIP, nazwa firmy, adresTak - dla B2B; inne zasady dla B2C
FaNagłówek faktury: numer, daty, waluta, forma płatności, typ dokumentuTak - zawsze
FaWierszPozycja faktury: opis, ilość, cena netto, stawka VAT, wartościTak - minimum 1 wiersz
PodsumowanieSumy VAT według stawek, kwota bruttoTak - zawsze
Podmiot3Dane dodatkowego uczestnika transakcji (np. przy samofakturowaniu)Nie - zależnie od scenariusza

FA(2) a FA(3) - co się zmieniło i co obowiązuje

Przejście z FA(2) na FA(3) to nie tylko aktualizacja numeru wersji - to zmiana wymagań, które bezpośrednio wpływają na to, jak system ERP lub aplikacja wystawiająca faktury musi budować dokument XML. Jeśli Twój dostawca oprogramowania nie zaktualizował integracji do FA(3), faktury będą odrzucane przez KSeF bez żadnego ostrzeżenia, które byłoby zrozumiałe dla użytkownika końcowego.

Co nowego wprowadza FA(3)? Przede wszystkim rozszerzono możliwości opisu terminów płatności - w FA(3) można precyzyjnie wskazać wiele terminów płatności dla jednej faktury, co jest ważne przy fakturach ratowych. Dodano możliwość dołączania załączników bezpośrednio do faktury XML - wcześniej nie było to możliwe. Rozszerzono pole numeru konta bankowego, dostosowując go do standardu IBAN. Dodano nowe kody procedur specjalnych, m.in. dla transakcji między podmiotami powiązanymi (TP), mechanizmu podzielonej płatności (MPP) i sprzedaży przez platformy cyfrowe (IED). Rozbudowano kody GTU - identyfikatory rodzajów towarów i usług istotne dla JPK i raportowania VAT.

Jak sprawdzić, czy Twój system działa na FA(3)? Poniżej lista pytań do dostawcy ERP lub programu księgowego:

Kiedy ostatnio aktualizowałeś moduł KSeF w swoim systemie? Czy aktualizacja obejmuje schemat FA(3) opublikowany przez MF? Czy system testuje faktury na środowisku demo KSeF przed wysyłką? Jaką wersję schematu XSD generuje Twój eksport XML? Czy system obsługuje nowe pola FA(3): wiele terminów płatności, IBAN, kody TP i MPP? Jakie jest zachowanie systemu, gdy faktura zostanie odrzucona przez KSeF?

FunkcjaFA(2)FA(3)
Status w 2026 rokuWycofany - dokumenty odrzucaneJedyny akceptowany schemat
Terminy płatnościJeden terminWiele terminów, precyzyjny opis
Załączniki do fakturyNiedostępneMożliwe przez API
Numer konta bankowegoPodstawowy formatRozszerzony (IBAN)
Procedury TP/MPP/IEDOgraniczonePełne wsparcie
Kody GTUPodstawoweRozbudowane
Wymagana odDobrowolny KSeF (wycofana)1 lutego 2026 (duże firmy), 1 kwietnia 2026 (pozostałe)

Dlaczego XML i schemat FA są ważne dla integracji z KSeF

W systemie KSeF faktura albo przechodzi walidację i zostaje przyjęta, albo zostaje odrzucona. Nie ma stanu pośredniego. Odrzucona faktura w świetle prawa podatkowego nie istnieje - nie jest uznana za wystawioną, nie może być podstawą do odliczenia VAT u nabywcy i nie jest przechowywana w systemie MF. Trzeba ją poprawić i wysłać ponownie.

Proces walidacji w KSeF przebiega na trzech poziomach. Pierwszy poziom to walidacja struktury XSD: system sprawdza, czy XML jest w ogóle zbudowany poprawnie - czy elementy są w odpowiedniej kolejności, czy typy danych się zgadzają, czy nie brakuje wymaganych pól. Jeśli plik nie przejdzie tego etapu, nie trafia nawet do kolejnych sprawdzeń. Drugi poziom to walidacja biznesowa: system sprawdza reguły logiczne - czy data sprzedaży nie jest późniejsza niż data wystawienia, czy suma VAT jest matematycznie poprawna, czy identyfikatory podatkowe mają prawidłowy format. Trzeci poziom to kontrola duplikatów: KSeF sprawdza, czy faktura z tym samym numerem, NIP sprzedawcy i typem dokumentu nie została już wcześniej zarejestrowana w systemie (kontrola obejmuje 10 lat wstecz).

Jak uniknąć odrzucenia faktury? Najskuteczniejszą metodą jest walidacja lokalna - sprawdzenie XML przed wysyłką do KSeF, przy użyciu narzędzi dostępnych poza systemem produkcyjnym. Dzięki temu błędy są wykrywane na etapie przygotowania dokumentu, a nie dopiero po próbie wysyłki.

KSeFGPT umożliwia import i weryfikację faktur XML bezpośrednio z KSeF. Platforma pozwala sprawdzić strukturę dokumentu, zidentyfikować błędy i zarządzać fakturami bez ręcznej pracy z API Ministerstwa Finansów. To praktyczne narzędzie zarówno dla firm wystawiających dużą liczbę faktur, jak i dla biur rachunkowych obsługujących wielu klientów.

Rodzaj błęduPrzykładSkutekJak uniknąć
Błąd struktury XSDBrakujące pole obowiązkowe (np. P_2 - numer faktury), błędny format datyNatychmiastowe odrzucenie - faktura nie wchodzi do dalszej walidacjiWalidacja lokalna wobec schematu XSD przed wysyłką
Błąd walidacji biznesowejSuma VAT niezgodna z pozycjami, data wystawienia późniejsza niż data przyjęciaOdrzucenie - faktura nie istnieje prawnieSprawdzenie spójności kwot i dat przed wygenerowaniem XML
Duplikat fakturyPonowna wysyłka faktury o tym samym numerze i NIP sprzedawcyOdrzucenie jako duplikat - oryginał pozostaje w systemieWeryfikacja statusu faktury przed ponowną wysyłką
Nieaktualny schematWysyłka dokumentu w formacie FA(2) zamiast FA(3)Odrzucenie - FA(2) nie jest akceptowany od 2026 rokuAktualizacja systemu ERP do FA(3) i weryfikacja wersji schematu

Perspektywa: dlaczego warto rozumieć XML, nawet bez wiedzy technicznej

Właściciel firmy nie musi pisać kodu XML ani znać specyfikacji schematu XSD na pamięć. Ale warto rozumieć, czym jest XML i po co istnieje - chociażby dlatego, że ta wiedza chroni przed ślepym zaufaniem do oprogramowania. Jeśli wiesz, że faktura ustrukturyzowana to plik danych, a nie wizualny dokument, to wiesz też, że samo wygenerowanie PDF-a w programie księgowym nie jest równoznaczne z wystawieniem faktury w KSeF. Ta różnica kosztuje realne pieniądze i czas, jeśli zostanie odkryta za późno.

Najczęstszy błąd organizacyjny, z którym borykają się firmy wdrażające KSeF, to rozdzielenie odpowiedzialności: dział IT odpowiada za integrację techniczną, a księgowość za poprawność merytoryczną faktur - i te dwa światy nie rozmawiają ze sobą na etapie konfiguracji. Efekt jest przewidywalny: plik XML jest technicznie poprawny wobec schematu XSD, ale zawiera błędne stawki VAT, nieprawidłowe kody GTU lub pomija wymagane oznaczenia procedur. Takie faktury przechodzą walidację strukturalną, ale powodują problemy w rozliczeniach podatkowych.

Narzędzia coraz skuteczniej abstrahują XML od użytkownika końcowego. Dobry program do fakturowania czy zintegrowany system ERP pozwala wystawić poprawną fakturę KSeF bez ręcznego kontaktu z plikiem XML. Ale ta wygoda ma cenę: jeśli system generuje błędne dane, a użytkownik nie rozumie, jak zbudowany jest dokument, błąd może przez długi czas pozostawać niezauważony. Podstawowa wiedza o strukturze XML daje możliwość zadawania właściwych pytań dostawcy oprogramowania: czy generujesz FA(3) czy FA(2)? Gdzie w XML zapisywane są kody GTU? Czy walidacja jest uruchamiana przed czy po wysyłce?

Rekomendacja praktyczna: zanim uruchomisz produkcyjną wysyłkę faktur przez KSeF, przetestuj pełny cykl na środowisku demo Ministerstwa Finansów. Wystawienie faktury, sprawdzenie statusu walidacji, odebranie numeru KSeF i UPO, a następnie weryfikacja, czy dane w systemie zgadzają się z tym, co spodziewałeś się wysłać - to jest absolutne minimum przed startem. Środowisko testowe jest dostępne bezpłatnie i nie ma żadnego wpływu na rzeczywiste rozliczenia. Każda godzina spędzona na testach to godzina mniej na gaszenie pożarów w produkcji.

Zweryfikuj swoje faktury XML przed wysyłką do KSeF

KSeFGPT to platforma do zarządzania fakturami KSeF, która umożliwia import, weryfikację i przetwarzanie dokumentów XML bezpośrednio z systemu Ministerstwa Finansów. Niezależnie od tego, czy jesteś przedsiębiorcą wystawiającym kilkadziesiąt faktur miesięcznie, czy biurem rachunkowym obsługującym setki klientów - platforma pozwala ograniczyć ręczną pracę z API i zredukować liczbę odrzuceń do minimum.

Sprawdź faktury XML w KSeFGPT

Importuj, weryfikuj i zarządzaj fakturami ustrukturyzowanymi bez ręcznej pracy z API Ministerstwa Finansów. Wypróbuj KSeFGPT.

Wypróbuj KSeFGPT

Najczęściej zadawane pytania

Czy FA(2) jest jeszcze akceptowany przez KSeF? - Nie. Od 1 lutego 2026 roku (duże firmy) i od 1 kwietnia 2026 roku (pozostali podatnicy VAT) jedynym akceptowanym schematem faktury ustrukturyzowanej jest FA(3). Faktura wysłana w formacie FA(2) zostanie automatycznie odrzucona przez system KSeF bez nadania numeru KSeF.

Jak sprawdzić, czy mój plik XML jest zgodny z FA(3)? - Najskuteczniejsza metoda to walidacja lokalna wobec schematu XSD opublikowanego przez Ministerstwo Finansów. Możesz użyć walidatora XSD dostępnego online lub w narzędziach do edycji XML. Dodatkowo Ministerstwo Finansów udostępnia środowisko testowe KSeF (ksef-test.mf.gov.pl), gdzie możesz wysłać dokument testowy i sprawdzić, czy przejdzie walidację bez wpływu na rzeczywiste rozliczenia.

Czym różni się XML KSeF od zwykłego pliku XML? - Każdy plik XML KSeF musi być zgodny z konkretnym schematem XSD opublikowanym przez Ministerstwo Finansów - aktualnie FA(3). Nie wystarczy, że plik jest poprawnym XML-em w sensie technicznym. Musi zawierać dokładnie te węzły, w dokładnie tej kolejności i z dokładnie tymi typami danych, które są zdefiniowane w schemacie FA(3). Ponadto plik musi spełniać reguły biznesowe KSeF - np. sumy VAT muszą być matematycznie spójne z pozycjami.

Co oznacza odrzucenie faktury przez KSeF - czy muszę ją wystawić ponownie? - Tak. Odrzucona faktura nie zostaje zarejestrowana w systemie KSeF, co oznacza, że w świetle prawa podatkowego nie została wystawiona. Musisz poprawić plik XML (usunąć błąd wskazany przez system), a następnie wysłać fakturę ponownie. Numer faktury pozostaje ten sam - nie wystawiasz nowego dokumentu, lecz koregujesz i ponownie przesyłasz ten sam. Wyjątkiem jest sytuacja, gdy ten sam numer faktury został już wcześniej poprawnie zarejestrowany - wtedy KSeF odrzuci dokument jako duplikat.

Rekomendowane artykuły

Przeczytaj też: Walidacja i przetwarzanie XML w KSeF - jak system KSeF weryfikuje dokument przed nadaniem numeru KSeF. Konwerter PDF do KSeF XML - jak zamienić fakturę PDF na poprawny plik FA(3) gotowy do wysyłki. Najczęstsze wyzwania przy wdrożeniu KSeF - błędy, edge case'y i procedury awaryjne, których nie opisuje żadna ustawa. Czy PDF można wysłać do KSeF? - krótka i konkretna odpowiedź na jedno z najczęstszych pytań o KSeF.

Zweryfikuj faktury XML bez ręcznej pracy z API

KSeFGPT umożliwia import, weryfikację i zarządzanie fakturami ustrukturyzowanymi FA(3). Sprawdź, zanim wyślesz - i uniknij odrzuceń.

Wypróbuj KSeFGPT

Zweryfikowano merytorycznie: Bogdan Mazurek

Doradca podatkowy · 18 kwietnia 2026

Tresc artykulu jest zgodna z aktualnymi przepisami KSeF 2.0 obowiazujacymi od 1 lutego 2026.

Zobacz inne artykuły dotyczące krajowego systemu e-faktur