Konto
Polski

PEPPOL-EN16931-R008: Dokument zawiera puste elementy

Reguła Peppol BIS Billing 3.0 · Błąd · UBL, CII

StandardPeppol BIS Billing 3.0 (OpenPeppol)WagaBłąd: faktura zostaje odrzuconaSkładniaUBL, CIIDotyczyFaktury i noty kredytowe przesyłane siecią Peppol (UBL) oraz, ponieważ XRechnung zawiera reguły Peppol, każda XRechnung.

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”.

Popraw fakturę →

To samo sprawdzenie przez API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Powiązane reguły

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.