Walidacja faktury

Darmowy eConnect Validator: sprawdź, czy Państwa plik XML jest zgodny z UBL, BIS Billing i NLCIUS.

Przed wysłaniem e-faktury warto upewnić się, że plik XML jest technicznie poprawny. eConnect Validator sprawdza fakturę pod kątem schematów XML, reguł Schematron i walidacji specyficznych dla danego kraju. Narzędzie jest dostępne bezpłatnie jako walidator online.

Co sprawdza walidator?

eConnect Validator wykonuje kilka kontroli pliku e-faktury:

Walidacja schematu XML. Czy podstawowa struktura pliku jest poprawna? Czy wszystkie wymagane elementy XML są obecne i prawidłowo zagnieżdżone?

Walidacja Schematron. Czy faktura jest zgodna z regułami biznesowymi wybranego profilu? Chodzi o reguły dotyczące obliczeń VAT, wymaganych pól i list kodów.

Sprawdzenie profilu. System automatycznie rozpoznaje, jaki profil stosuje faktura (BIS Billing V3, NLCIUS, PINT, XRechnung) i stosuje odpowiednie reguły walidacji.

Reguły specyficzne dla kraju. Dla każdego kraju obowiązują dodatkowe reguły walidacji. Dla Holandii są to reguły NL-R, dla Niemiec reguły DE-R, dla Danii reguły DK-R itd. Walidator stosuje je automatycznie na podstawie kodu kraju w fakturze.

Obsługiwane formaty

Walidator obsługuje wszystkie popularne formaty e-faktur:

FormatOpisPeppol BIS Billing V3Standard Peppol dla faktur i not kredytowychNLCIUS / SI-UBL 2.0Holenderska implementacja EN 16931PINT (wszystkie warianty)Peppol International Invoice (UE, A-NZ, Japonia, Singapur, Malezja, ZEA)XRechnungImplementacja niemieckaCII (Cross-Industry Invoice)Alternatywna składnia XML, w tym Factur-X
Jak korzystać z walidatora?

Walidator online jest dostępny na /pl/validator. Nie trzeba zakładać konta.

  1. Otwórz Document Validator.
  2. Przesłać plik XML lub wkleić zawartość XML.
  3. Walidator automatycznie rozpozna format i zastosuje odpowiednie reguły.
  4. Sprawdzić wynik: dla każdej reguły widać, czy kontrola została zaliczona, wygenerowała ostrzeżenie, czy zawiera błąd.

W przypadku błędów walidator podaje dokładny kod błędu, opis problemu i lokalizację w pliku XML (XPath). Dzięki temu dokładnie wiadomo, co należy poprawić.

Interpretacja błędów

Walidator generuje trzy typy komunikatów:

  • Błąd (error): faktura nie jest zgodna ze specyfikacją i zostanie odrzucona w sieci Peppol. Należy to naprawić przed wysłaniem.
  • Ostrzeżenie (warning): faktura nie zostanie odrzucona, ale jest punkt wymagający uwagi. Ostrzeżenia mogą stać się obowiązkowe w przyszłej wersji.
  • Informacyjny: uwaga bez konsekwencji dla wysyłki.

Najczęstsze kody błędów zaczynają się od prefiksu wskazującego domenę: PEPPOL- dla reguł ogólnych Peppol, NL-R- dla reguł holenderskich, BR- dla reguł podstawowych EN 16931. Opis błędu zawsze wskazuje oczekiwane zachowanie.

Częste błędy walidacji dla not kredytowych

Przy wysyłaniu noty kredytowej regularnie występują pewne specyficzne błędy walidacji. Błąd pojawia się na poziomie Peppol (przy wysyłce przez API np. jako [API400.AT04] Invalid payload). Według reguły, przyczyna i rozwiązanie:

