Błędy walidacji XML FA(3) — objaw, przyczyna, naprawa

Komunikat walidatora wskazuje miejsce zatrzymania, a nie źródło błędu. Zestawienie typowych objawów wraz z ich faktycznymi przyczynami.

Najczęstsze komunikaty walidatora KSeF i ich rzeczywiste przyczyny: kolejność sekcji płatności, format dat, NIP, stawki VAT i niezgodność sum.

Plik XML odrzucony przez KSeF nie otrzymuje numeru KSeF, a więc nie ma mocy faktury ustrukturyzowanej. Komunikaty walidatora bywają przy tym mylące: wskazują element, na którym walidacja się zatrzymała, a nie ten, który faktycznie zawiera błąd. Poniżej zestawiamy najczęstsze objawy, ich rzeczywiste przyczyny i sposób naprawy.

Materiał ma charakter diagnostyczny — uporządkowany według tego, co widzisz w komunikacie. Opis samej struktury schematu znajdziesz w opracowaniu pól wymaganych FA(3).

Dlaczego komunikat wskazuje niewłaściwe miejsce

Walidacja XSD przebiega sekwencyjnie. Walidator przechodzi elementy w kolejności zdefiniowanej w schemacie i zatrzymuje się na pierwszym, który nie pasuje do oczekiwanej sekwencji.

Jeżeli brakuje elementu wymaganego, walidator nie napisze „brakuje X". Napisze, że element następny wystąpił nieoczekiwanie — bo w tym miejscu spodziewał się czegoś innego. Dlatego przy diagnozie trzeba patrzeć nie tylko na wskazany element, ale też na to, co powinno go poprzedzać.

Objaw: element wystąpił „nieoczekiwanie" w sekcji płatności

To najczęstszy przypadek w praktyce. Komunikat wskazuje element formy płatności albo rachunku bankowego jako nieoczekiwany, mimo że jest poprawny.

Rzeczywista przyczyna. Faktura została oznaczona jako zapłacona, ale nie podano daty zapłaty. Schemat wymaga, aby po oznaczeniu zapłaty następowała data zapłaty — dopiero potem kolejne elementy. Brak tego pola przerywa sekwencję.

Naprawa. Uzupełnij datę zapłaty bezpośrednio po oznaczeniu statusu. Jeśli faktura w rzeczywistości nie jest zapłacona, usuń oznaczenie zapłaty i podaj termin płatności.

Odwrotny wariant. Jeśli dokument jest zapłacony, termin płatności nie może wystąpić. Schemat traktuje te sytuacje jako wykluczające się.

Objaw: element rachunku bankowego odrzucony

Rzeczywista przyczyna. Kolejność wewnątrz sekcji płatności. Forma płatności musi poprzedzać rachunek bankowy — odwrotna kolejność jest błędem, nawet jeśli oba elementy są poprawne.

Naprawa. Przestaw elementy: najpierw forma płatności, następnie rachunek bankowy.

Objaw: nieprawidłowa wartość w polu NIP

Rzeczywista przyczyna. Najczęściej prefiks PL, spacje, myślniki lub NIP o innej długości niż dziesięć cyfr. Zdarza się też, że w polu NIP znalazł się REGON albo numer konta.

Naprawa. Zapisz NIP jako dziesięć cyfr bez separatorów i bez prefiksu kraju.

Objaw: błąd typu danych przy dacie

Rzeczywista przyczyna. Format zapisu. Schemat oczekuje RRRR-MM-DD dla dat kalendarzowych; zapis DD.MM.RRRR lub DD/MM/RRRR nie zostanie przyjęty. Osobnym przypadkiem jest znacznik czasu wytworzenia pliku, który wymaga pełnego formatu z godziną i oznaczeniem strefy.

Naprawa. Ujednolić format dat. Sprawdź również, czy w polu daty wytworzenia pliku nie wpisano daty wystawienia faktury — to dwie różne wartości.

Objaw: stawka VAT spoza dozwolonego zakresu

Rzeczywista przyczyna. Wartość pola stawki musi pochodzić ze słownika. Zapisy opisowe typu „zwolniona", „23%" ze znakiem procentu albo „0,23" nie są akceptowane w tej postaci.

Naprawa. Użyj wartości słownikowej właściwej dla danej stawki, w tym oznaczeń dla zwolnienia i czynności niepodlegających opodatkowaniu.

Objaw: niezgodność sum

Rzeczywista przyczyna. Suma wartości pozycji nie zgadza się z podsumowaniem dokumentu. Najczęściej wynika to z rabatu udzielonego na całość faktury, zaokrągleń przy przeliczaniu walut albo z ręcznej korekty jednej z liczb.

Naprawa. Przelicz podsumowanie z pozycji, zamiast przepisywać je z dokumentu źródłowego. Jeśli rabat dotyczy całości, musi być odzwierciedlony w wartościach pozycji.

Objaw: brak wymaganych oznaczeń w sekcji nabywcy

Rzeczywista przyczyna. Pominięcie elementów dotyczących jednostek samorządu terytorialnego i grup VAT. Dla zwykłej transakcji przyjmują wartość „nie dotyczy", ale są wymagane i muszą wystąpić.

Naprawa. Uzupełnij oba elementy na końcu sekcji nabywcy, w kolejności wskazanej przez schemat.

Objaw: niespójność przy fakturze zwolnionej z VAT

Rzeczywista przyczyna. Stawka zw w pozycjach nie ma odpowiednika w sekcji oznaczeń, albo oznaczenia opisują jednocześnie zwolnienie i jego brak. Oba miejsca muszą opisywać ten sam stan faktyczny.

Naprawa. Uzgodnij oznaczenia w sekcji adnotacji ze stawkami użytymi w pozycjach.

Jak sprawdzić plik przed wysyłką

Najprostszy sposób to walidacja względem oficjalnego schematu XSD przed przekazaniem dokumentu do KSeF. Walidator KSeF XML wskazuje konkretny element wraz z opisem niezgodności, działa na plikach z dowolnego systemu i nie wymaga zakładania konta.

Jeśli plik powstaje z faktury PDF, walidacja wykonywana jest automatycznie przed pobraniem — opisujemy to przy okazji mapowania pól PDF na XML FA(3).

Najczęstsze pytania

Dlaczego walidator wskazuje element, który wygląda poprawnie? Bo walidacja jest sekwencyjna. Zatrzymanie następuje na pierwszym elemencie niepasującym do oczekiwanej kolejności — przyczyną bywa brak elementu poprzedzającego.

Czy mogę wysłać plik ponownie po poprawce? Tak. Odrzucenie nie blokuje ponownej wysyłki. Dokument nie otrzymał numeru KSeF, więc nie powstał duplikat.

Czy KSeF sprawdza poprawność merytoryczną faktury? Weryfikacja dotyczy zgodności ze schematem i reguł technicznych. Poprawność merytoryczna rozliczenia pozostaje po stronie podatnika.

Skąd wiadomo, którego pola dotyczy komunikat? Komunikat wskazuje ścieżkę do elementu w strukturze dokumentu. Warto sprawdzić także element, który powinien go poprzedzać.

Czy walidacja lokalna wystarczy? Walidacja XSD wyklucza błędy strukturalne, czyli najczęstszą przyczynę odrzuceń. Nie zastępuje jednak reguł biznesowych weryfikowanych po stronie systemu.

Sprawdź swój plik

Wgraj XML i zobacz, który element nie spełnia wymagań — otwórz walidator. Jeśli plik powstaje z dokumentów PDF, zobacz też opis konwersji do FA(3).