Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-CL-22: Einen VATEX-Code als Code für den Grund der Umsatzsteuerbefreiung verwenden

cbc:TaxExemptionReasonCode muss einen Code aus der VATEX-Liste enthalten, etwa VATEX-EU-132. Erfundene Codes werden abgelehnt; passt kein Code, senden Sie einen Text als Grund.

EN 16931Fehler: Das Dokument ist ungültigUmsatzsteuerCodelisten

Auf dieser Seite

Die kurze Antwort

BR-CL-22 schlägt fehl, wenn ein cbc:TaxExemptionReasonCode einen Wert enthält, der nicht in der VATEX-Codeliste steht, und der Befund zeigt auf dieses Element. Ersetzen Sie den Wert durch den VATEX-Code für die tatsächliche Rechtsgrundlage der Befreiung, oder entfernen Sie den Code und geben Sie den Grund in cbc:TaxExemptionReason an, wenn kein Code passt.

Das aufgezeichnete Beispiel verwendet VATEX-EU-EXEMPT, das dem Muster echter Codes folgt, aber nicht existiert.

Was die Regel prüft

Die Regel läuft auf jedem cbc:TaxExemptionReasonCode im Dokument und sucht seinen Wert in der VATEX-Liste, die der Validator mitführt: die Codes für EU-Artikel wie VATEX-EU-132 und VATEX-EU-143-1A, die Kategoriecodes VATEX-EU-AE, VATEX-EU-IC, VATEX-EU-G und VATEX-EU-O, die Codes für die Differenzbesteuerung VATEX-EU-D, VATEX-EU-F, VATEX-EU-I und VATEX-EU-J sowie eine Reihe französischer Codes mit VATEX-FR-.

Der Wert wird vor dem Nachschlagen gekürzt und in Großbuchstaben umgewandelt, daher bestand vatex-eu-132 im Versuch. Ein Leerzeichen im Wert oder ein fehlendes Präfix schlägt fehl: VATEX EU 132 und 132 wurden beide abgelehnt.

Ein leeres Element schlägt an dieser Regel fehl, und im Versuch brachte es zusätzlich PEPPOL-EN16931-R008 mit sich.

Ein Code, der hier fehlschlägt, zählt für BR-E-10 trotzdem als Befreiungsgrund. Im Versuch meldete VATEX-EU-EXEMPT allein, ohne Text als Grund, diese Regel und sonst nichts.

Geprüft wird nur die Zugehörigkeit zur Liste. Ob ein gelisteter Code zur Kategorie passt, ist Sache von Peppol und wird von PEPPOL-EN16931-P0106 und den verwandten Regeln behandelt.

BegriffBedeutungUBL-Element
BT-121Code für den Grund der Umsatzsteuerbefreiungcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode
BT-120Grund der Umsatzsteuerbefreiungcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason

Wie es in einer Integration dazu kommt

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

  • Der Code wird nach einem Muster zusammengesetzt, VATEX-EU- plus eine Bezeichnung, statt aus der Liste gewählt zu werden.
  • Ein interner Befreiungscode oder ein nationaler Rechtsverweis wird in das Code-Element geschrieben, wo nur VATEX-Codes akzeptiert werden.
  • Die Nummer des Rechtsartikels wird ohne das Präfix VATEX-EU- geschrieben.

So korrigieren Sie das Dokument

  1. Ermitteln Sie die Rechtsgrundlage der Befreiung aus Ihrer Steuerermittlung.
  2. Schlagen Sie den VATEX-Code für diese Grundlage nach, zum Beispiel VATEX-EU-132 für eine Befreiung nach Artikel 132 der Mehrwertsteuerrichtlinie, und schreiben Sie ihn genau wie gelistet.
  3. Passt kein Code, lassen Sie cbc:TaxExemptionReasonCode weg und geben Sie die Grundlage in cbc:TaxExemptionReason an. Eine steuerbefreite Aufschlüsselung braucht nach BR-E-10 das eine oder das andere.
  4. Wenn Sie beides senden, setzen Sie den Code vor den Text. Im Versuch schlug der Code nach dem Text am XSD-Prüfschritt 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: Die steuerbefreite Aufschlüsselung trägt einen Befreiungscode, der nicht in der VATEX-Liste steht

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cbc:TaxExemptionReasonCode>VATEX-EU-EXEMPT</cbc:TaxExemptionReasonCode>
    <cbc:TaxExemptionReason>Exempt from VAT</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

Ausschnitt der korrigierten Rechnung: Der ungültige Code ist entfernt, der Text des Grundes bleibt

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cbc:TaxExemptionReason>Exempt from VAT</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

Die fehlerhafte Rechnung hat <cbc:TaxExemptionReasonCode>VATEX-EU-EXEMPT</cbc:TaxExemptionReasonCode> vor ihrem Text des Grundes; die korrigierte hat nur den Text. Das fehlerhafte Dokument meldet nur BR-CL-22: Der Text hält BR-E-10 erfüllt, und keine andere Regel liest einen unbekannten Code. Die gezeigte Korrektur entfernt den Code, doch ein echter VATEX-Code an derselben Stelle, etwa VATEX-EU-132, bestand im Versuch ebenfalls alle Prüfschritte. Der Text Exempt from VAT ist eine allgemeine Beispielformulierung; eine echte Rechnung sollte die tatsächliche Grundlage nennen.

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 steuerbefreite Gutschrift mit VATEX-EU-EXEMPT meldete im Versuch allein diese Regel.
  • Gemeldet vom Prüfschritt EN 16931. Der Peppol-Prüfschritt prüft dann, dass die kategoriespezifischen Codes mit ihren Kategorien verwendet werden.
  • Aufschlüsselungen zum Normalsatz und zum Nullsatz dürfen überhaupt keinen Befreiungsgrund tragen, gültig oder nicht; BR-S-10 und BR-Z-10 lehnen dort einen 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-24.1: Quelle geprüft am 2026-09-24, Erklärung zuletzt aktualisiert am 2026-09-24.

Die offizielle Definition von BR-CL-22 (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.