Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-CL-18: Einen zulässigen Code der Umsatzsteuerkategorie für den Artikel jeder Position verwenden

Die Kategorie der Position in cac:ClassifiedTaxCategory/cbc:ID muss ein zulässiger Code wie S, Z oder E sein. Ein interner Code wie SR wird abgelehnt.

EN 16931Fehler: Das Dokument ist ungültigUmsatzsteuerCodelisten

Auf dieser Seite

Die kurze Antwort

BR-CL-18 schlägt fehl, wenn die cbc:ID in der cac:ClassifiedTaxCategory des Artikels einer Position außerhalb der zulässigen Codes der Umsatzsteuerkategorie liegt. Ersetzen Sie sie durch den Code der Kategorie, in der die Position tatsächlich besteuert wurde; im aufgezeichneten Beispiel steht in der Position SR, und der Code für den Normalsatz ist S.

Solange die Position einen unbekannten Code trägt, gehört sie zu keiner Kategorie; die Aufschlüsselung, die sie summieren sollte, passt daher nicht mehr, und die Kategorieregeln melden das ebenfalls.

Was die Regel prüft

Die Regel läuft auf jeder cbc:ID innerhalb einer cac:ClassifiedTaxCategory, die in diesen Dokumenten zum Artikel jeder cac:InvoiceLine oder cac:CreditNoteLine gehört. Aufschlüsselungen sowie Nachlässe und Zuschläge auf Dokumentenebene fallen stattdessen unter BR-CL-17.

Sie akzeptiert dieselben zehn Codes wie die Regel für die Aufschlüsselung: S, Z, E, AE, K, G, O, L, M und B. Umgebende Leerzeichen werden entfernt, aber der Vergleich unterscheidet Groß- und Kleinschreibung, und ein kleines s in der Position wurde im Versuch abgelehnt.

Eine leere cbc:ID in der Position schlägt hier fehl, nicht unter BR-CO-04, das nur verlangt, dass das Element vorhanden ist. Im Versuch brachte sie zusätzlich PEPPOL-EN16931-R008 mit sich.

Ein gelisteter Code wird auch dann akzeptiert, wenn er die falsche Kategorie für den Artikel ist. Die Übereinstimmung mit der Aufschlüsselung prüfen die Kategorieregeln, nicht diese Regel.

BegriffBedeutungUBL-Element
BT-151Code der Umsatzsteuerkategorie des in Rechnung gestellten Artikelscac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID in a credit note)

Wie es in einer Integration dazu kommt

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

  • Der Steuercode des Artikels aus den Produktstammdaten, etwa SR oder ZR, wird ohne Übersetzung in die Position kopiert.
  • Die Aufschlüsselung wird über eine Übersetzungstabelle aufgebaut, die Positionen aber nicht, sodass beide unterschiedliche Codesätze tragen.
  • Eine Beschreibung wie Standard oder ein Steuersatz wie 20 wird in das Codefeld geschrieben.
  • Eine Bibliothek oder Vorlage erzeugt den Code in Kleinbuchstaben.

So korrigieren Sie das Dokument

  1. Finden Sie über die Fundstelle des Befunds die Position und ihren aktuellen Code.
  2. Übersetzen Sie ihn in den zulässigen Code der Kategorie, in der der Artikel besteuert wurde, mit derselben Zuordnung wie für die Aufschlüsselung.
  3. Stellen Sie sicher, dass die Position nun in eine Aufschlüsselung mit derselben Kategorie und demselben Steuersatz fällt, sodass deren Bemessungsgrundlage zu ihren Positionen passt.
  4. Weisen Sie nicht zugeordnete Steuercodes von Artikeln beim Export zurück.

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 ist mit SR codiert, ihre Aufschlüsselung mit S

<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>
    <!-- tax scheme omitted from this fragment -->
  </cac:TaxCategory>
</cac:TaxSubtotal>

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cbc:Name>Example service</cbc:Name>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>SR</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 Position verwendet den Code S für den Normalsatz

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <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>
  <!-- price omitted from this fragment -->
</cac:InvoiceLine>

Die fehlerhafte Rechnung hat SR in der cac:ClassifiedTaxCategory/cbc:ID des Artikels der Position; die korrigierte hat S, und sonst unterscheidet sich nichts. Zwei Regeln zur Aufschlüsselung lösen ebenfalls aus, denn mit SR in der einzigen Position ist im Dokument nichts zum Normalsatz besteuert, während die Aufschlüsselung es weiterhin ist. BR-S-01 beanstandet eine Aufschlüsselung zum Normalsatz ohne Position, Nachlass oder Zuschlag zum Normalsatz dahinter. BR-S-08 findet keine Position zum Normalsatz mit 20 %, die die Bemessungsgrundlage von 25.00 erklärt. Die Korrektur des Codes behebt alle drei 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. In einer Gutschrift ist die Position cac:CreditNoteLine; mit SR in ihrer Position meldete die Gutschrift im Versuch dieselben drei Regeln.
  • Welche Begleitbefunde erscheinen, hängt von der Kategorie ab, die die Position hätte haben sollen. Im Versuch brachte ZR in der Position zum Nullsatz einer gemischten Rechnung stattdessen BR-Z-08 mit sich.
  • Trägt die Aufschlüsselung denselben falschen Code, schweigen die Kategorieregeln, und stattdessen wird BR-CL-17 neben dieser Regel gemeldet.
  • Gemeldet vom Prüfschritt EN 16931; das aufgezeichnete Beispiel besteht den Peppol-Prüfschritt.

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-CL-18 (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.