ValidateFin
Powrót do bloga
·Zaktualizowano 11 mar 2026·UBL·Autor: Eliel Nicaise

Typowe błędy UBL i Peppol BIS 3.0 oraz jak je naprawić

Praktyczny przewodnik po najczęstszych błędach walidacji UBL i regułach Peppol BIS 3.0, w tym kody błędów BR i korekty.

Dlaczego pliki UBL nie przechodzą walidacji Peppol

Faktury UBL (Universal Business Language) przesyłane przez sieć Peppol muszą przejść trzy warstwy walidacji: schemat XSD UBL 2.1, reguły biznesowe EN 16931 (kody BR) i reguły CIUS Peppol BIS 3.0 (kody PEPPOL).

Każda warstwa może odrzucić fakturę. Ten przewodnik omawia najczęstsze błędy, z jakimi borykają się zespoły podczas generowania lub przesyłania faktur Peppol na żywo.

Kody błędów mają strukturalny wzorzec: BR-XX dla reguł biznesowych EN 16931, PEPPOL-XX dla reguł specyficznych dla Peppol i UBL-SR-XX dla reguł składniowych UBL.

Typowe błędy i korekty

Najczęściej zgłaszane błędy walidacji UBL/Peppol:

BR-01: Faktura musi mieć identyfikator specyfikacji

Element <cbc:CustomizationID> jest brakujący lub pusty. Dla Peppol BIS 3.0 musi zawierać dokładnie: urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0

BR-02: Faktura musi mieć numer faktury

Element <cbc:ID> jest brakujący lub pusty. Numer faktury musi być unikalny i nie może składać się wyłącznie ze spacji.

BR-04: Data faktury jest obowiązkowa

<cbc:IssueDate> jest brakujący. Data musi być podana w formacie YYYY-MM-DD, np. 2026-01-15. Format DD/MM/RRRR nie jest akceptowany.

Błędy struktury i formatu

Blog.post12.s3.intro

Brakujące obowiązkowe pola dostawcy/nabywcy

Zarówno AccountingSupplierParty, jak i AccountingCustomerParty muszą zawierać PartyName, PostalAddress (z CountryIdentificationCode) i PartyTaxScheme (z TaxSchemeID=VAT i CompanyID).

Nieprawidłowe ID TaxScheme

Element TaxScheme/ID musi zawierać dokładnie 'VAT', nie 'VAT PL', 'TVA', 'MwSt' ani inne lokalne warianty.

Obliczanie sumy linii faktury

LineExtensionAmount musi być równy Quantity × Price.PriceAmount (minus ewentualne rabaty). Suma wszystkich linii musi odpowiadać TaxExclusiveAmount w LegalMonetaryTotal.

Błędy VAT i podatkowe

Blog.post12.s4.intro

Nieprawidłowy kod kategorii VAT

UBL/EN 16931 definiuje specyficzne kody kategorii: S (Standardowy), Z (Zerowa stawka), E (Zwolniony), AE (Odwrotne obciążenie), K (Dostawy wewnątrzwspólnotowe WE), G (Eksport poza UE), O (Nieopodatkowany), L (Wyspy Kanaryjskie), M (Ceuta/Melilla). Nie używaj kodu spoza tej listy.

Brakujący podział VAT

Element TaxTotal musi zawierać co najmniej jeden TaxSubtotal dla każdej odrębnej zastosowanej kategorii VAT. Faktura z mieszanymi stawkami VAT wymaga oddzielnych wpisów TaxSubtotal dla każdej z nich.

Blog.post12.s4.e3.label

Blog.post12.s4.e3.desc

Waliduj swoje faktury UBL bezpłatnie

ValidateFin przeprowadza pełną trójfazową walidację: schemat XSD, reguły biznesowe EN 16931 i reguły CIUS Peppol BIS 3.0. Błędy są wyświetlane z kodem BR/PEPPOL i błędną ścieżką XML.

Otwórz walidator UBL

Często zadawane pytania

Jaka jest różnica między kodami błędów BR i PEPPOL?

Kody BR (np. BR-01, BR-CO-15) pochodzą z normy EN 16931 i mają zastosowanie do wszystkich zgodnych faktur elektronicznych w Europie. Kody PEPPOL (np. PEPPOL-EN16931-R004) to dodatkowe reguły specyficzne dla Peppol BIS 3.0, które mają zastosowanie wyłącznie do transmisji przez sieć Peppol.

Czy mogę przesłać fakturę UBL bez sieci Peppol?

Tak. UBL może być przesyłany bezpośrednio przez API, e-mail, portal lub inne kanały. Reguły Peppol BIS 3.0 dotyczą wyłącznie sieci Peppol. W przypadku innych kanałów może być konieczne przestrzeganie tylko EN 16931 i krajowych CIUS.

Jak poprawnie zaokrąglić kwoty VAT w UBL?

EN 16931 pozwala na tolerancję zaokrąglenia ±0,01€ na linię. Dla sumy należy zsumować wszystkie kwoty linii, a następnie zaokrąglić do 2 miejsc po przecinku. Unikaj stosowania arytmetyki zmiennoprzecinkowej do obliczeń finansowych.

Czy CustomizationID jest obowiązkowy dla wszystkich faktur UBL?

CustomizationID jest obowiązkowy dla Peppol BIS 3.0. W przypadku innych CIUS (takich jak XRechnung lub krajowe implementacje Peppol) wymagana jest inna wartość. Zawsze sprawdzaj konkretny CIUS swojego kraju docelowego.

Blog.post12.faq.q5

Blog.post12.faq.a5

Blog.post12.faq.q6

Blog.post12.faq.a6

Blog.post12.faq.q7

Blog.post12.faq.a7

Blog.post12.faq.q8

Blog.post12.faq.a8

Blog.post12.faq.q9

Blog.post12.faq.a9

Blog.post12.faq.q10

Blog.post12.faq.a10