Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-S-01: Die Umsatzsteueraufschlüsselung zum Normalsatz ergänzen, die Positionen, Nachlässe oder Zuschläge verlangen

Ist eine Position, ein Nachlass oder ein Zuschlag auf Dokumentenebene zum Normalsatz, braucht die Umsatzsteueraufschlüsselung auch einen Eintrag zum Normalsatz, und umgekehrt gilt dasselbe.

EN 16931Fehler: Das Dokument ist ungültigUmsatzsteuer

Auf dieser Seite

Die kurze Antwort

BR-S-01 schlägt fehl, wenn das Dokument die Umsatzsteuerkategorie S auf einer Position, einem Nachlass auf Dokumentenebene oder einem Zuschlag auf Dokumentenebene verwendet, cac:TaxTotal aber kein cac:TaxSubtotal hat, dessen cac:TaxCategory/cbc:ID S ist. Fügen Sie eine Aufschlüsselung zum Normalsatz hinzu, eine je verwendetem Normalsatz, mit dem Steuerbasisbetrag und dem Steuerbetrag für diesen Satz.

Die Regel schlägt auch umgekehrt fehl: bei einer Aufschlüsselung zum Normalsatz in einem Dokument, in dem nichts zum Normalsatz ist.

Was die Regel prüft

Die Regel zählt die Kategorie S an zwei Stellen. Die eine ist jede cac:ClassifiedTaxCategory und jede cac:AllowanceCharge/cac:TaxCategory irgendwo im Dokument. Die andere ist cac:TaxCategory innerhalb von cac:TaxTotal/cac:TaxSubtotal unter der Dokumentwurzel. Entweder sind beide Zählungen größer als null oder beide null; alles andere schlägt fehl.

Es ist nur eine Anwesenheitsprüfung. Sie verlangt mindestens eine Aufschlüsselung zum Normalsatz, sodass mehrere Aufschlüsselungen zu verschiedenen Normalsätzen sie erfüllen, und sie sieht sich weder Sätze noch Beträge an. Diese decken BR-S-08 und BR-S-09 ab.

Im umgekehrten Fall meldet eine Rechnung, deren einzige Position zum Nullsatz ist, deren Aufschlüsselung aber S angibt, BR-S-01 zusammen mit BR-S-08 und BR-Z-01.

BegriffBedeutungUBL-Element
BG-23Umsatzsteueraufschlüsselungcac:TaxTotal/cac:TaxSubtotal
BT-118Code der Umsatzsteuerkategoriecac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID
BT-151Code der Umsatzsteuerkategorie des in Rechnung gestellten Artikelscac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID
BT-95Code der Umsatzsteuerkategorie des Nachlasses auf Dokumentenebenecac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID
BT-102Code der Umsatzsteuerkategorie des Zuschlags auf Dokumentenebenecac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:ID

Wie es in einer Integration dazu kommt

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

  • Die Aufschlüsselung wird nur aus den Positionen gebildet, und der einzige Posten zum Normalsatz im Dokument ist ein Zuschlag auf Dokumentenebene, etwa für Fracht.
  • Aufschlüsselungen mit einem Steuerbetrag oder Steuerbasisbetrag von null werden herausgefiltert, bevor das XML geschrieben wird.
  • Die Aufschlüsselung wird aus einer Steuerübersicht mit internen Steuercodes kopiert, und für einen davon fehlt die Zuordnung zu S.
  • Eine Position ist im Artikel-Mapping standardmäßig mit S gekennzeichnet, während die Steuerübersicht sie korrekt als andere Kategorie behandelt, sodass beide nicht übereinstimmen.
  • Eine Aufschlüsselung zum Normalsatz ist aus einer Vorlage übrig geblieben, obwohl das Dokument keinen Inhalt zum Normalsatz hat.

So korrigieren Sie das Dokument

  1. Finden Sie jeden Posten zum Normalsatz: Positionen über cac:Item/cac:ClassifiedTaxCategory/cbc:ID und Elemente cac:AllowanceCharge auf Wurzelebene über cac:TaxCategory/cbc:ID.
  2. Entscheiden Sie, welche Seite falsch ist. Sind die Posten tatsächlich zum Normalsatz, fehlt die Aufschlüsselung. Sind sie es nicht, korrigieren Sie die Kategorie dort, wo sie in den Quelldaten vergeben wird; kennzeichnen Sie Posten nicht nur deshalb um, damit sie zur zufällig vorhandenen Aufschlüsselung passen.
  3. Fügen Sie für jeden Normalsatz ein cac:TaxSubtotal hinzu, mit cbc:TaxableAmount gleich den Positionen plus Zuschlägen minus Nachlässen zu diesem Satz, cbc:TaxAmount gleich Steuerbasisbetrag x Satz / 100, auf zwei Nachkommastellen gerundet, und einer cac:TaxCategory mit cbc:ID gleich S, dem cbc:Percent und dem Steuerschema VAT.
  4. Prüfen Sie, dass cac:TaxTotal/cbc:TaxAmount der Summe aller Steuerbeträge der Aufschlüsselungen entspricht, einschließlich der gerade hinzugefügten.

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: eine Position zum Normalsatz, aber die einzige Umsatzsteueraufschlüsselung ist zum Nullsatz

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="GBP">10.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>Z</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <!-- note, quantity and other line details omitted from this fragment -->
  <cbc:LineExtensionAmount currencyID="GBP">58.00</cbc:LineExtensionAmount>
  <cac:Item>
    <!-- description, name and item identifiers omitted from this fragment -->
    <cac:ClassifiedTaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>20</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <!-- price omitted from this fragment -->
</cac:InvoiceLine>

Ausschnitt der korrigierten Rechnung: Die Aufschlüsselung zum Normalsatz steht neben der zum Nullsatz

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
  <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>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="GBP">10.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>Z</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>

Die korrigierte Rechnung hat das vollständige cac:TaxSubtotal zum Normalsatz (58.50 Steuerbasisbetrag, 11.70 Steuer, S mit 20), das der fehlerhaften fehlt; sonst unterscheidet sich nichts. Das fehlerhafte Dokument meldet außerdem BR-CO-14, weil seine Umsatzsteuersumme weiterhin 11.70 beträgt, während die einzige verbliebene Aufschlüsselung 0.00 ergibt. Die Wiederherstellung der Aufschlüsselung beseitigt beide. Neben der hier gezeigten Position 1 hat die Rechnung eine zweite Position zum Normalsatz, einen Nachlass auf Dokumentenebene zum Normalsatz und einen Zuschlag auf Dokumentenebene zum Normalsatz.

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 Regel wird an der Dokumentwurzel beider ausgewertet. Eine Gutschrift ohne ihre Aufschlüsselung zum Normalsatz meldet dieselben zwei Regeln.
  • BR-CO-14 ist eine Nebenwirkung des aufgezeichneten Beispiels, nicht Teil dieser Regel. Mit Umsatzsteuersumme und Gesamtbeträgen, die an die fehlende Aufschlüsselung angepasst sind, meldet das Dokument nur BR-S-01.
  • Die anderen Umsatzsteuerkategorien haben eigene Regeln dieser Art. BR-Z-01 ist die für den Nullsatz und ist strenger: Sie verlangt genau eine Aufschlüsselung.

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