Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-S-07: An einem Zuschlag auf Dokumentenebene zum Normalsatz einen Umsatzsteuersatz über null angeben

Ein Zuschlag auf Dokumentenebene in der Umsatzsteuerkategorie S braucht einen positiven Satz in cbc:Percent. Ein fehlender Satz schlägt fehl, ebenso ein Satz von 0.

EN 16931Fehler: Das Dokument ist ungültigUmsatzsteuerNachlässe und Zuschläge

Auf dieser Seite

Die kurze Antwort

BR-S-07 schlägt für jeden Zuschlag fehl, dessen cac:TaxCategory die cbc:ID S im Schema VAT hat, aber kein positives cbc:Percent. Schreiben Sie den Normalsatz, mit dem der Zuschlag besteuert wird; dem Frachtzuschlag im aufgezeichneten Beispiel fehlte der Satz ganz, und die korrigierte Rechnung gibt 20 an.

Ohne Satz lässt sich der Zuschlag keiner Aufschlüsselung zum Normalsatz zuordnen, sodass auch der Steuerbasisbetrag mit 20 nicht mehr aufgeht.

Was die Regel prüft

Die Regel besucht jede cac:TaxCategory mit S im Schema VAT innerhalb eines cac:AllowanceCharge mit cbc:ChargeIndicator gleich true, auch innerhalb einer Rechnungsposition: Im Versuch meldete ein Positionszuschlag mit eigener Kategorie S und Satz 0 diese Regel an cac:InvoiceLine[1]/cac:AllowanceCharge[1]/cac:TaxCategory[1], zusammen mit der Warnung UBL-CR-558.

Ein fehlendes cbc:Percent liegt nicht über null und schlägt daher fehl, wie im aufgezeichneten Beispiel. Der Frachtzuschlag mit dem Satz 0 schlug im Versuch genauso fehl, wieder mit BR-S-08.

Ein leeres cbc:Percent kommt gar nicht so weit. Im Versuch wurde <cbc:Percent></cbc:Percent> am Frachtzuschlag vom XSD-Prüfschritt zurückgewiesen, und die Prüfschritte EN 16931 und Peppol wurden übersprungen.

Verglichen wird nur mit null. Ein Zuschlagssatz als Bruch 0.2 bestand im Versuch diese Regel, und stattdessen meldete BR-S-08 die Aufschlüsselung mit 20, weil der Zuschlag nicht mehr zu diesem Satz gehörte.

BegriffBedeutungUBL-Element
BT-102Code der Umsatzsteuerkategorie des Zuschlags auf Dokumentenebenecac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:ID
BT-103Umsatzsteuersatz des Zuschlags auf Dokumentenebenecac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:Percent

Wie es in einer Integration dazu kommt

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

  • Das Versand- oder Speditionsmodul, das die Fracht hinzufügt, speichert eine Steuerkategorie, aber keinen Satz, und der Export schreibt nur die Kategorie.
  • Sätze werden nur für Artikel nachgeschlagen, und ein Zuschlag auf Dokumentenebene hat keinen Artikeldatensatz, in dem einer stünde.
  • Zuschläge werden mit cbc:Percent gleich 0 exportiert, weil die Gebühr als außerhalb der Umsatzsteuer gilt, während die Kategorie weiter S ist.
  • Ein leeres Satzfeld in der Quelle wird vom Serialisierer weggelassen statt gemeldet, sodass die Lücke ins Dokument gelangt.

So korrigieren Sie das Dokument

  1. Finden Sie den Zuschlag über den Ort des Befunds, cac:AllowanceCharge[1] im aufgezeichneten Beispiel. Der Index zählt jedes cac:AllowanceCharge unter der Wurzel, Nachlässe und Zuschläge zusammen.
  2. Ermitteln Sie den Umsatzsteuersatz des Zuschlags aus seinem Steuercode. Der Frachtzuschlag zum Normalsatz im aufgezeichneten Beispiel wird mit 20 besteuert.
  3. Schreiben Sie den Satz in cbc:Percent, direkt nach cbc:ID in der cac:TaxCategory des Zuschlags und vor cac:TaxScheme.
  4. Ist der Zuschlag in Wahrheit nicht zum Normalsatz, geben Sie ihm die zutreffende Kategorie mit dem Satz, den diese Kategorie verlangt, und verschieben Sie ihn in diese Aufschlüsselung.
  5. Prüfen Sie, dass die Aufschlüsselung zum Normalsatz für diesen Satz den Zuschlag in ihrem Steuerbasisbetrag enthält, was BR-S-08 nachprüft.

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 Frachtzuschlag nennt S, aber keinen Satz

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">7.50</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">32.50</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">6.50</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <!-- tax scheme omitted from this fragment -->
  </cac:TaxCategory>
</cac:TaxSubtotal>

Ausschnitt der korrigierten Rechnung: der Frachtzuschlag ist zum Normalsatz mit 20

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">7.50</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>

Die fehlerhafte Rechnung hat kein cbc:Percent in der cac:TaxCategory des Frachtzuschlags; die korrigierte hat dort 20, und sonst unterscheidet sich nichts. Zusätzlich wird BR-S-08 gemeldet: Ein Zuschlag ohne Satz zählt nicht zu 20, sodass der Inhalt zum Normalsatz mit diesem Satz auf die Position über 25.00 sinkt, gegenüber einem Steuerbasisbetrag von 32.50. Mit dem wiederhergestellten Satz verschwinden beide 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. Eine aus dem aufgezeichneten Beispiel erstellte Gutschrift meldete im Versuch BR-S-07 und BR-S-08.
  • Der Prüfschritt EN 16931 meldet sie als fatal, an der cac:TaxCategory des Zuschlags, für jeden fehlerhaften Zuschlag.
  • Ein Zuschlag ganz ohne cac:TaxCategory wird stattdessen von BR-37 erfasst. Zuschläge zum Nullsatz brauchen nach BR-Z-07 einen Satz von genau 0.
  • Nachlässe deckt BR-S-06 auf dieselbe Weise ab.

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-28.1: Quelle geprüft am 2026-09-28, Erklärung zuletzt aktualisiert am 2026-09-28.

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