Auf dieser Seite
Die kurze Antwort
BR-25 schlägt für eine Position fehl, deren cac:Item/cbc:Name fehlt oder leer ist. Geben Sie in jeder Position einen kurzen Namen für das an, was verkauft wurde.
Die Fundstelle des Befunds zeigt auf die betroffene Position, zum Beispiel cac:InvoiceLine[2], und für jede Position ohne Namen gibt es einen eigenen Befund.
Was die Regel prüft
Die Regel läuft einmal für jede cac:InvoiceLine oder cac:CreditNoteLine und schlägt fehl, wenn das cbc:Name direkt im cac:Item dieser Position fehlt oder nur Leerraum enthält. Zwei Positionen ohne Namen in einem Dokument ergeben zwei Befunde.
cbc:Description ist keine Alternative. Eine Position, deren Artikel eine Beschreibung, aber keinen Namen hat, schlägt trotzdem fehl.
Fehlend oder leer: cac:Item selbst ist im UBL-Schema Pflicht, und eine Position ohne dieses Element wird vom XSD-Prüfschritt abgewiesen, bevor eine Geschäftsregel läuft. Das darin enthaltene cbc:Name ist im Schema optional, daher besteht eine Position mit einem Artikel ohne Namen den XSD-Prüfschritt und meldet nur BR-25. Ist der Name vorhanden, aber leer, wie im aufgezeichneten Beispiel, wird zusätzlich PEPPOL-EN16931-R008 gemeldet.
Am Text wird nichts geprüft, außer dass es welchen gibt. Ein Name - besteht.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-153 | Artikelname | cac:InvoiceLine/cac:Item/cbc:Name |
| BG-25 | Rechnungsposition | cac:InvoiceLine |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Freitextpositionen wie Fracht, eine Gebühr oder eine manuelle Korrektur haben einen Betrag, aber kein Produkt dahinter, also gibt es keinen Produktnamen zum Kopieren.
- Das Produkt wurde nach dem Verkauf gelöscht oder umbenannt, und der Name wird live nachgeschlagen, statt an der Rechnungsposition gespeichert zu sein.
- Das Quellsystem führt je Position nur einen langen Text, und die Abbildung schreibt ihn in
cbc:Descriptionund lässtcbc:Nameweg. - Namen werden je Kundensprache übersetzt, und die Übersetzung für diese Sprache ist leer.
So korrigieren Sie das Dokument
- Ermitteln Sie anhand der Fundstelle des Befunds, welche Positionen fehlschlagen.
- Übernehmen Sie bei Produktpositionen den Produktnamen, wie er zum Verkaufszeitpunkt an der Rechnungsposition gespeichert wurde, in
cac:Item/cbc:Name. - Schreiben Sie bei Positionen ohne Produkt eine kurze Bezeichnung dessen, wofür die Position steht. Hat die Quelle nur einen langen Text, setzen Sie eine sinnvolle Kurzform in
cbc:Nameund behalten Sie den vollständigen Text incbc:Description. - Im XML steht
cbc:Descriptioninnerhalb voncac:Itemvorcbc:Name. Halten Sie diese Reihenfolge ein, wenn Sie das Element ergänzen, sonst weist der XSD-Prüfschritt die Position ab.
Vorher und nachher
Dies sind Ausschnitte, keine vollständigen Dokumente. Die vollständigen synthetischen Dokumente, aus denen sie stammen, sind unten verlinkt.
Position der fehlerhaften Rechnung: Der Artikel hat einen leeren Namen
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name></cbc:Name>
<!-- tax category omitted from this fragment -->
</cac:Item>
<!-- price omitted from this fragment -->
</cac:InvoiceLine>Position der korrigierten Rechnung: Der Artikel hat einen Namen
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Example service</cbc:Name>
<!-- tax category omitted from this fragment -->
</cac:Item>
<!-- price omitted from this fragment -->
</cac:InvoiceLine>Nur cac:Item/cbc:Name in Position 1 unterscheidet sich: leer in der fehlerhaften Rechnung, Example service in der korrigierten. Das fehlerhafte Dokument meldet außerdem PEPPOL-EN16931-R008 am selben cbc:Name, weil Peppol Elemente ohne Inhalt ablehnt. Das Eintragen des Namens behebt beide Befunde.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-25 und PEPPOL-EN16931-R008. Das korrigierte Dokument besteht jeden Prüfschritt ohne Befunde.Fehlerhaftes XML herunterladenKorrigiertes XML herunterladen
Aufgezeichnet mit phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, der Engine hinter dem kostenlosen Validator, mit synthetischen Daten. Ein aufgezeichnetes Ergebnis ist ein Regressionsnachweis für diese Dokumente, keine Zertifizierung.
Wo die Regel gilt
- Gilt für
cac:InvoiceLinein einer UBLInvoiceund fürcac:CreditNoteLinein einerCreditNote. Die Struktur voncac:Itemist in beiden gleich, und eine Gutschriftsposition mit leerem oder fehlendem Namen verhält sich genau wie oben beschrieben. - Die Regel betrifft nur den Artikel der Position. Namen an anderen Stellen des Dokuments, etwa von Beteiligten oder Ansprechpartnern, verwenden dasselbe Element
cbc:Nameund werden von ihr nicht gelesen.
Verwandte Regeln
- PEPPOL-EN16931-R008 wird am selben Element gemeldet, wenn der Name vorhanden, aber leer ist
- BR-27 prüft den Nettopreis des Artikels in derselben Position
- BR-CL-23 prüft den Einheitencode der Positionsmenge
- PEPPOL-EN16931-R120 prüft den Nettobetrag der Position gegen Menge und Preis
- Alle Regeln der Referenz ansehen
- Hintergrund (auf Englisch): Understanding EN 16931 validation errors
Umfang und Quelle
Geschrieben für Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, angewendet auf Invoice- und CreditNote-Dokumente in UBL 2.1. Andere Profile, Syntaxen und Releases können diese Kennung anders definieren. Version des Hinweiskatalogs 2026-09-24.1: Quelle geprüft am 2026-09-24, Erklärung zuletzt aktualisiert am 2026-09-20.
Die offizielle Definition von BR-25 (auf Englisch) enthält den normativen Wortlaut und den Test. Diese Seite ist unsere Erklärung dazu, keine Kopie.
Die Erklärung ändert das Urteil der Engine nicht. Dass Sie diesen Befund beheben, heißt nicht, dass das Dokument jeden Prüfschritt besteht. Die Validierung bescheinigt keine rechtliche oder steuerliche Konformität und überträgt kein Dokument über Peppol.

