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.

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ę.
| Punkt | Szczegóły |
|---|---|
| XML jako fundament KSeF | KSeF nie przyjmuje PDF - wymaga danych w formacie XML zgodnym z FA(3). To dane, nie wizualizacja. |
| Schemat FA(2) - kontekst historyczny | FA(2) obowiązywał do 2026 roku. Wiele starszej dokumentacji nadal się do niego odwołuje - stąd zamieszanie. |
| Struktura faktury w XML | Węzły Podmiot1, Podmiot2, Fa i FaWiersz - każdy z obowiązkowymi polami precyzyjnie zdefiniowanymi przez MF. |
| FA(3) to aktualny obowiązek | Od 1 lutego 2026 (duże firmy) i 1 kwietnia 2026 (pozostałe) - jedyny schemat akceptowany przez KSeF. |
| Walidacja chroni przed odrzuceniem | Błą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.
| Cecha | XML FA(3) | |
|---|---|---|
| Co przechowuje | Wizualizację dokumentu (układ, czcionki, obrazy) | Dane strukturalne (pola, wartości, relacje) |
| Kto czyta | Człowiek | System / maszyna |
| Czy można automatycznie walidować | Nie (bez OCR) | Tak - wobec schematu XSD |
| Czy KSeF akceptuje | Nie | Tak (tylko FA(3)) |
| Czy nadaje numer KSeF | Nie | Tak - 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.
| Wersja | Kiedy obowiązywała | Status w 2026 roku | Kluczowe cechy |
|---|---|---|---|
| FA(1) | Pilotaż KSeF (2021–2022) | Wycofana | Wersja testowa, ograniczona funkcjonalność |
| FA(2) | Dobrowolny KSeF (2022–2025) | Wycofana - odrzucana przez system | Szersze zastosowanie, brak pełnych wymagań B2B |
| FA(3) | Obowiązkowy KSeF (od 2026) | Jedyny akceptowany schemat | Terminy 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ł XML | Co zawiera | Wymagany? |
|---|---|---|
| Podmiot1 | Dane sprzedawcy: NIP, nazwa firmy, adres | Tak - zawsze |
| Podmiot2 | Dane nabywcy: NIP, nazwa firmy, adres | Tak - dla B2B; inne zasady dla B2C |
| Fa | Nagłówek faktury: numer, daty, waluta, forma płatności, typ dokumentu | Tak - zawsze |
| FaWiersz | Pozycja faktury: opis, ilość, cena netto, stawka VAT, wartości | Tak - minimum 1 wiersz |
| Podsumowanie | Sumy VAT według stawek, kwota brutto | Tak - zawsze |
| Podmiot3 | Dane 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?
| Funkcja | FA(2) | FA(3) |
|---|---|---|
| Status w 2026 roku | Wycofany - dokumenty odrzucane | Jedyny akceptowany schemat |
| Terminy płatności | Jeden termin | Wiele terminów, precyzyjny opis |
| Załączniki do faktury | Niedostępne | Możliwe przez API |
| Numer konta bankowego | Podstawowy format | Rozszerzony (IBAN) |
| Procedury TP/MPP/IED | Ograniczone | Pełne wsparcie |
| Kody GTU | Podstawowe | Rozbudowane |
| Wymagana od | Dobrowolny 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łędu | Przykład | Skutek | Jak uniknąć |
|---|---|---|---|
| Błąd struktury XSD | Brakujące pole obowiązkowe (np. P_2 - numer faktury), błędny format daty | Natychmiastowe odrzucenie - faktura nie wchodzi do dalszej walidacji | Walidacja lokalna wobec schematu XSD przed wysyłką |
| Błąd walidacji biznesowej | Suma VAT niezgodna z pozycjami, data wystawienia późniejsza niż data przyjęcia | Odrzucenie - faktura nie istnieje prawnie | Sprawdzenie spójności kwot i dat przed wygenerowaniem XML |
| Duplikat faktury | Ponowna wysyłka faktury o tym samym numerze i NIP sprzedawcy | Odrzucenie jako duplikat - oryginał pozostaje w systemie | Weryfikacja statusu faktury przed ponowną wysyłką |
| Nieaktualny schemat | Wysyłka dokumentu w formacie FA(2) zamiast FA(3) | Odrzucenie - FA(2) nie jest akceptowany od 2026 roku | Aktualizacja 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.
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 KSeFGPTZweryfikowano 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
Wysyłka faktur do KSeF - kompletny poradnik 2026
Jak wysłać fakturę do KSeF w 2026 r.: tryby (online, offline24, niedostępność, awaria), uwierzytelnienie, UPO, limity, najczęstsze błędy i darmowe narzędzia.
Jak AI pomaga w obsłudze KSeF - praktyczny przewodnik
6 zastosowań sztucznej inteligencji w e-fakturowaniu: od walidacji XML i konwersji PDF, przez kategoryzację i wykrywanie błędów, po chatboty i analitykę. Dla przedsiębiorców i księgowych.
Najczęstsze wyzwania przy wdrożeniu KSeF i jak je pokonać
Poznaj najczęstsze wyzwania przy wdrożeniu KSeF w 2026 roku: błędy walidacji XML, problemy z widocznością faktur, jakość danych kontrahentów i sytuacje awaryjne. Sprawdź, jak je skutecznie rozwiązać.
Czy można nie korzystać z KSeF w 2026 roku?
Od 1 lutego 2026 r. obowiązuje odbiór faktur przez KSeF dla wszystkich przedsiębiorców. Od 1 kwietnia 2026 r. obowiązek wystawiania objął niemal wszystkich - w tym, co do zasady, podatników zwolnionych z VAT. Sprawdź wyjątki i sankcje.