Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-S-08: Einen Steuerbasisbetrag zum Normalsatz korrigieren, der nicht zu Positionen, Zuschlägen und Nachlässen passt

Für jeden Normalsatz muss der Steuerbasisbetrag der Aufschlüsselung den Positionsbeträgen zum Normalsatz plus Zuschlägen minus Nachlässen auf Dokumentenebene zu diesem Satz entsprechen.

EN 16931Fehler: Das Dokument ist ungültigUmsatzsteuerSummen

Auf dieser Seite

Die kurze Antwort

BR-S-08 schlägt fehl, wenn das cbc:TaxableAmount einer Umsatzsteueraufschlüsselung zum Normalsatz nicht zu dem passt, was das Dokument zu diesem Satz enthält. Nehmen Sie das cbc:Percent der Aufschlüsselung, addieren Sie das cbc:LineExtensionAmount jeder Position mit Kategorie S zu diesem Satz, addieren Sie die Zuschläge auf Dokumentenebene mit Kategorie S zu diesem Satz, ziehen Sie die Nachlässe auf Dokumentenebene mit Kategorie S zu diesem Satz ab und schreiben Sie das Ergebnis als Steuerbasisbetrag.

Gruppiert wird nach Satz ebenso wie nach Kategorie. Positionen zu einem anderen Normalsatz und Positionen in anderen Kategorien gehören in andere Aufschlüsselungen.

Was die Regel prüft

Die Regel läuft einmal für jede Aufschlüsselung, deren cac:TaxCategory die cbc:ID S im Schema VAT hat, mit dem eigenen Satz dieser Aufschlüsselung. Sätze werden als Zahlen verglichen, sodass 20 in der Aufschlüsselung zu 20.00 auf einer Position passt.

Zuerst muss zu diesem Satz etwas zum Normalsatz existieren: eine Position oder ein Nachlass oder Zuschlag mit einer cac:TaxCategory. Eine Aufschlüsselung mit 19 % über Positionen mit 20 % schlägt an dieser Stelle fehl, gleich wie ihre Beträge gesetzt sind.

Dann wird der Steuerbasisbetrag verglichen mit: Nettobeträgen der Positionen plus Zuschlägen auf Dokumentenebene minus Nachlässen auf Dokumentenebene, jeweils gefiltert auf Kategorie S und denselben Satz. Nur Elemente cac:AllowanceCharge direkt unter der Dokumentwurzel gehen in die Summe ein; Nachlässe und Zuschläge auf Positionsebene sind bereits im Nettobetrag der Position enthalten.

Der Vergleich hat eine Toleranz. Die Regel besteht, wenn der Steuerbasisbetrag weniger als 1.00 vom berechneten Wert abweicht, und schlägt bei einer Differenz von genau 1.00 fehl. Gegenüber berechneten 58.50 bestehen Steuerbasisbeträge von 57.51 und 59.49; 57.50 und 59.50 schlagen fehl.

Innerhalb der Toleranz zu liegen macht den Betrag nicht richtig. Ein Steuerbasisbetrag von 59.40 gegenüber berechneten 58.50 bestand in unserem Versuch jeden Prüfschritt, und er liegt trotzdem 0.90 daneben. Senden Sie den berechneten Wert.

Zwei Aufschlüsselungen für denselben Normalsatz schlagen beide fehl, weil jede mit der gesamten Summe für diesen Satz verglichen wird.

BegriffBedeutungUBL-Element
BT-116Kategoriespezifischer Steuerbasisbetragcac:TaxTotal/cac:TaxSubtotal/cbc:TaxableAmount
BT-119Kategoriespezifischer Umsatzsteuersatzcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent
BT-131Nettobetrag der Rechnungspositioncac:InvoiceLine/cbc:LineExtensionAmount
BT-152Umsatzsteuersatz für den in Rechnung gestellten Artikelcac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent
BT-99Betrag des Zuschlags auf Dokumentenebenecac:AllowanceCharge[cbc:ChargeIndicator = true]/cbc:Amount
BT-92Betrag des Nachlasses auf Dokumentenebenecac:AllowanceCharge[cbc:ChargeIndicator = false]/cbc:Amount

