← Alle Fehlerregeln
error Class A

BR-DE-13 Mengeneinheit

Was diese Regel prüft

BR-DE-13 validiert, dass die Mengeneinheit einer Rechnungsposition im Feld BT-130 (Invoiced quantity unit of measure) einen gültigen Code gemäß der UN/ECE-Empfehlung Nr. 20 verwendet. Der Code wird im XML als Attribut unitCode des Elements cbc:InvoicedQuantity angegeben.

Die Regel stellt sicher, dass keine Freitext-Einheiten (z. B. „Stück”, „Stunden”) verwendet werden, sondern ausschließlich die standardisierten alphanumerischen Codes der UN/ECE.

Warum diese Regel existiert

Standardisierte Mengeneinheiten sind für die automatisierte Rechnungsverarbeitung unerlässlich:

  • Interoperabilität: Empfängersysteme müssen Mengenangaben maschinell interpretieren können. Der Code C62 wird weltweit einheitlich als „Stück” verstanden, während „Stk.”, „Stück” oder „pcs” mehrdeutig sein können.
  • Automatisierte Wareneingangsprüfung: ERP-Systeme gleichen die Mengeneinheit der Rechnung mit der Bestellung ab. Nur bei Übereinstimmung der UN/ECE-Codes kann ein automatischer Dreiwege-Abgleich erfolgen.
  • Europäische Norm EN 16931: Die Richtlinie 2014/55/EU zur elektronischen Rechnungsstellung schreibt die Verwendung der UN/ECE-Empfehlung 20 verbindlich vor.

Was einen Fehler auslöst

Die Regel schlägt fehl, wenn:

  • Das Attribut unitCode einen Freitext enthält (z. B. Stück, Stunden, pieces)
  • Ein ungültiger oder nicht existierender Code verwendet wird
  • Das Attribut unitCode komplett fehlt
  • Ein veralteter oder zurückgezogener Code verwendet wird

Fehlerhaftes XML-Beispiel

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <!-- FEHLER: Deutscher Freitext statt UN/ECE-Code -->
  <cbc:InvoicedQuantity unitCode="Stück">10</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">500.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cbc:Name>Bürostuhl Modell X</cbc:Name>
  </cac:Item>
</cac:InvoiceLine>

Der Wert Stück ist kein gültiger UN/ECE-Rec-20-Code. Obwohl der menschliche Leser die Bedeutung versteht, kann ein Validierungssystem diesen Wert nicht verarbeiten.

Die Lösung

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <!-- KORREKT: C62 = Stück (one/piece) nach UN/ECE Rec 20 -->
  <cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">500.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cbc:Name>Bürostuhl Modell X</cbc:Name>
  </cac:Item>
</cac:InvoiceLine>

Verwenden Sie den korrekten UN/ECE-Code als Wert des Attributs unitCode. Der Code ist ein XML-Attribut, kein Elementinhalt.

Sonderfälle und häufige Fehler

Häufig verwendete UN/ECE-Rec-20-Codes

CodeBedeutungTypische Verwendung
C62Stück (one)Waren, Artikel, Einheiten
H87Stück (piece)Alternative zu C62
HURStundeDienstleistungen, Beratung
DAYTagTagessätze
MONMonatMonatsabonnements
KGMKilogrammGewichtsbasierte Waren
MTRMeterLängenbasierte Waren
LTRLiterFlüssigkeiten
MTKQuadratmeterFlächenbasierte Leistungen
KWHKilowattstundeEnergie
SETSatz/SetZusammenstellungen
LSPauschal (lump sum)Pauschalleistungen

Weitere wichtige Hinweise

  • C62 vs. H87: Beide bedeuten „Stück”, sind aber technisch unterschiedliche Codes. C62 (one) ist der gebräuchlichere Code in der deutschen Praxis. Klären Sie mit Ihrem Handelspartner, welcher Code erwartet wird.
  • Groß-/Kleinschreibung: Die Codes sind case-sensitiv. c62 ist ungültig; verwenden Sie C62.
  • Attribut, nicht Element: unitCode ist ein XML-Attribut von cbc:InvoicedQuantity, nicht ein separates Element. Schreiben Sie <cbc:InvoicedQuantity unitCode="C62">, nicht <cbc:UnitCode>C62</cbc:UnitCode>.
  • Veraltete Codes: Einige Codes wurden in neueren Versionen der Empfehlung zurückgezogen. Stellen Sie sicher, dass Sie die aktuelle Version (Revision 11 oder neuer) verwenden.
  • Bestellabgleich: Verwenden Sie denselben unitCode in Rechnung und zugehöriger Bestellung, um automatisierte Abgleichprozesse zu ermöglichen.