Klasyfikacja reguł walidacji
KSeF Guard zawiera 128 aktywnych reguł walidacji podzielonych na sześć kategorii klasyfikacyjnych. Każda kategoria determinuje domyślny poziom poważności reguły, możliwość jej wyłączenia oraz sposób prezentacji wyników w raportach.
Zweryfikowane w oficjalnym środowisku testowym KSeF
Przesłaliśmy 256 testowych faktur do oficjalnego API testowego KSeF
(api-test.ksef.mf.gov.pl).
Wyniki: 21 reguły potwierdzone przez KSeF,
107 reguł wykraczających poza to, co sprawdza KSeF,
i 0 fałszywych negatywów w conformance v9 — wychwytujemy wszystko co KSeF, i więcej.
Reguły potwierdzone przez KSeF są oznaczone plakietką Gov Enforced w całej aplikacji.
Reguły wynikające z przepisów prawa
Reguły wywiedzione bezpośrednio z ustawy o podatku od towarów i usług, art. 106e oraz rozporządzeń Ministerstwa Finansów. Reprezentują wymogi regulacyjne dla faktur FA(3) wynikające z polskiego prawa podatkowego.
Nasze testy zgodności wykazały, że KSeF aktywnie egzekwuje 16 reguł GOV_MANDATED w momencie przesyłania. Kolejne 50 reguł GOV_MANDATED to prawnie wiążące wymogi, których KSeF nie weryfikuje na poziomie API, a 5 krytycznych reguł jest niewyłączalnych mimo braku adnotacji w polu ksef_enforced.
- Poziom: błąd (zawsze)
- Możliwość wyłączenia: 28 reguł nie można wyłączyć (21 potwierdzone przez KSeF + 7 krytycznych). 50 reguł GOV_MANDATED można wyłączyć w konfiguracji.
Przykłady
KSEF-BUS-074Gov Enforced — P_19=1 bez podania podstawy zwolnienia (P_19A/B/C)KSEF-BUS-044— Wartość netto pozycji musi być równa iloczynowi ilości i skorygowanej ceny jednostkowejKSEF-BUS-130— Faktura uproszczona (UPR) nie może przekroczyć ustawowego limitu kwoty
Dobre praktyki
Rekomendowane walidacje oparte na oficjalnej broszurze informacyjnej MF, powszechnych standardach księgowych oraz wzorcach zaobserwowanych w produkcyjnych fakturach. Choć ich naruszenie nie jest stricte nielegalne, reguły te wychwytują problemy często prowadzące do odrzucenia lub konieczności ręcznej korekty.
- Poziom: błąd domyślnie (konfigurowalny)
- Możliwość wyłączenia: tak
Przykłady
KSEF-BUS-072— Stawka VAT musi być zgodna z koszyczkiem kwoty netto (faktury uproszczone pominięte)KSEF-BUS-195— Pozycja marży nie powinna zawierać kwoty netto ani VAT
Inteligentne wykrywanie anomalii
Inteligentne reguły wykrywające podejrzane, choć niekoniecznie nielegalne wzorce. Wychwytują błędy ludzkie, anomalie w danych i niespójności czasowe, które często wskazują na pomyłkę, a nie celowe działanie.
- Poziom: ostrzeżenie
- Możliwość wyłączenia: tak
Przykłady
KSEF-BUS-193— Termin płatności wcześniejszy niż data wystawieniaKSEF-BUS-197— Faktura wystawiona w weekendKSEF-BUS-198— Faktura utworzona w godzinach nocnych
Integralność danych i bezpieczeństwo
Reguły bezpieczeństwa wykrywające próby wstrzyknięcia kodu, znaki sterujące i inne problemy z integralnością danych mogące wskazywać na manipulację lub nieprawidłowe dane wejściowe. Chronią przed wektorami ataku osadzonymi w polach tekstowych faktur XML.
- Poziom: błąd
- Możliwość wyłączenia: częściowo (3 zablokowane: BUS-163, BUS-201, BUS-202. 3 można wyłączyć: BUS-190, BUS-191, BUS-192)
Przykłady
KSEF-BUS-163— Znaki sterujące w polach tekstowych fakturyKSEF-BUS-190— Tagi HTML w polach tekstowych fakturyKSEF-BUS-191— Wykryto wzorzec SQL injectionKSEF-BUS-192— Wykryto wzorzec wstrzyknięcia skryptu
Walidacja między fakturami w partii
Reguły aktywowane wyłącznie przy walidacji wielu faktur jednocześnie. Wykrywają niespójności w ramach partii — zduplikowane numery, niezgodności NIP sprzedawcy, regresje chronologiczne oraz rozbieżności między zaliczkami a fakturami rozliczeniowymi.
- Poziom: błąd
- Możliwość wyłączenia: tak
Przykłady
KSEF-BUS-300— Zduplikowany numer faktury (P_2) w partiiKSEF-BUS-301— Różny NIP sprzedawcy pomiędzy fakturami w partiiKSEF-BUS-303— Niespójność kwot między fakturą zaliczkową a rozliczeniową
Reguły logicznie wywnioskowane
Reguły wyprowadzone z logicznego wnioskowania o semantyce faktur korygujących. Nie są wprost zapisane w przepisach, ale wynikają matematycznie z procesu korekty.
- Poziom: błąd
- Możliwość wyłączenia: tak
Przykłady
KSEF-BUS-210— Korekta zmniejszająca: skorygowana suma wyższa niż pierwotnaKSEF-BUS-211— Korekta zwiększająca: skorygowana suma niższa niż pierwotna
Egzekwowanie KSeF a zgodność regulacyjna
Ważne rozróżnienie wynikające z naszych testów zgodności: akceptacja faktury przez KSeF nie oznacza jej zgodności z prawem. Platforma KSeF jest przede wszystkim walidatorem schematu XSD — 96% odrzuceń to błędy struktury XML. Wykonuje jedynie kilka kontroli semantycznych (walidacja dat, uprawnienia NIP).
Oznacza to, że 55 reguły dotyczące wymogów prawnych w KSeF Guard egzekwują wymogi ustawy o VAT, których sam KSeF nie sprawdza. W conformance v9 KSeF zaakceptował faktury naruszające te reguły; mogą one być zakwestionowane podczas kontroli podatkowej przez Krajową Administrację Skarbową (KAS).
W conformance v9 KSeF odrzucił faktury naruszające te reguły. 21 reguły egzekwowane przez KSeF łącznie: 16 GOV_MANDATED, 3 INFERRED, 1 BEST_PRACTICE, 1 SECURITY. Wszystkie są niewyłączalne.
KSeF akceptuje te faktury, ale reguły wychwytują problemy regulacyjne, dobre praktyki lub kwestie bezpieczeństwa. Większość można indywidualnie wyłączyć; 7 reguł wyłącznie Guard pozostaje zablokowanych: 5 krytycznych GOV_MANDATED i 2 SECURITY.
Poziomy poważności
Każda wywołana reguła niesie ze sobą jeden z dwóch poziomów poważności:
Faktura narusza regułę walidacji. Reguły oznaczone Gov Enforced zostaną również odrzucone przez platformę KSeF. Wyświetlany jako czerwona plakietka FAIL. Ogólny wynik walidacji to FAIL.
Faktura jest technicznie poprawna, ale zawiera podejrzane lub nieoptymalne wzorce. Wyświetlane jako żółta plakietka WARN. Ogólny wynik walidacji pozostaje PASS.
Konfiguracja
Reguły GOV_MANDATED potwierdzone przez KSeF (oznaczone plakietką Gov Enforced) oraz 3 podstawowe reguły z kategorii SECURITY są niewyłączalne — reprezentują zweryfikowane wymogi platformy i zabezpieczenia. Reguły GOV_MANDATED nieegzekwowane przez KSeF można wyłączyć w konfiguracji, podobnie jak BEST_PRACTICE, HEURISTIC, INFERRED i część reguł BATCH_CHECK.
Wbudowane presety
| Preset | Zachowanie |
|---|---|
| Essential | Tylko reguły GOV_MANDATED aktywne. Reguły dobrych praktyk i heurystyczne wyłączone. |
| Recommended (zalecany) | Wszystkie reguły aktywne z domyślnym poziomem poważności. |
| Maximum (maksymalny) | Ostrzeżenia są podnoszone do błędów. Każda wywołana reguła powoduje FAIL. |
Konfiguracja per reguła
Poszczególne reguły można przełączać za pomocą pliku konfiguracyjnego
.ksef-guard.yml
lub flag CLI:
# CLI: wyłącz konkretną regułę ksef-guard validate --disable-rule KSEF-BUS-193 faktura.xml
# CLI: użyj presetu ksef-guard validate --preset maximum ./faktury/
# .ksef-guard.yml
rules:
KSEF-BUS-193:
enabled: false
KSEF-BUS-197:
severity: error # podnieść do błędu Podsumowanie
| Klasyfikacja | Liczba | Poziom | Można wyłączyć |
|---|---|---|---|
| GOV_MANDATED | 78 | błąd | Częściowo (28 zablokowane: Nie, 50 konfigurowalne: Tak) |
| BEST_PRACTICE | 23 | błąd (konfigurowalny) | Tak |
| HEURISTIC | 11 | ostrzeżenie | Tak |
| SECURITY | 6 | błąd | Częściowo (3 zablokowane, 3 można wyłączyć) |
| BATCH_CHECK | 1 | błąd | Częściowo |
| INFERRED | 10 | błąd | Tak |