Oficjalna treść reguły
[PEPPOL-EN16931-R008] Document MUST not contain empty elements.
Tekst normatywny jest w języku angielskim i cytowany bez zmian.
Dlaczego pojawia się ten błąd
Peppol zabrania elementów, które nie mają ani elementów podrzędnych, ani treści tekstowej, ponieważ pusty element jest niejednoznaczny (brak wartości czy celowo pusta?) i zakłóca dalsze przetwarzanie. Reguła oznacza każdy element pasujący do //*[not(*) and not(normalize-space())], w CII z wyjątkiem ram:ApplicableHeaderTradeDelivery, który może być pusty. Puste elementy pochodzą niemal zawsze z szablonów, które generują każdy opcjonalny znacznik i wypełniają go tylko wtedy, gdy istnieją dane, np. <cbc:Note/>, <cbc:Telephone></cbc:Telephone> lub pusty <cac:Delivery/>.
Jak to naprawić
Generuj elementy opcjonalne tylko wtedy, gdy masz wartość: obuduj każdy opcjonalny znacznik warunkiem w szablonie lub serializatorze. Usuń wartości złożone wyłącznie z białych znaków, ponieważ są traktowane jako puste. Sprawdź też kontenery: zarówno <cac:Contact/> bez elementów podrzędnych, jak i <cac:PartyIdentification><cbc:ID/></cac:PartyIdentification> nie przejdą walidacji. Po zmianach ponownie uruchom walidator, ponieważ usunięcie jednego pustego elementu podrzędnego może pozostawić pusty element nadrzędny.
Przykład (poprawny)
<cac:Contact>
<cbc:Name>Accounts receivable</cbc:Name>
<cbc:ElectronicMail>invoice@muster-gmbh.de</cbc:ElectronicMail>
</cac:Contact>
Co sprawdza walidator
Sprawdzany element (kontekst):
UBL
//*[not(*) and not(normalize-space())]Test (XPath):
false()CII
//*[not(name() = 'ram:ApplicableHeaderTradeDelivery') and not(*) and not(normalize-space())]Test (XPath):
false()
Popraw automatycznie
Ten błąd można poprawić automatycznie: upuść plik w walidatorze i kliknij „Popraw automatycznie”.
To samo sprawdzenie przez API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validatePowiązane reguły
PEPPOL-EN16931-R001Brak identyfikatora procesu biznesowego (BT-23)PEPPOL-EN16931-R002Najwyżej jedna uwaga na poziomie dokumentu, chyba że nabywca i sprzedawca…PEPPOL-EN16931-R003Brak referencji nabywcy i numeru zamówieniaPEPPOL-EN16931-R004Identyfikator specyfikacji nie jest identyfikatorem Peppol BIS 3.0PEPPOL-EN16931-R005Waluta rozliczenia VAT jest taka sama jak waluta fakturyPEPPOL-EN16931-R006Dozwolony tylko jeden fakturowany obiekt na poziomie dokumentuPEPPOL-EN16931-R007Identyfikator procesu biznesowego ma nieprawidłowy formatPEPPOL-EN16931-R010Brak adresu elektronicznego nabywcy (BT-49)
Najczęstsze pytania
Co oznacza PEPPOL-EN16931-R008?
PEPPOL-EN16931-R008 to reguła peppol bis billing 3.0: Document MUST not contain empty elements.
Czy moja faktura zostanie odrzucona z powodu PEPPOL-EN16931-R008?
Tak. PEPPOL-EN16931-R008 ma status „krytyczny”; walidatory (KSeF, punkty dostępowe Peppol, KoSIT) odrzucają fakturę do czasu poprawienia błędu.
Jakich formatów dotyczy PEPPOL-EN16931-R008?
Faktury i noty kredytowe przesyłane siecią Peppol (UBL) oraz, ponieważ XRechnung zawiera reguły Peppol, każda XRechnung. Składnia: UBL i CII.
Źródło: Peppol BIS Billing 3.0.20 (November 2025). Katalog wygenerowany z oficjalnych zestawów reguł dnia 2026-10-15.