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.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-129 | In Rechnung gestellte Menge | cac:InvoiceLine/cbc:InvoicedQuantity (cac:CreditNoteLine/cbc:CreditedQuantity in a credit note) |
| BT-130 | Code der Maßeinheit der in Rechnung gestellten Menge | cac: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:InvoicedQuantityincbc:CreditedQuantityumbenennen 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
- Ermitteln Sie die Position anhand des Orts des Befunds.
- 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. - Schreiben Sie sie als
cbc:InvoicedQuantityin einer Rechnung odercbc:CreditedQuantityin einer Gutschrift, mit dem UN/ECE-Einheitencode inunitCode, unmittelbar vorcbc:LineExtensionAmount. - 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-R120prüft. Ist das nicht der Fall, ist einer dieser Werte in der Quelle falsch.
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
- Die fehlerhafte Rechnung meldet BR-22, BR-23 und PEPPOL-EN16931-R120. 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
- In einer UBL
Invoiceist das Elementcbc:InvoicedQuantityincac:InvoiceLine; in einerCreditNoteist escbc:CreditedQuantityincac:CreditNoteLine. Im Versuch mit einer Gutschrift ergab das Entfernen der gutgeschriebenen Menge dieselben drei Regeln ancac: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
unitCodebesteht diese Regel und wird stattdessen vonBR-23gemeldet.
Verwandte Regeln
- BR-23 verlangt den Einheitencode an der Menge und wird mit dieser Regel gemeldet, wenn das Element fehlt
- PEPPOL-EN16931-R120 berechnet die Position aus der Menge nach und liest eine fehlende Menge als 1
- BR-CL-23 prüft, ob der Einheitencode an der Menge ein anerkannter Code ist
- BR-26 verlangt den Nettopreis des Artikels, den anderen Eingangswert der Positionsberechnung
- 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-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.

