Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-25: Jeder Position einen Artikelnamen geben

Jede Position einer Rechnung oder Gutschrift braucht ein nicht leeres cac:Item/cbc:Name. Es wird je Position geprüft, und eine Artikelbeschreibung ersetzt es nicht.

EN 16931Fehler: Das Dokument ist ungültigKernfelderPositionen und Preise

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.

BegriffBedeutungUBL-Element
BT-153Artikelnamecac:InvoiceLine/cac:Item/cbc:Name
BG-25Rechnungspositioncac: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:Description und lässt cbc:Name weg.
  • Namen werden je Kundensprache übersetzt, und die Übersetzung für diese Sprache ist leer.

So korrigieren Sie das Dokument

  1. Ermitteln Sie anhand der Fundstelle des Befunds, welche Positionen fehlschlagen.
  2. Übernehmen Sie bei Produktpositionen den Produktnamen, wie er zum Verkaufszeitpunkt an der Rechnungsposition gespeichert wurde, in cac:Item/cbc:Name.
  3. 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:Name und behalten Sie den vollständigen Text in cbc:Description.
  4. Im XML steht cbc:Description innerhalb von cac:Item vor cbc:Name. Halten Sie diese Reihenfolge ein, wenn Sie das Element ergänzen, sonst weist der XSD-Prüfschritt die Position ab.

Korrigierte Rechnung prüfen

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

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:InvoiceLine in einer UBL Invoice und für cac:CreditNoteLine in einer CreditNote. Die Struktur von cac:Item ist 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:Name und werden von ihr nicht gelesen.

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.