Wie es in einer Integration dazu kommt

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

  • Der Steuerbasisbetrag wird nur aus den Positionen gebildet, und der Zuschlag oder Nachlass auf Dokumentenebene wird vergessen oder mit falschem Vorzeichen angewendet.
  • Positionen werden nach Kategorie, aber nicht nach Satz gruppiert, sodass zwei Normalsätze in einer Aufschlüsselung landen.
  • Negative Positionen, etwa Korrekturen oder Rücksendungen, werden beim Summieren übersprungen.
  • Positionen zum Nullsatz oder steuerbefreite Positionen werden in den Steuerbasisbetrag zum Normalsatz einbezogen.
  • Der Satz der Aufschlüsselung stammt aus einer anderen Quelle als die Sätze der Positionen, und beide weichen voneinander ab, etwa nach einer Satzänderung.
  • Der Steuerbasisbetrag wird rückwärts aus einem Bruttowert abgeleitet, statt aus den Nettobeträgen im Dokument summiert zu werden.

So korrigieren Sie das Dokument

  1. Sammeln Sie die Positionen, deren cac:Item/cac:ClassifiedTaxCategory die cbc:ID S hat, und gruppieren Sie sie nach cbc:Percent.
  2. Summieren Sie für jeden Satz die Werte cbc:LineExtensionAmount der Positionen, addieren Sie die Beträge der Elemente cac:AllowanceCharge auf Wurzelebene mit cbc:ChargeIndicator gleich true in Kategorie S zu diesem Satz und ziehen Sie die mit false ab. Verwenden Sie Dezimalarithmetik.
  3. Erzeugen Sie genau ein cac:TaxSubtotal pro Satz, mit diesem Wert als cbc:TaxableAmount und dem Satz als cbc:Percent.
  4. Berechnen Sie das cbc:TaxAmount der Aufschlüsselung aus dem korrigierten Steuerbasisbetrag neu. BR-S-09 und BR-CO-17 prüfen es, und daraus folgen die Umsatzsteuersumme und der Gesamtbetrag einschließlich Umsatzsteuer.

Das aufgezeichnete Beispiel hat zwei Positionen zum Normalsatz mit 20 %, eine Position zum Nullsatz sowie einen Nachlass und einen Zuschlag auf Dokumentenebene, beide zum Normalsatz mit 20 %.

Positionen zum Normalsatz mit 20 %: 58.00 + (-2.00) = 56.00
Zuschlag auf Dokumentenebene, S mit 20 %: + 3.50
Nachlass auf Dokumentenebene, S mit 20 %: - 1.00
Steuerbasisbetrag für S mit 20 %: 56.00 + 3.50 - 1.00 = 58.50
Die Position zum Nullsatz über 10.00 gehört nicht zu diesem Wert
Gesendet: 60.00, also 1.50 daneben, daher schlägt die Regel fehl

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: 60.00 Steuerbasisbetrag, während der Inhalt zum Normalsatz mit 20 % netto 58.50 ergibt

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <!-- reason code and reason omitted from this fragment -->
  <cbc:Amount currencyID="GBP">1.00</cbc:Amount>
  <!-- tax category S at 20 omitted from this fragment -->
</cac:AllowanceCharge>
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <!-- reason code, reason, multiplier and base amount omitted from this fragment -->
  <cbc:Amount currencyID="GBP">3.50</cbc:Amount>
  <!-- tax category S at 20 omitted from this fragment -->
</cac:AllowanceCharge>

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">60.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

<!-- Standard rated lines at 20: LineExtensionAmount 58.00 and -2.00. Zero rated line: 10.00 -->

Ausschnitt der korrigierten Rechnung: 58.00 - 2.00 + 3.50 - 1.00 = 58.50

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">58.50</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

Nur das cbc:TaxableAmount zum Normalsatz unterscheidet sich: 60.00 in der fehlerhaften Rechnung, 58.50 in der korrigierten. Das Dokument meldet nur BR-S-08. Der Steuerbetrag von 11.70 liegt 0.30 neben 20 % von 60.00, also innerhalb der Toleranz von BR-CO-17 und BR-S-09, und Umsatzsteuersumme und Gesamtbeträge sind in beiden Dokumenten gleich.

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. In einer Gutschrift sind die Positionen cac:CreditNoteLine, und die Summe wird genauso gebildet; eine Gutschrift mit denselben 60.00 meldet dieselbe Regel.
  • Nur Aufschlüsselungen zum Normalsatz sind betroffen. Die anderen Umsatzsteuerkategorien haben eigene Regeln für den Steuerbasisbetrag.
  • Die Regel sieht sich cac:LegalMonetaryTotal nicht an. Die Summe ohne Umsatzsteuer prüft gesondert BR-CO-13.
  • Eine Position zum Normalsatz mit einem Satz, für den es keine Aufschlüsselung gibt, meldet diese Regel nicht, denn sie geht von den vorhandenen Aufschlüsselungen aus.

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-S-08 (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.