Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-22: Jeder Position die berechnete oder gutgeschriebene Menge geben

Jede Position benötigt ein Mengenelement, cbc:InvoicedQuantity oder cbc:CreditedQuantity. Ohne dieses Element schlagen auch die Prüfung des Einheitencodes und die Positionsberechnung fehl.

EN 16931Fehler: Das Dokument ist ungültigPositionen und PreiseKernfelder

Auf dieser Seite

Die kurze Antwort

BR-22 schlägt fehl, wenn eine Position kein Mengenelement hat: kein cbc:InvoicedQuantity in einer cac:InvoiceLine oder kein cbc:CreditedQuantity in einer cac:CreditNoteLine. Fügen Sie die Anzahl der Einheiten, die die Position berechnet oder gutschreibt, mit ihrem unitCode vor cbc:LineExtensionAmount ein.

Rechnen Sie mit zwei weiteren Befunden an derselben Position, bis die Menge wieder da ist. Der Einheitencode ist ein Attribut des Mengenelements, daher schlägt BR-23 mit fehl, und die Peppol-Positionsberechnung rechnet anstelle der fehlenden Menge mit einer Menge von 1 weiter.

Was die Regel prüft

Für jede cac:InvoiceLine oder cac:CreditNoteLine sucht die Regel ein direktes Kindelement namens cbc:InvoicedQuantity oder cbc:CreditedQuantity und ist erfüllt, wenn eines davon existiert. Die Zahl liest sie nicht.

Erfasst wird hier nur das Fehlen. Ein leeres Mengenelement weist der XSD-Prüfschritt ab, der eine Zahl erwartet, sodass die Geschäftsregeln darauf nie laufen. Eine Menge von 0 besteht diese Regel; in der aufgezeichneten Position wurde sie stattdessen von PEPPOL-EN16931-R120 gemeldet, weil 0 x 12.5 nicht 25.00 ergibt.

Die Regel selbst akzeptiert jeden der beiden Elementnamen in jedem Dokumenttyp, das Schema aber nicht. Im Versuch scheiterte ein cbc:InvoicedQuantity in einer cac:CreditNoteLine am XSD-Prüfschritt.

Eine fehlende Menge bringt immer BR-23 mit sich. Ob PEPPOL-EN16931-R120 hinzukommt, hängt vom Preis ab, denn diese Regel zählt die fehlende Menge als 1. Im Versuch mit einem auf 25 erhöhten Preis, sodass 1 x 25 dem Positionsbetrag von 25.00 entsprach, wurden nur BR-22 und BR-23 gemeldet.

BegriffBedeutungUBL-Element
BT-129In Rechnung gestellte Mengecac:InvoiceLine/cbc:InvoicedQuantity (cac:CreditNoteLine/cbc:CreditedQuantity in a credit note)
BT-130Code der Maßeinheit der in Rechnung gestellten Mengecac:InvoiceLine/cbc:InvoicedQuantity/@unitCode (cac:CreditNoteLine/cbc:CreditedQuantity/@unitCode in a credit note)

Wie es in einer Integration dazu kommt

Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:

  • Dienstleistungs- oder Pauschalpositionen haben im Quellsystem einen Betrag, aber keine Menge, und das Mapping überspringt das Element, wenn das Feld null ist.
  • Die Menge steht in einer Liefer- oder Auftragsposition, die beim Aufbau der Rechnungsposition nicht verknüpft wird.
  • Gutschriften werden aus dem Rechnungsmapping erzeugt, und der Schritt, der cbc:InvoicedQuantity in cbc:CreditedQuantity umbenennen soll, lässt das Element stattdessen weg.
  • Eine Vorlage schreibt die Menge nur für Lagerartikel, und eine manuelle oder Freitextposition läuft ohne Menge durch.

So korrigieren Sie das Dokument

  1. Ermitteln Sie die Position anhand des Orts des Befunds.
  2. Nehmen Sie die Menge aus der Quellposition: die Anzahl der gelieferten Einheiten oder die Anzahl, die gutgeschrieben wird. Eine einmal berechnete Gebühr oder Leistung hat eine Menge von 1 in einer passenden Einheit wie C62; übermitteln Sie diese, statt die Menge wegzulassen.
  3. Schreiben Sie sie als cbc:InvoicedQuantity in einer Rechnung oder cbc:CreditedQuantity in einer Gutschrift, mit dem UN/ECE-Einheitencode in unitCode, unmittelbar vor cbc:LineExtensionAmount.
  4. Rechnen Sie die Position nach: Menge x (Nettopreis / Basismenge), plus Zuschläge und minus Nachlässe auf Positionsebene, muss auf 0.02 genau den Nettobetrag der Position ergeben, was PEPPOL-EN16931-R120 prüft. Ist das nicht der Fall, ist einer dieser Werte in der Quelle falsch.

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.

Ausschnitt der fehlerhaften Rechnung: Die Position hat einen Nettobetrag und einen Preis, aber keine Menge

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <!-- item omitted from this fragment -->
  <cac:Price>
    <cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
    <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
  </cac:Price>
</cac:InvoiceLine>

Ausschnitt der korrigierten Rechnung: eine Menge von 2 in der Einheit C62 vor dem Nettobetrag der Position

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <!-- item omitted from this fragment -->
  <cac:Price>
    <cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
    <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
  </cac:Price>
</cac:InvoiceLine>

Die korrigierte Rechnung hat <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity> in Position 1, die fehlerhafte hat dort keine Menge. Zwei weitere Regeln werden für dieselbe Position gemeldet. BR-23 schlägt fehl, weil der gesuchte Einheitencode ein Attribut des fehlenden Elements ist. PEPPOL-EN16931-R120 schlägt fehl, weil es die fehlende Menge als 1 zählt, und 1 x 12.5 ergibt 12.50, nicht die 25.00, die die Position angibt. Die Menge von 2 wiederherzustellen behebt alle drei 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

  • In einer UBL Invoice ist das Element cbc:InvoicedQuantity in cac:InvoiceLine; in einer CreditNote ist es cbc:CreditedQuantity in cac:CreditNoteLine. Im Versuch mit einer Gutschrift ergab das Entfernen der gutgeschriebenen Menge dieselben drei Regeln an cac:CreditNoteLine[1].
  • Die Menge ist im UBL-Schema optional, weshalb ihr Fehlen den XSD-Prüfschritt passiert und dieser Regel überlassen bleibt.
  • Eine vorhandene Menge ohne unitCode besteht diese Regel und wird stattdessen von BR-23 gemeldet.

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

Die offizielle Definition von BR-22 (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.