Schemat FA(3) to struktura XML, w której Ministerstwo Finansów przyjmuje faktury ustrukturyzowane w KSeF. Dokument musi zawierać określone elementy, w ściśle określonej kolejności — plik niezgodny ze schematem XSD zostaje odrzucony i nie otrzymuje numeru KSeF. Poniżej zestawiamy sekcje schematu i pola, których brak lub błędna kolejność najczęściej powodują odrzucenie.
Opracowanie ma charakter praktyczny. Nie zastępuje oficjalnej dokumentacji schematu, lecz porządkuje te elementy, które w codziennej pracy sprawiają najwięcej problemów.
Budowa dokumentu
Faktura FA(3) składa się z kilku sekcji następujących po sobie w ustalonym porządku:
Naglowek— metadane dokumentuPodmiot1— sprzedawcaPodmiot2— nabywcaFa— właściwa treść faktury, w tym pozycje i podsumowanieStopka— element opcjonalny, poza sekcjąFa
Kolejność sekcji nie jest dowolna. Walidator XSD sprawdza sekwencję, więc przestawienie elementów powoduje błąd nawet wtedy, gdy wszystkie dane są poprawne.
Nagłówek
Sekcja Naglowek identyfikuje wersję schematu i moment wygenerowania pliku:
KodFormularza— z atrybutamikodSystemowyiwersjaSchemy; wartośćFAWariantFormularza— dla FA(3) wartość3DataWytworzeniaFa— znacznik czasu utworzenia pliku w formacieRRRR-MM-DDThh:mm:ssZ
Częsty błąd polega na wpisaniu w DataWytworzeniaFa daty wystawienia faktury. To dwie różne wartości: data wytworzenia dotyczy momentu powstania pliku XML, a nie dokumentu handlowego.
Strony transakcji
Podmiot1 (sprzedawca) i Podmiot2 (nabywca) zawierają dane identyfikacyjne oraz adres.
NIP— dokładnie dziesięć cyfr, bez prefiksuPL, spacji i myślnikówNazwa— pełna nazwa podmiotuAdres— zKodKrajuoraz liniami adresu
W sekcji nabywcy występują dodatkowo elementy JST i GV, dotyczące jednostek samorządu terytorialnego i grup VAT. Dla zwykłej transakcji między firmami przyjmują wartość oznaczającą „nie dotyczy", ale muszą wystąpić — ich pominięcie jest jedną z częstszych przyczyn odrzucenia.
Treść faktury
Sekcja Fa zawiera dane dokumentu i również ma narzuconą kolejność elementów:
KodWaluty— waluta dokumentuP_1— data wystawienia faktury w formacieRRRR-MM-DDP_2— numer fakturyP_6— data dokonania dostawy lub wykonania usługi, jeżeli różni się od daty wystawienia- pola podsumowania VAT — podstawy i kwoty podatku w rozbiciu na stawki
P_15— wartość brutto całego dokumentuAdnotacje— oznaczenia szczególneRodzajFaktury— rodzaj dokumentu, bezpośrednio poAdnotacjeFaWiersz— pozycje faktury, powtarzalnePlatnosc— dane płatności, po wszystkich pozycjach
Dla dokumentów obejmujących okres rozliczeniowy zamiast P_6 stosuje się OkresFa z datami początku i końca. Nie należy podawać obu naraz.
Pozycje faktury
Każda pozycja to osobny element FaWiersz:
NrWierszaFa— numer kolejny pozycjiP_7— nazwa towaru lub usługiP_8A,P_8B— jednostka miary i ilośćP_9AlubP_9B— cena jednostkowaP_11— wartość pozycjiP_12— stawka VAT
Pole P_12 przyjmuje wartości ze słownika stawek. Oprócz stawek liczbowych występują oznaczenia zw dla zwolnienia i np dla czynności niepodlegających opodatkowaniu. Wpisanie stawki spoza słownika powoduje błąd walidacji typu danych.
Sekcja płatności — najczęstsze źródło błędów
Platnosc ma kolejność, która w praktyce bywa naruszana: Zaplacono → DataZaplaty → TerminPlatnosci → FormaPlatnosci → RachunekBankowy.
Wynikają z tego dwie reguły warunkowe:
Faktura opłacona w momencie wystawienia. Jeżeli występuje Zaplacono z wartością oznaczającą zapłatę, schemat wymaga podania DataZaplaty bezpośrednio po nim. Jednocześnie nie wolno podawać TerminPlatnosci — termin płatności dla dokumentu już zapłaconego jest sprzeczny.
Faktura z odroczonym terminem. Wtedy podaje się TerminPlatnosci, a nie podaje Zaplacono ani DataZaplaty.
Pominięcie DataZaplaty przy fakturze oznaczonej jako opłacona to jeden z najczęściej spotykanych błędów — komunikat walidatora wskazuje wówczas element, który wystąpił „nieoczekiwanie", mimo że rzeczywistą przyczyną jest brak elementu poprzedzającego.
Kolejna typowa pomyłka to umieszczenie RachunekBankowy przed FormaPlatnosci. Schemat wymaga odwrotnej kolejności.
Weryfikacja przed wysyłką
Najprostszym sposobem sprawdzenia pliku jest walidacja względem oficjalnego schematu XSD. Walidator KSeF XML wskazuje konkretny element i opisuje niezgodność — działa na plikach z dowolnego systemu i nie wymaga konta.
Jeżeli plik XML powstaje z faktury PDF, walidacja przeprowadzana jest automatycznie przed pobraniem; przebieg konwersji opisaliśmy w przewodniku jak przekonwertować fakturę PDF do KSeF.
Najczęstsze pytania
Czy kolejność elementów naprawdę ma znaczenie? Tak. Schemat XSD definiuje sekwencję, a nie zbiór. Element podany w niewłaściwym miejscu powoduje błąd walidacji, nawet jeśli jego wartość jest poprawna.
Dlaczego faktura zwolniona z VAT jest odrzucana? Najczęściej przez niespójność między stawką zw w pozycjach a oznaczeniami w sekcji Adnotacje. Oba miejsca muszą opisywać ten sam stan.
Czym różni się P_1 od DataWytworzeniaFa? P_1 to data wystawienia faktury. DataWytworzeniaFa to moment wygenerowania pliku XML. Wpisanie w obu miejscach tej samej wartości jest częstym, choć nie zawsze blokującym, błędem.
Czy NIP można podać z prefiksem PL? Nie. Pole NIP przyjmuje dziesięć cyfr bez prefiksu i separatorów.
Gdzie znajdę pełną specyfikację schematu? Oficjalna dokumentacja i pliki XSD publikowane są przez Ministerstwo Finansów. To opracowanie porządkuje wyłącznie elementy najczęściej powodujące odrzucenie.
Sprawdź swój plik
Masz gotowy XML? Zwaliduj go bez rejestracji. Masz fakturę w PDF? Wygeneruj z niej plik FA(3) — walidacja wykonywana jest automatycznie przed pobraniem.