Polski obowiązek KSeF i unijne wymogi
W Polsce Krajowy System e-Faktur (KSeF) wprowadza obowiązkowe fakturowanie elektroniczne dla podatników VAT, od 1 lutego 2026 r. dla dużych podatników (powyżej 200 mln zł obrotu) oraz od 1 kwietnia 2026 r. dla pozostałych. Faktury w KSeF mają strukturę FA(3), odmianę XML zgodną z JPK_FA. Dla transakcji transgranicznych UE stosuje się normę EN 16931 (XRechnung, UBL Peppol, ZUGFeRD). Sama faktura PDF nie spełnia wymogów ustrukturyzowanej e-faktury. Każdy odbiorca potrzebuje narzędzia do walidacji, bezpłatny walidator jest więc narzędziem zgodności, nie dodatkiem.
XRechnung 3.0
XRechnung to niemiecki standard ustrukturyzowanych e-faktur oparty na europejskiej normie CEN/EN 16931. Wersja 3.0 obowiązuje od lutego 2024 r. i jest identyfikowana przez CustomizationID 'urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_3.0'. Ładunek to czysty XML, UBL 2.1 lub UN/CEFACT Cross Industry Invoice (CII). Obowiązkowy dla niemieckich organów federalnych i krajowych od 27 listopada 2020 r., z wymaganym Leitweg-ID. Akceptowany także w polskim B2B do faktur eksportowych do Niemiec.
ZUGFeRD / Factur-X
ZUGFeRD (niemiecki) i identyczny międzynarodowo Factur-X to formaty hybrydowe: PDF/A-3 z ustrukturyzowanym XML osadzonym jako załącznik (factur-x.xml). Profile obejmują od MINIMUM (tylko dane podstawowe) przez BASIC WL, BASIC, EN 16931 (COMFORT) aż po EXTENDED. Dopiero od profilu EN 16931 faktura jest w pełni zgodna z CEN-16931. MINIMUM i BASIC WL nie kwalifikują się jako faktury VAT, lecz tylko jako pomoce księgowe. Nasz walidator wykrywa profil automatycznie.
Business Terms (BT) wg EN 16931
EN 16931 koduje każdą informację z faktury jako Business Term z unikalnym numerem. Obowiązkowe BT obejmują: BT-1 numer faktury, BT-2 data wystawienia, BT-3 kod typu faktury (UNTDID 1001, np. 380 dla faktury, 381 dla korekty), BT-5 kod waluty (ISO 4217), BT-9 termin płatności, BT-22 uwaga / referencja kupującego, BT-27 nazwa sprzedawcy, BT-40 kraj sprzedawcy, BT-44 nazwa nabywcy, BT-55 kraj nabywcy. Obowiązkowe sumy pieniężne: BT-109 TaxExclusiveAmount, BT-110 TaxAmount, BT-112 TaxInclusiveAmount, BT-115 PayableAmount. Brak któregokolwiek czyni fakturę formalnie nieprawidłową.
Spójność matematyczna
EN 16931 wymaga zgodności sum: TaxExclusiveAmount (BT-109) plus TaxAmount (BT-110) musi równać się TaxInclusiveAmount (BT-112). PayableAmount (BT-115) musi równać się sumie brutto pomniejszonej o ewentualną zaliczkę. Częste źródło błędów w praktyce: zaokrąglanie na poziomie pozycji, a następnie na poziomie stawki VAT (23%, 8%, 5%, 0%) powoduje rozbieżności rzędu 1 grosza. Nasz walidator toleruje 1 grosz; cokolwiek poza tym zgłaszane jest jako twardy błąd.
Ochrona danych
Walidator działa w całości w przeglądarce. Pliki XML są parsowane natywnym DOMParser, PDF-y są ładowane lokalnie przez pdf-lib, a osadzony factur-x.xml jest wydobywany w pamięci. Brak przesyłania na serwer, brak logów, brak ciasteczek. Walidator jest zgodny z RODO i bezpieczny dla poufnych danych B2B, nawet wewnętrzne faktury z numerami kont, NIP-ami lub danymi umownymi mogą być sprawdzane bez ryzyka zgodności.