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
Peppol egzekwuje ścisłe reguły matematyczne dotyczące obliczeń podatkowych.
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
Problemy z identyfikacją kupującego i sprzedającego.
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.
Brakująca lub nieprawidłowa referencja nabywcy
BuyerReference (BT-10) jest obowiązkowy w Peppol BIS 3.0. W przypadku niemieckiego XRechnung musi to być Leitweg-ID. Brakujące lub nieprawidłowe referencje powodują odrzucenie po stronie kupującego.
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 UBLCzę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.
Co to jest reguła Schematron?
Schematron to język walidacji XML używany do wyrażania reguł biznesowych Peppol. W odróżnieniu od XSD (które waliduje strukturę), Schematron może walidować relacje między polami, np. jeśli kategoria podatkowa to S, to stawka podatkowa musi być > 0.
Jak znaleźć mój punkt końcowy Peppol?
Twój punkt końcowy Peppol jest zarejestrowany u Twojego dostawcy punktu dostępowego. Używa identyfikatora schematu (np. 0208 dla belgijskiego numeru przedsiębiorstwa) i Twojego identyfikatora. Skontaktuj się ze swoim dostawcą AP.
Czy ValidateFin może sprawdzać reguły NLCIUS lub XRechnung?
ValidateFin waliduje zgodnie z Peppol BIS 3.0 i podstawowymi regułami EN 16931, które obejmują większość wymagań NLCIUS i XRechnung. Rozszerzenia specyficzne dla danego kraju mogą wymagać dodatkowej walidacji.
Co to jest BR-CO-10?
BR-CO-10 to reguła EN 16931 wymagająca, aby suma kwot netto wierszy faktury była równa kwocie bez podatku. Jest to jedna z najczęściej niespełnianych reguł ze względu na problemy z zaokrąglaniem.
Czy noty kredytowe podlegają tym samym regułom?
Tak. Peppol BIS 3.0 stosuje te same reguły biznesowe zarówno do faktur, jak i not kredytowych. Główna różnica to kod typu dokumentu (380 dla faktury, 381 dla noty kredytowej).
Jak często zmieniają się reguły Peppol?
Peppol publikuje aktualizacje reguł mniej więcej dwa razy w roku (wydania wiosenne i jesienne). Każda aktualizacja może dodawać, modyfikować lub usuwać reguły. ValidateFin jest na bieżąco z najnowszą wersją.