Nordlet

← Blog

Zgodność z normą EN 16931: Peppol, Factur-X i ZUGFeRD zweryfikowane pod kątem oficjalnych reguł

Przetestowaliśmy pliki faktur generowane przez Nordlet za pomocą oficjalnych reguł walidacyjnych EN 16931. Pliki Peppol oraz pliki rumuńskie przechodzą weryfikację pomyślnie. Pliki Factur-X naruszają dwie reguły, które wymieniamy w tym artykule.

Nordlet Team · · 3 min. czytania

EN 16931 to europejska norma dotycząca zawartości faktury elektronicznej. Definiuje ona pola biznesowe, jakie zawiera faktura (sprzedawca, nabywca, pozycje, podsumowanie podatku VAT, sumy), oraz reguły biznesowe, które te pola muszą spełniać, na przykład to, że podsumowanie stawek VAT sumuje się do kwoty całkowitej faktury. Norma ta może być zapisana w dwóch formatach XML: UBL 2.1 oraz UN/CEFACT Cross Industry Invoice (CII).

Większość europejskich formatów faktur elektronicznych opiera się na normie EN 16931:

  • Peppol BIS Billing 3.0 to EN 16931 w formacie UBL z dodatkowymi regułami Peppol.
  • Rumuńska e-Factura (CIUS-RO) to EN 16931 w formacie UBL z dodatkowymi regułami rumuńskimi.
  • Factur-X (Francja) oraz ZUGFeRD 2.3 (Niemcy) zawierają dane w formacie CII zgodnym z EN 16931. W profilu „EN 16931”, który obsługuje Nordlet, oba formaty wykorzystują ten sam plik XML.

Jeśli faktura narusza regułę EN 16931, narusza również każdy format zbudowany na jej bazie.

Jak przeprowadziliśmy weryfikację

Komisja Europejska odsyła do reguł walidacyjnych publikowanych w serwisie GitHub przez komitet techniczny CEN ds. faktur elektronicznych (CEN/TC 434). Do testów zarówno formatów UBL, jak i CII użyliśmy najnowszej wersji 1.3.17 z dnia 12 października 2026 roku. Reguły są napisane w języku Schematron i skompilowane do formatu XSLT, a do ich uruchomienia użyto silnika XSLT Saxon-HE 12.5.

Pliki faktur zostały wygenerowane przez obecny kod Nordlet na podstawie danych testowych. Sprzedawcą jest litewska spółka, a nabywcami są: spółka litewska, spółka niemiecka oraz – w przypadku eksportu w sieci Peppol – spółka z USA. Przykładowe faktury zawierają pozycję ze stawką VAT 21% oraz pozycję ze stawką 0% wraz z adnotacją o zwolnieniu.

Wyniki

Co generuje Nordlet Sprawdzone pliki Wynik
Peppol BIS Billing 3.0 (UBL) 7: faktura krajowa, korekta, transakcja wewnątrzwspólnotowa, eksport, procedura odwrotnego obciążenia (reverse charge), sprzedawca niezarejestrowany do VAT, faktura w USD z rabatem Wszystkie poprawne: 0 błędów, 0 ostrzeżeń
Rumuńska e-Factura (UBL, CIUS-RO) 4: faktura krajowa, korekta, transakcja wewnątrzwspólnotowa, faktura w USD z rabatem Wszystkie poprawne
Factur-X / ZUGFeRD (CII, profil EN 16931) 4: faktura krajowa, korekta, transakcja wewnątrzwspólnotowa, faktura w USD z rabatem Wszystkie 4 błędne, po 1 błędzie w każdym pliku

Dwie reguły naruszane przez pliki Factur-X

BR-Z-10: pozycja ze stawką 0% nie może zawierać przyczyny zwolnienia

Norma EN 16931 rozróżnia kategorie VAT dla stawki 0% („Z”, zero-rated) oraz dla dostaw zwolnionych („E”, exempt). Przyczyna zwolnienia podawana jest wyłącznie w przypadku dostaw zwolnionych. Reguła BR-Z-10 stanowi, że podsumowanie podatku VAT w kategorii „Z” nie może zawierać kodu przyczyny zwolnienia (BT-121) ani opisu przyczyny zwolnienia (BT-120).

Generator Factur-X umieszcza tekst zwolnienia „Taux zéro” w każdym podsumowaniu ze stawką zero, przez co trzy z czterech plików nie przeszły walidacji. Ignoruje on również adnotację o zwolnieniu wprowadzonć na poziomie pozycji. Generator Peppol obsługuje tę samą pozycję prawidłowo: gdy pozycja ze stawką 0% posiada adnotację o zwolnieniu, zapisuje ją jako zwolnioną („E”) i wykorzystuje tę adnotację jako przyczynę.

BR-IC-12: sprzedaż wewnątrzwspólnotowa musi wskazywać kraj dostawy

Reguła BR-IC-12 stanowi, że jeśli podsumowanie podatku VAT ma kategorię „K” (dostawa wewnątrzwspólnotowa), kod kraju dostawy (BT-80) nie może być pusty. Kraj dostawy wskazuje, że towary opuściły kraj sprzedawcy.

Generator Factur-X nie zapisuje kraju dostawy, w związku z czym plik dotyczący transakcji wewnątrzwspólnotowej kończy się błędem. Generator Peppol w takich przypadkach wpisuje kraj nabywcy jako kraj dostawy.

Czego nie obejmuje ta weryfikacja

  • Schemat XML. Przetestowaliśmy wyłącznie reguły biznesowe, pomijając weryfikację schematów UBL i CII (XSD).
  • Pola, których Nordlet nie zapisuje. Reguły dotyczące warunków, których pliki nie zawierają, nie były uruchamiane. Przykłady obejmują opłaty na poziomie dokumentu, kwoty przedpłacone, okres fakturowania oraz odniesienia do zamówień zakupu.
  • Krajowe reguły wykraczające poza EN 16931. Nie weryfikowaliśmy reguł francuskiej reformy faktur elektronicznych ani niemieckich reguł XRechnung. Reguły specyficzne dla sieci Peppol są sprawdzane przez osobny skrypt Nordlet, który korzysta z zestawów reguł OpenPeppol.
  • Część PDF formatu Factur-X. Faktura w formacie Factur-X to plik PDF/A-3 z dołączonym plikiem XML. Walidacja dotyczyła wyłącznie zawartości XML.