Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-O-05: Den Umsatzsteuersatz aus einer nicht steuerbaren Position entfernen

Eine Position in der Kategorie O darf in ihrer Steuerkategorie kein cbc:Percent haben, auch nicht 0. Lassen Sie den Satz ganz weg.

EN 16931Fehler: Das Dokument ist ungültigUmsatzsteuerPositionen und Preise

Auf dieser Seite

Die kurze Antwort

BR-O-05 schlägt fehl, wenn ein als O eingestufter Artikel ein cbc:Percent in seiner cac:Item/cac:ClassifiedTaxCategory hat; im aufgezeichneten Beispiel steht dort 0. Löschen Sie das Element cbc:Percent aus dieser Kategorie und behalten Sie cbc:ID und cac:TaxScheme.

Ein Satz von 0 ist trotzdem ein Satz. Eine nicht steuerbare Position hat überhaupt keinen Satz, und genau dieses Fehlen unterscheidet sie von einer Position zum Nullsatz.

Was die Regel prüft

Die Regel läuft für jede Artikelsteuerkategorie mit cbc:ID gleich O im Schema VAT, in cac:InvoiceLine wie in cac:CreditNoteLine, und meldet an dieser cac:ClassifiedTaxCategory. Zwei Positionen in O mit Satz ergaben im Versuch zwei Befunde.

Ob cbc:Percent vorhanden ist, ist alles, was sie fragt. Der Wert spielt keine Rolle: 0 schlägt fehl, und im Versuch tat das auch 20.

Ein leeres cbc:Percent ist kein Ausweg. Das Schema verlangt in diesem Element eine Zahl, und ein leeres Element scheiterte im Versuch am XSD-Prüfschritt, sodass die Regeln von EN 16931 nie liefen.

Die Umsatzsteueraufschlüsselung liegt außerhalb dieser Regel. Im Versuch bestand ein Satz von 0 in der Aufschlüsselung für O, ohne Satz auf der Position, alle Prüfschritte; den Satz in der Aufschlüsselung wegzulassen ist ebenfalls erlaubt, weil BR-48 für O keinen verlangt.

Nachlässe und Zuschläge auf Dokumentenebene haben eigene Entsprechungen. Ein Nachlass in O mit einem Satz von 0 meldete im Versuch BR-O-06, 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)
BT-152Umsatzsteuersatz für den in Rechnung gestellten Artikelcac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent 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 Serialisierer schreibt cbc:Percent aus einem Satzfeld auf jede Position, und nicht besteuerte Artikel haben einen Satz von null.
  • Eine einzige Vorlage baut die Steuerkategorie der Artikel für alle Kategorien auf, mit stets vorhandenem Satzelement.
  • Das Quellsystem kann keinen fehlenden Satz speichern und legt 0 ab, was zu Positionen zum Nullsatz passt, aber nicht zu O.
  • Die Position wurde im Mapping von Z oder E nach O verschoben, ohne dass ihr Satz entfernt wurde.

So korrigieren Sie das Dokument

  1. Prüfen Sie, ob die Position wirklich nicht steuerbar ist. Ist sie tatsächlich zum Nullsatz oder steuerbefreit, ist die Kategorie der Fehler, und Z oder E behalten ihren Satz von 0.
  2. Lassen Sie bei Positionen in O das cbc:Percent in cac:Item/cac:ClassifiedTaxCategory ganz weg, statt es leer oder als 0 zu schreiben.
  3. Machen Sie das Weglassen im Serialisierer von der Kategorie abhängig, sodass der Satz für jede andere Kategorie geschrieben wird und nie für O.
  4. Lassen Sie die Beträge unverändert. Der Nettobetrag der Position und der Steuerbasisbetrag der Aufschlüsselung ändern sich nicht, wenn das Satzelement wegfällt.

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: ein Artikel der Kategorie O, der einen Satz von 0 angibt

<cac:Item>
  <cbc:Name>Example service</cbc:Name>
  <cac:ClassifiedTaxCategory>
    <cbc:ID>O</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:ClassifiedTaxCategory>
</cac:Item>

Ausschnitt der korrigierten Rechnung: Der Artikel der Kategorie O hat kein Satzelement

<cac:Item>
  <cbc:Name>Example service</cbc:Name>
  <cac:ClassifiedTaxCategory>
    <cbc:ID>O</cbc:ID>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:ClassifiedTaxCategory>
</cac:Item>

Die fehlerhafte Rechnung hat cbc:Percent 0 in der cac:ClassifiedTaxCategory der Position; die korrigierte Rechnung hat dort kein Satzelement, und die Aufschlüsselung für O hat in keinem der beiden Dokumente eines. Das fehlerhafte Dokument meldet nur BR-O-05, an der Steuerkategorie von Position 1.

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 steht die Kategorie in cac:CreditNoteLine/cac:Item, und die so umgeschriebene fehlerhafte Rechnung meldete im Versuch denselben Befund.
  • Positionen zum Nullsatz funktionieren umgekehrt: BR-Z-05 verlangt dort einen Satz von 0; ein Mapping, das eine Position zwischen Z und O verschiebt, muss das Element also hinzufügen oder entfernen.
  • Eine Position in O bringt die anderen Regeln für O mit sich: keine Umsatzsteuer-Identifikationsnummern nach BR-O-02, ein Grund in der Aufschlüsselung nach BR-O-10 und keine anderen Kategorien nach BR-O-11.

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-O-05 (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.