Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-28: Den Bruttopreis des Artikels auf null oder einen positiven Wert setzen

Der Bruttopreis in cbc:BaseAmount eines Preisnachlasses der Position darf nicht unter null liegen. Eine Minderung oder Korrektur erhält ihr Vorzeichen über die Menge.

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

Auf dieser Seite

Die kurze Antwort

BR-28 schlägt fehl, wenn cac:Price/cac:AllowanceCharge/cbc:BaseAmount in einer Position unter null liegt. Dieses Element ist der Bruttopreis des Artikels, der Preis je Einheit vor dem Preisnachlass, und er kann nicht negativ sein. Korrigieren Sie das Vorzeichen in der Quelle, sodass der Bruttopreis positiv ist und der Nettopreis in cbc:PriceAmount ihm abzüglich des Nachlasses entspricht.

Im aufgezeichneten Beispiel stimmt der negative Bruttopreis auch nicht mehr mit dem Nettopreis überein, daher kommt PEPPOL-EN16931-R046 hinzu.

Was die Regel prüft

Für jede cac:InvoiceLine oder cac:CreditNoteLine liest die Regel das cbc:BaseAmount des cac:AllowanceCharge innerhalb von cac:Price, sofern es eines gibt, und verlangt, dass es null oder größer ist.

Ohne cac:AllowanceCharge auf Preisebene, oder ohne eines mit cbc:BaseAmount, ist kein Bruttopreis angegeben, und die Regel ist erfüllt. Im Versuch blieb nach dem Löschen des Bruttopreises aus der aufgezeichneten Position eine gültige Rechnung übrig.

Null wird von dieser Regel akzeptiert. Im Versuch wurde ein Bruttopreis von 0 nicht von BR-28 gemeldet; nur PEPPOL-EN16931-R046 beanstandete ihn, weil 0 minus 2.5 nicht den Nettopreis von 12.5 ergibt.

Die Vorzeichenprüfung steht für sich. Mit einem Bruttopreis von -15 und einem Nachlass von -27.5, der den Nettopreis bei 12.5 hält, wurde BR-28 im Versuch trotzdem gemeldet, und sonst nichts.

Der Nachlassbetrag, der Nettopreis und die Menge werden nicht gelesen. Ein negativer Nettopreis ist eine eigene Regel, BR-27.

BegriffBedeutungUBL-Element
BT-148Bruttopreis des Artikelscac:InvoiceLine/cac:Price/cac:AllowanceCharge/cbc:BaseAmount (cac:CreditNoteLine in a credit note)
BT-147Rabatt auf den Artikelpreiscac:InvoiceLine/cac:Price/cac:AllowanceCharge/cbc:Amount
BT-146Nettopreis des Artikelscac:InvoiceLine/cac:Price/cbc:PriceAmount

Wie es in einer Integration dazu kommt

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

  • Eine Minderungs- oder Rücksendeposition wird erzeugt, indem jedes Preisfeld negiert wird, auch der Bruttopreis.
  • Das Vorzeichen des Nettobetrags der Position wird bei der Abbildung einer Rücksendung auf die Preise je Einheit übertragen.
  • Der Bruttopreis wird aus Nettopreis und Nachlass mit vertauschten Operanden berechnet, etwa als Nachlass minus Nettopreis.
  • Ein Eintrag auf Preisebene wird für eine Minderung verwendet, die auf die Position oder das Dokument gehört.

So korrigieren Sie das Dokument

  1. Ermitteln Sie die Position anhand der Fundstelle des Befunds und lesen Sie cbc:PriceAmount sowie cbc:Amount und cbc:BaseAmount innerhalb von cac:Price/cac:AllowanceCharge.
  2. Schreiben Sie den Bruttopreis als positiven Preis je Einheit vor Nachlass. Ist die Position eine Minderung oder Korrektur, drücken Sie das über eine negative cbc:InvoicedQuantity (oder cbc:CreditedQuantity) und einen negativen Nettobetrag der Position aus, nicht über die Preise.
  3. Stellen Sie sicher, dass Nettopreis = Bruttopreis - Nachlass exakt gilt, da PEPPOL-EN16931-R046 dies ohne Toleranz prüft.
  4. Hat die Quelle keinen verlässlichen Bruttopreis, lassen Sie das gesamte cac:AllowanceCharge auf Preisebene weg und übermitteln Sie nur den Nettopreis.

Die aufgezeichnete Position hat einen Nettopreis von 12.5 und einen Preisnachlass von 2.5.

Fehlerhaft: Bruttopreis -15 - Nachlass 2.5 = -17.5, übermittelter Nettopreis 12.5, daher schlagen BR-28 und PEPPOL-EN16931-R046 beide fehl
Korrigiert: Bruttopreis 15 - Nachlass 2.5 = 12.5, also der übermittelte Nettopreis

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: Der Bruttopreis ist -15

<cac:Price>
  <cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
  <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="GBP">2.5</cbc:Amount>
    <cbc:BaseAmount currencyID="GBP">-15</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>

Ausschnitt der korrigierten Rechnung: Der Bruttopreis ist 15, und 15 minus 2.5 ergibt den Nettopreis

<cac:Price>
  <cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
  <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="GBP">2.5</cbc:Amount>
    <cbc:BaseAmount currencyID="GBP">15</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>

Der Bruttopreis in cbc:BaseAmount ist -15 in der fehlerhaften Rechnung und 15 in der korrigierten; sonst ändert sich nichts. Das fehlerhafte Dokument meldet außerdem PEPPOL-EN16931-R046 beim Preisnachlass, weil -15 minus 2.5 den Wert -17.5 ergibt, während der Nettopreis 12.5 ist. Mit korrigiertem Vorzeichen ergibt 15 minus 2.5 den Wert 12.5, und beide Befunde verschwinden.

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 und cac:CreditNoteLine. Eine Gutschriftsposition mit demselben Bruttopreis von -15 meldete im Versuch BR-28 und PEPPOL-EN16931-R046.
  • Wird vom Prüfschritt EN 16931 gemeldet; der Begleitbefund, PEPPOL-EN16931-R046, stammt aus dem Peppol-Prüfschritt.
  • Der Bruttopreis fließt in keine Summe ein. Der Nettobetrag der Position wird aus dem Nettopreis berechnet, daher störte der negative Wert nichts außer dem Preis selbst.

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-28 (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.