BR-TMP-CVD-01: Ungültiges Bildungsschema beim Artikel-Klassifikationscode
Der Scheme identifier des Item classification identifier (BT-158) stammt nicht aus der Codeliste UNTDID 7143. Häufigster Auslöser: ein frei erfundenes oder falsch geschriebenes listID-Attribut.
Das Bildungsschema für "Item classification identifier" (BT-158) ist aus der Codeliste UNTDID 7143 zu wählen.
Die Regel gehört zum CVD-Regelblock der XRechnung (Clean Vehicles Directive, Meldepflichten bei der öffentlichen Beschaffung von Fahrzeugen), prüft aber etwas Allgemeines: ob der Klassifikationscode eines Artikels ein gültiges Schema trägt.
Was die Regel prüft
BT-158 (BT = Business Term, das nummerierte Feld der Norm) ist der Item classification identifier, also ein Code, der den Artikel einer Klassifikation zuordnet, etwa einer eCl@ss- oder UNSPSC-Nummer. Welche Klassifikation gemeint ist, sagt der Scheme identifier, im CII-XML das Attribut listID. Genau dieses Attribut muss einen Wert aus der UN-Codeliste UNTDID 7143 („Item type identification code") tragen. Gültig sind zum Beispiel TST (UNSPSC), EC (eCl@ss über die Erweiterung), MP (Herstellerteilenummer) oder das für den CVD-Block eingeführte CVD. Ein leeres, frei erfundenes oder falsch geschriebenes Schema lässt die Prüfung fehlschlagen.
Dass überhaupt ein Schema vorhanden sein muss, verlangt schon BR-65. BR-TMP-CVD-01 verschärft das: Vorhanden reicht nicht, der Wert muss aus der Liste stammen.
Warum sie in der Praxis fehlschlägt
Der häufigste Fall: Die erzeugende Software übernimmt den Namen der Klassifikation als Schema, schreibt also listID="eclass" oder listID="UNSPSC" statt des jeweiligen 7143-Codes. Für Menschen lesbar, für den Validator ungültig.
Zweiter Fall: Warenwirtschaftssysteme exportieren ihre interne Artikelgruppennummer als Klassifikationscode und setzen als Schema etwas Eigenes wie INTERN. Interne Gruppen gehören aber gar nicht in BT-158, dafür gibt es die Verkäufer-Artikelnummer (BT-155).
Dritter Fall im CVD-Kontext: Die Fahrzeugkategorie wird korrekt als Wert übergeben, aber das Schema CVD ist klein geschrieben oder fehlt. Die Codes der Liste sind exakt so zu übernehmen, wie sie dort stehen.
So behebst du den Fehler
Prüfe das listID-Attribut jedes ram:ClassCode-Elements in deinen Rechnungszeilen und ersetze es durch den passenden Code aus UNTDID 7143. Wenn du gar keine echte Klassifikation übermitteln willst, lass das Element komplett weg, BT-158 ist optional. Rechnungen, die du über Belegschmied erstellst, enthalten das Element nur, wenn eine gültige Klassifikation hinterlegt ist.
XML-Beispiel: vorher und nachher
<ram:IncludedSupplyChainTradeLineItem>
<ram:SpecifiedTradeProduct>
<ram:Name>Elektro-Transporter N1</ram:Name>
<!-- verletzt BR-TMP-CVD-01: "eclass" ist kein Code aus UNTDID 7143 -->
<ram:DesignatedProductClassification>
<ram:ClassCode listID="eclass">34-10-20-01</ram:ClassCode>
</ram:DesignatedProductClassification>
</ram:SpecifiedTradeProduct>
<!-- … -->
</ram:IncludedSupplyChainTradeLineItem>
<ram:IncludedSupplyChainTradeLineItem>
<ram:SpecifiedTradeProduct>
<ram:Name>Elektro-Transporter N1</ram:Name>
<ram:DesignatedProductClassification>
<ram:ClassCode listID="CVD">N1</ram:ClassCode>
</ram:DesignatedProductClassification>
</ram:SpecifiedTradeProduct>
<!-- … -->
</ram:IncludedSupplyChainTradeLineItem>
Rechnung selbst prüfen
Lade deine Datei hoch und sieh in Sekunden, welche Regeln sie besteht und welche nicht. Kostenlos, ohne Anmeldung, nichts wird gespeichert.