Kod błęduPrzyczynaRozwiązanieBR-IC-02 (EN 16931: BR-IC-2)Pozycja faktury (BG-25) z kategorią VAT Intra-community supply / K (BT-151) bez obowiązkowego party-VAT: seller VAT (BT-31) lub seller tax representative VAT (BT-63), oraz buyer VAT (BT-48). Nie wskazuje konkretnego numeru pozycji; brakujące dane w szczegółach strony.Uzupełnij seller VAT (lub tax rep) oraz buyer VAT z prefiksem kraju, bez spacji/kropek. Sprawdź wszystkie pozycje z kategorią K.BR-IC-11Przy dostawie wewnątrzwspólnotowej (kategoria VAT "Intra-community supply") brakuje daty dostawy BT-72.Uzupełnij rzeczywistą datę dostawy (BT-72, cac:Delivery/cbc:ActualDeliveryDate), lub podaj okres fakturowania (BG-14). Jedno z dwóch jest obowiązkowe.BR-IC-12Przy dostawie wewnątrzwspólnotowej brakuje kodu kraju BT-80 adresu dostawy.Uzupełnij kod kraju "deliver to" (BT-80, cac:Delivery/cac:DeliveryLocation/cac:Address/cac:Country/cbc:IdentificationCode) kodem ISO 3166-1 alpha-2.BR-27Cena jednostkowa (PriceAmount, BT-146) jest ujemna ("Item net price shall NOT be negative"; m.in. Maventa/Peppol zgłasza to jako "XML Invalid").Cena jednostkowa zawsze musi być dodatnia. Nie można wyłączyć -- to nie jest ustawienie tenant eConnect, to reguła EN 16931/Peppol. Skoryguj przez ujemną ilość (TypeCode 380) lub przez schemat CreditNote (381, cena i ilość dodatnie). Popraw eksport w oprogramowaniu źródłowym; ponowne wysłanie tego samego XML nie rozwiązuje BR-27. Zobacz również Warianty noty kredytowej i self-billing.NL-R-001Brakuje obowiązkowego odniesienia do faktury na nocie kredytowej dostawcy z NL.Uzupełnij cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID numerem oryginalnej faktury. Obowiązkowe dla not kredytowych. Zobacz również Warianty noty kredytowej.

BR-IC-11 i BR-IC-12 to podstawowe reguły EN 16931, które mają zastosowanie wyłącznie wtedy, gdy nota kredytowa zawiera wewnątrzwspólnotową kategorię VAT; przy dostawach krajowych nie występują.

Błędy walidacji dla okresów faktury i pozycji

Faktura może zawierać okres na dwóch poziomach: okres faktury na poziomie dokumentu (BG-14) oraz okres pozycji dla każdej pozycji faktury (BG-26, dla usług cyklicznych lub subskrypcji na poziomie pozycji). Gdy używane są oba, Peppol wymaga, aby każdy okres pozycji mieścił się w nadrzędnym okresie faktury. Poniższe błędy pojawiają się, gdy ten warunek nie jest spełniony:

Kod błęduKomunikatPrzyczynaRozwiązaniePEPPOL-EN16931-R110Start date of line period MUST be within invoice period.Data początkowa okresu pozycji (BT-134) jest wcześniejsza niż data początkowa okresu faktury (BT-73).Upewnij się, że BT-134 (cac:InvoiceLine/cac:InvoicePeriod/cbc:StartDate) jest równa lub późniejsza niż data początkowa okresu faktury BT-73 (cac:InvoicePeriod/cbc:StartDate na poziomie dokumentu).PEPPOL-EN16931-R111End date of line period MUST be within invoice period.Data końcowa okresu pozycji (BT-135) jest późniejsza niż data końcowa okresu faktury (BT-74).Upewnij się, że BT-135 (cac:InvoiceLine/cac:InvoicePeriod/cbc:EndDate) jest równa lub wcześniejsza niż data końcowa okresu faktury BT-74 (cac:InvoicePeriod/cbc:EndDate na poziomie dokumentu).BR-30If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).Obecne są zarówno data początkowa (BT-134), jak i końcowa (BT-135) InvoiceLinePeriod, a BT-135 jest wcześniejsza niż BT-134.Uzupełnij prawidłowe daty (YYYY-MM-DD): data końcowa większa lub równa dacie początkowej. Jeśli okres pozycji nie jest potrzebny, pomiń cały blok cac:InvoiceLine/cac:InvoicePeriod (BG-26), nie tylko daty. Puste lub nieprawidłowe pole daty nadal liczy się jako obecne. Uzupełnij co najmniej datę początkową lub końcową, jeśli grupa jest używana (BR-CO-20).

