Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-12: Die Summe der Nettobeträge der Positionen in den Gesamtbeträgen angeben

In cac:LegalMonetaryTotal fehlt cbc:LineExtensionAmount. Tragen Sie dort die Summe der Nettobeträge der Positionen ein, auch wenn das Dokument nur eine Position hat.

EN 16931Fehler: Das Dokument ist ungültigSummen

Auf dieser Seite

Die kurze Antwort

BR-12 schlägt fehl, wenn cac:LegalMonetaryTotal kein Kindelement cbc:LineExtensionAmount hat. Fügen Sie es als erstes Element der Gesamtbeträge ein, mit der Summe der cbc:LineExtensionAmount aller Positionen, gerundet auf zwei Nachkommastellen.

Derselbe Elementname steht an jeder Position, daher wird diese Summe leicht übersehen. Die Beträge der Positionen zählen nicht dafür: Die Summe auf Dokumentenebene muss zusätzlich geschrieben werden, auch wenn bei nur einer Position beide Werte gleich sind.

Was die Regel prüft

Die Regel läuft auf cac:LegalMonetaryTotal und verlangt ein Element cbc:LineExtensionAmount direkt darin. Sein Wert wird hier nicht untersucht; ob er der Summe der Positionen entspricht, entscheidet BR-CO-10.

Eine leere Positionssumme kommt nie so weit. Das Schema verlangt, dass jeder Betrag eine Dezimalzahl ist, daher scheiterte im Versuch ein leeres cbc:LineExtensionAmount in den Gesamtbeträgen am XSD-Prüfschritt, und der Prüfschritt EN 16931 wurde übersprungen.

Innerhalb der Gesamtbeträge verlangt das UBL-Schema nur den fälligen Betrag, weshalb ein Dokument ohne Positionssumme den XSD-Prüfschritt besteht. Der Block der Gesamtbeträge selbst ist Pflicht: Im Versuch scheiterte ein Dokument ohne cac:LegalMonetaryTotal am Schema.

Die Nettobeträge an cac:InvoiceLine oder cac:CreditNoteLine sind eigene Elemente und erfüllen die Regel nicht, egal wie viele es sind.

BegriffBedeutungUBL-Element
BT-106Summe der Nettobeträge aller Rechnungspositionencac:LegalMonetaryTotal/cbc:LineExtensionAmount
BT-131Nettobetrag der Rechnungspositioncac:InvoiceLine/cbc:LineExtensionAmount (cac:CreditNoteLine/cbc:LineExtensionAmount 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:

  • Der Summenblock wird aus einer festen Liste von Feldern aufgebaut, die nur die Summen enthält, die das Quellsystem speichert, etwa Netto- und Bruttosumme, und die Positionssumme gehört nicht dazu.
  • Das Mapping hält die Positionssumme für überflüssig, wenn es keine Nachlässe oder Zuschläge auf Dokumentenebene gibt, weil sie dann der Summe ohne Umsatzsteuer entspräche.
  • Die Positionssumme wird erst berechnet, nachdem der Summenblock geschrieben ist; sie ist also noch null, wenn der Serialisierer sie erreicht, und wird übersprungen.

So korrigieren Sie das Dokument

  1. Nehmen Sie das cbc:LineExtensionAmount jeder Position genau so, wie es geschrieben wurde, und addieren Sie die Werte mit Dezimalarithmetik; behalten Sie dabei das Vorzeichen negativer Positionen bei.
  2. Runden Sie die Summe auf zwei Nachkommastellen und schreiben Sie sie als cbc:LineExtensionAmount, mit der Dokumentwährung in currencyID, als erstes Kindelement von cac:LegalMonetaryTotal. Im Versuch scheiterte das Element nach cbc:TaxExclusiveAmount am XSD-Prüfschritt.
  3. Prüfen Sie, dass die Summe ohne Umsatzsteuer der neuen Positionssumme minus Summe der Nachlässe plus Summe der Zuschläge entspricht, damit auch BR-CO-13 besteht.

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 Gesamtbeträge beginnen mit der Summe ohne Umsatzsteuer, während die Position ihren eigenen Nettobetrag behält

<cac:LegalMonetaryTotal>
  <cbc:TaxExclusiveAmount currencyID="GBP">25.00</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="GBP">30.00</cbc:TaxInclusiveAmount>
  <cbc:AllowanceTotalAmount currencyID="GBP">0.00</cbc:AllowanceTotalAmount>
  <cbc:ChargeTotalAmount currencyID="GBP">0.00</cbc:ChargeTotalAmount>
  <!-- prepaid, rounding and payable amounts omitted from this fragment -->
</cac:LegalMonetaryTotal>

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

Ausschnitt der korrigierten Rechnung: Die Positionssumme von 25.00 eröffnet die Gesamtbeträge

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="GBP">25.00</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="GBP">30.00</cbc:TaxInclusiveAmount>
  <cbc:AllowanceTotalAmount currencyID="GBP">0.00</cbc:AllowanceTotalAmount>
  <cbc:ChargeTotalAmount currencyID="GBP">0.00</cbc:ChargeTotalAmount>
  <!-- prepaid, rounding and payable amounts omitted from this fragment -->
</cac:LegalMonetaryTotal>

Die korrigierte Rechnung hat ein cbc:LineExtensionAmount von 25.00 als erstes Kindelement von cac:LegalMonetaryTotal; der fehlerhaften fehlt es, und ihre einzige Position ist unverändert. Zwei weitere Regeln aus EN 16931 werden an derselben Stelle gemeldet. BR-CO-10 vergleicht die Positionssumme mit der Summe der Positionen, und eine fehlende Summe kann nicht 25.00 ergeben. BR-CO-13 leitet die erwartete Summe ohne Umsatzsteuer aus der Positionssumme ab und kann ohne Positionssumme die übermittelten 25.00 nicht bestätigen. Das Element 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

  • Gilt für UBL Invoice und CreditNote; die Gesamtbeträge heißen in beiden gleich. Im Versuch meldete eine Gutschrift ohne Positionssumme dieselben drei Regeln.
  • Behandeln Sie BR-CO-10 und BR-CO-13 neben dieser Regel als Folgen des einen fehlenden Elements, nicht als eigene Fehler. Im Versuch mit dem umfangreicheren Beispiel mit Nachlässen und Zuschlägen auf Dokumentenebene ergab das Entfernen seiner Positionssumme von 66.00 dieselben drei Regeln und sonst nichts.
  • Das Element an jeder Position ist eine andere Sache. Das Schema verlangt es dort, daher scheiterte im Versuch eine Position ohne eigenes cbc:LineExtensionAmount am XSD-Prüfschritt, und für sie wurde keine Geschäftsregel 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-12 (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.