5 najczęstszych błędów faktur FA(3)
Schemat FA(3) i polskie prawo podatkowe nakładają rygorystyczne wymagania na e-faktury. KSeF Guard sprawdza 128 aktywnych reguł — w tym te pięć, które odpowiadają za zdecydowaną większość wykrywanych problemów. Każdy z nich odpowiada realnej regule walidacyjnej w silniku.
BUS-003: Brak równowartości VAT w PLN na fakturze walutowej
Gdy waluta faktury (KodWaluty) jest inna niż PLN, polskie prawo podatkowe wymaga, aby każdy sumaryczny przedział stawki VAT zawierał również kwotę podatku w złotówkach. W schemacie FA(3) są to pola P_14_*W — po jednym dla każdego przedziału stawki (23%, 8%, 5%, ryczałt taksówkowy itd.). Jeśli wystawiasz fakturę w EUR z przedziałem 23% (P_14_1), ale pominiesz P_14_1W, tworzy to lukę w zgodności.
XPath: /Faktura/Fa/P_14_*W (gdzie * = numer przedzialu stawki: 1, 2, 3, ...)
Jak naprawić: Dla każdego przedziału stawki VAT obecnego na fakturze dodaj odpowiadający element P_14_*W z kwotą VAT przeliczoną na PLN wg kursu właściwego dla faktury (zgodnie z art. 31a ustawy o VAT). Przykład: jeśli P_14_1 = 230,00 EUR, a kurs wynosi 4,50, to P_14_1W = 1035,00 PLN.
BUS-044: Niezgodność arytmetyczna wiersza (kwota netto vs ilość × skorygowana cena)
Każdy wiersz faktury posiada zadeklarowaną kwotę netto w P_11. KSeF Guard sprawdza, czy ta wartość jest zgodna z iloczynem ilości (P_8B) i skorygowanej ceny jednostkowej (P_9A − P_10 + P_10_Dodatki). Nawet jednogroszowa różnica zaokrąglenia naruszy tę regułę.
XPath: /Faktura/Fa/FaWiersz/P_11
Formula: P_11 = P_8B × (P_9A − P_10 + P_10_Dodatki)
Jak naprawić: Przelicz kwotę netto każdego wiersza jako iloczyn ilości i skorygowanej ceny jednostkowej. Zwróć uwagę na zaokrąglenia — oblicz każdy wiersz osobno i zaokrąglij do dwóch miejsc po przecinku per wiersz, a nie po zsumowaniu. Jeśli Twój system ERP eksportuje już zaokrąglone wartości, zweryfikuj je względem formuły przed wysłaniem.
BUS-072: Brak podsumowania dla używanej stawki VAT (faktury uproszczone pominięte)
Schemat FA(3) wymaga, aby dla każdej stawki VAT użytej w wierszu faktury istniała odpowiednia sekcja podsumowania w nagłówku. Jeśli którykolwiek wiersz deklaruje P_12 = 23 (stawka 23%), faktura musi zawierać sekcję P_13_1 (suma netto, VAT i brutto dla przedziału 23%). To samo dotyczy każdej innej stawki: 8% wymaga P_13_2, 5% wymaga P_13_3 itd. Reguła nie obejmuje faktur uproszczonych (UPR).
XPath: /Faktura/Fa/P_13_x (gdzie x = numer przedzialu odpowiadajacy wartosci P_12)
Jak naprawić: Upewnij się, że dla każdej unikalnej wartości P_12 we wszystkich wierszach faktury istnieje odpowiednia sekcja P_13_x z poprawnie zsumowanymi kwotami netto, VAT i brutto. Większość systemów ERP generuje je automatycznie, ale ręczna edycja faktur lub własne generatory XML często pomijają ten krok.
BUS-073: Brak adnotacji o zwolnieniu z VAT
Gdy dowolny wiersz faktury używa stawki "zw" (zwolniony z VAT) w P_12, faktura musi zawierać sekcję Zwolnienie w ramach Adnotacje. Sekcja ta wymaga P_19 = 1 oraz co najmniej jednego z elementów: P_19A (przepis ustawy lub aktu wydanego na jej podstawie), P_19B (przepis Dyrektywy 2006/112/WE) lub P_19C (inna podstawa prawna), wskazującego podstawę prawną.
XPath: /Faktura/Fa/Adnotacje/Zwolnienie/P_19
Wymagane elementy podrzedne: P_19A | P_19B | P_19C (tekst podstawy prawnej)
Jak naprawić: Dodaj blok Zwolnienie z P_19 = 1 i wypełnij odpowiednie pole podstawy prawnej. Przykład: usługi medyczne zwolnione na podst. art. 43 ust. 1 pkt 18 ustawy o VAT powinny mieć P_19A = "art. 43 ust. 1 pkt 18 ustawy". Bez tej informacji adnotacja o zwolnieniu jest niekompletna.
BUS-030: Data wystawienia faktury w przyszłości
Data wystawienia faktury (P_1) nie może przekraczać dozwolonego okna przyszłej daty (30 dni do przodu). KSeF aktywnie egzekwuje tę regułę i odrzuca faktury z datą wystawienia przekraczającą ten próg. Jest to reguła GOV_MANDATED na poziomie error — KSeF Guard oznacza ją jako twardą awarię, zgodnie z zachowaniem KSeF.
XPath: /Faktura/Fa/P_1
Klasyfikacja: GOV_MANDATED/error Gov KSeF Enforced
Jak naprawić: Sprawdź wartość daty P_1. Najczęstsze przyczyny to wpisanie "2027" zamiast "2026" lub skopiowanie szablonu bez aktualizacji daty. Jeśli faktura rzeczywiście wymaga przyszłej daty wystawienia (np. faktury zaliczkowe), upewnij się, że mieści się w dopuszczalnym oknie dla danego przypadku.
Wyłapuj te błędy przed wysłaniem
KSeF Guard waliduje wszystkie 128 aktywnych reguł merytorycznych offline — w tym te pięć — zanim wyślesz fakturę do KSeF. Uruchom go lokalnie, w pipeline CI/CD lub przez aplikację desktopową, aby znaleźć i naprawić błędy w kilka sekund zanim wyślesz do KSeF.
Zobacz też: faktura w walucie obcej (P_14_1W) • mechanizm podzielonej płatności (P_18A) • faktura korygująca • duplikat numeru wiersza.