Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-47: Den Code der Umsatzsteuerkategorie in jeder Umsatzsteueraufschlüsselung ergänzen

Jedes cac:TaxSubtotal braucht eine cac:TaxCategory/cbc:ID mit dem Code der Umsatzsteuerkategorie, in einer Steuerkategorie, deren Steuerschema VAT ist.

EN 16931Fehler: Das Dokument ist ungültigUmsatzsteuer

Auf dieser Seite

Die kurze Antwort

BR-47 schlägt für jedes cac:TaxSubtotal fehl, dessen cac:TaxCategory keine cbc:ID hat oder dessen Steuerkategorie nicht zum Steuerschema VAT gehört. Ergänzen Sie cbc:ID als erstes Kindelement von cac:TaxCategory mit der Kategorie der Positionen, Nachlässe und Zuschläge, die die Aufschlüsselung zusammenfasst: S im aufgezeichneten Beispiel.

Eine Aufschlüsselung ohne Code passt zu keiner Kategorie, daher schlägt auch die Kategorieregel für die Positionen an, die sie abdecken sollte; hier ist das BR-S-01.

Was die Regel prüft

Die Regel läuft für jedes cac:TaxSubtotal innerhalb eines cac:TaxTotal. Sie ist erfüllt, wenn die Aufschlüsselung eine cac:TaxCategory hat, deren cac:TaxScheme/cbc:ID VAT lautet und die ein Element cbc:ID enthält.

Das Steuerschema wird vor dem Vergleich von Leerraum befreit und in Großbuchstaben umgewandelt, daher wurde vat im Versuch akzeptiert. Ein anderes Schema nicht: Eine Aufschlüsselung unter GST meldete diese Regel, BR-48 und BR-CO-17, weil ihre Kategorie und ihr Satz überhaupt nicht mehr als Umsatzsteuer gelesen wurden.

Geprüft wird nur, ob das Element vorhanden ist. Eine leere cbc:ID erfüllt diese Regel, wurde im Versuch aber von BR-CL-17 als ungültiger Code, von PEPPOL-EN16931-R008 als leeres Element und von BR-S-01 gemeldet.

Fehlt die gesamte cac:TaxCategory, wird diese Regel nicht erreicht. UBL verlangt eine in jeder Aufschlüsselung, und im Versuch scheiterte das Dokument stattdessen am XSD-Prüfschritt.

BegriffBedeutungUBL-Element
BG-23Umsatzsteueraufschlüsselungcac:TaxTotal/cac:TaxSubtotal
BT-118Code der Umsatzsteuerkategoriecac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID
-Steuerschema der Umsatzsteuerkategoriecac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID

Wie es in einer Integration dazu kommt

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

  • Die Umsatzsteuerübersicht ist nur nach dem Satz geschlüsselt, daher kennt der Export 20%, aber nicht die Kategorie, zu der der Satz gehört.
  • Die Kategorie stammt aus einer Zuordnung interner Steuerkennzeichen, und ein Kennzeichen ohne Zuordnung wird als leerer Wert geschrieben, statt den Export anzuhalten.
  • Das Steuerschema wird aus einer allgemeinen Steuerart wie GST oder TAX gefüllt statt mit dem festen Wert VAT.
  • Der Serialisierer schreibt cac:TaxCategory nur mit cbc:Percent und cac:TaxScheme, nach einem Aufbau, der für ein anderes Format gedacht ist.

So korrigieren Sie das Dokument

  1. Ermitteln Sie für jede Aufschlüsselung die Umsatzsteuerkategorie der Posten, die sie zusammenfasst: die cac:ClassifiedTaxCategory/cbc:ID ihrer Positionen und die cac:TaxCategory/cbc:ID ihrer Nachlässe und Zuschläge auf Dokumentenebene.
  2. Schreiben Sie diesen Code als cbc:ID, das erste Kindelement der cac:TaxCategory der Aufschlüsselung, vor cbc:Percent. Verwenden Sie einen der zulässigen Codes: S, Z, E, AE, K, G, O, L, M oder B.
  3. Setzen Sie cac:TaxScheme/cbc:ID in derselben Steuerkategorie auf VAT.
  4. Lassen Sie ein nicht zugeordnetes Steuerkennzeichen den Export anhalten, damit nie eine Aufschlüsselung ohne Kategorie versendet wird.

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 Position zum Normalsatz ist in Ordnung, aber ihrer Aufschlüsselung fehlt der Kategoriecode

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:Percent>20</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

<cac:Item>
  <cbc:Name>Example service</cbc:Name>
  <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>

Ausschnitt der korrigierten Rechnung: Die Aufschlüsselung gilt wie ihre Position dem Normalsatz

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">5.00</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>

Die korrigierte Rechnung hat <cbc:ID>S</cbc:ID> als erstes Kindelement der cac:TaxCategory der Aufschlüsselung; die fehlerhafte nicht, und sonst unterscheidet sich nichts. Das fehlerhafte Dokument meldet außerdem BR-S-01, weil seine Position dem Normalsatz unterliegt und, ohne den Code, keine Aufschlüsselung S angibt. Das Ergänzen des Codes behebt beide Befunde. Die Rechenregeln bleiben still: Satz und Beträge sind weiterhin vorhanden, und die Prüfungen für den Normalsatz laufen nur bei einer Aufschlüsselung mit dem Code S.

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 Gutschrift, aus deren Aufschlüsselung der Code entfernt wurde, meldete im Versuch dieselben zwei Regeln.
  • Wird vom Prüfschritt EN 16931 gemeldet; der Peppol-Prüfschritt lässt das aufgezeichnete Beispiel passieren.
  • Die Begleitregel folgt der Kategorie der Positionen. Mit dem aus einer steuerbefreiten Aufschlüsselung entfernten E lauteten die Befunde im Versuch diese Regel und BR-E-01.
  • Das Gegenstück auf Positionsebene ist BR-CO-04. Sobald ein Code in der Aufschlüsselung vorhanden ist, prüft BR-CL-17, dass er zulässig ist.

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