Podstawowa kontrola R110 polega na sprawdzeniu, czy data początkowa okresu pozycji jest równa lub późniejsza niż data początkowa okresu faktury. Jeśli błąd nadal występuje, mimo że okres pozycji wygląda poprawnie, sprawdź, czy problem leży na poziomie dokumentu: albo okres faktury (BT-73) jest ustawiony zbyt późno, albo okres pozycji jest niezamierzenie szerszy niż zamierzono. Oba okresy muszą się wzajemnie obejmować: okres faktury stanowi zewnętrzną granicę, a każdy okres pozycji musi się w niej mieścić.

BR-30 (EN 16931) to inna reguła niż R110/R111: R110/R111 sprawdzają, czy okres pozycji mieści się w okresie faktury, natomiast BR-30 sprawdza tylko kolejność dwóch obecnych dat okresu pozycji (BT-135 większa lub równa BT-134).

Dodatkowe reguły dotyczące okresów, które mogą wystąpić w tym samym kontekście:

  • BR-CO-19 / BR-CO-20: jeśli używany jest okres faktury (BG-14) lub okres pozycji (BG-26), należy uzupełnić co najmniej datę początkową lub końcową (wystarczy jedna z nich, dopuszczalne jest też uzupełnienie obu).
  • PEPPOL-EN16931-F001: wszystkie daty muszą mieć format YYYY-MM-DD.

Te reguły dotyczą zarówno faktur (ubl:Invoice), jak i not kredytowych (ubl:CreditNote).

Walidacja przy wysyłce

Oprócz ręcznego walidatora, platforma eConnect automatycznie wykonuje walidację w momencie wysyłki. Jeśli faktura nie spełnia wymagań, wysyłka zostaje zablokowana i wyświetlany jest komunikat o błędzie z odpowiednią regułą walidacji.

Dla użytkowników API: PSB waliduje każdą fakturę w momencie przesłania i zwraca wyniki walidacji w odpowiedzi API. W ten sposób można wbudować walidację we własny proces oprogramowania.

Śledzenie nowych wersji

Reguły walidacji są aktualizowane przy każdej nowej wersji specyfikacji Peppol BIS Billing. eConnect aktualizuje artefakty Schematron i listy kodów, gdy nowa wersja staje się obowiązkowa. Walidator online zawsze waliduje względem aktualnej wersji.

Wskazówka: po aktualizacji specyfikacji warto sprawdzić, czy Państwa faktury nadal są poprawne. Nowe reguły mogą stawiać bardziej rygorystyczne wymagania wobec pól, które wcześniej były opcjonalne.

Często zadawane pytania
Co jeśli moja faktura zawiera błąd podczas walidacji?

Dla każdego błędu walidator pokazuje dokładny kod błędu, opis problemu i lokalizację w pliku XML (XPath). Błędy muszą zostać naprawione przed wysyłką, w przeciwnym razie faktura zostanie odrzucona w sieci Peppol. Ostrzeżenia są punktami wymagającymi uwagi, ale nie blokują wysyłki.

Jakie formaty może sprawdzić walidator?

Walidator obsługuje Peppol BIS Billing V3, NLCIUS/SI-UBL 2.0, wszystkie warianty PINT, XRechnung i CII (Cross-Industry Invoice, w tym Factur-X). Format jest wykrywany automatycznie po przesłaniu pliku XML.

Czy moja faktura jest również automatycznie walidowana przy wysyłce?

Tak. Platforma eConnect automatycznie przeprowadza walidację w momencie wysyłki. Jeśli faktura nie spełnia wymagań, wysyłka zostaje zablokowana z komunikatem o błędzie. Użytkownicy API otrzymują wyniki walidacji w odpowiedzi API.


Chcą Państwo sprawdzić pliki przykładowe, aby zweryfikować budowę swojego XML? Pobierz pliki przykładowe.

Zwaliduj swoją fakturę

Powiązane