BR-04EN 16931

BR-04: Rechnungstyp-Code (BT-3) fehlt

Die Rechnung sagt nicht, welche Art Dokument sie ist (Rechnung, Gutschrift, korrigierte Rechnung). Meist fehlt der Code, weil das erzeugende System den Belegtyp nicht auf die UNTDID-1001-Codeliste abbildet.

Regeltext im Prüfregelwerk

An Invoice shall have an Invoice type code (BT-3).

BT-3

Der Rechnungstyp-Code entscheidet, wie der Empfänger das Dokument verbucht: als normale Rechnung, als Gutschrift oder als Korrektur. Ohne ihn kann keine automatische Verarbeitung starten.

Was die Regel prüft

BT-3 (BT = Business Term, das nummerierte Feld der Norm EN 16931) muss vorhanden sein. Der Wert ist ein numerischer Code aus der Codeliste UNTDID 1001. Die wichtigsten Werte im deutschen Alltag: 380 Handelsrechnung, 381 Gutschrift, 384 korrigierte Rechnung, 326 Teilrechnung, 389 Gutschrift im Gutschriftverfahren. In der CII-Syntax steht der Code in rsm:ExchangedDocument/ram:TypeCode.

BR-04 verlangt nur, dass ein Code da ist. Welche Codes die XRechnung zulässt, regelt zusätzlich BR-DE-17; und wer 384 nutzt, braucht wegen BR-DE-26 eine Referenz auf die Vorgängerrechnung.

Warum sie in der Praxis fehlschlägt

Der häufigste Auslöser ist ein fehlendes Mapping: Das Vorsystem kennt Belegarten wie „Ausgangsrechnung" oder „Storno" als interne Kürzel, und beim XML-Export wird vergessen, sie in UNTDID-1001-Codes zu übersetzen, das Feld bleibt leer. Zweiter Fall: Ein Freitext oder das interne Kürzel („RG", „Rechnung") landet im Element; dann schlägt zwar meist erst die Codelisten-Prüfung an, manche Validatoren werten das Feld aber als nicht vorhanden. Dritter Fall sind selbst gebaute Templates, die ram:TypeCode schlicht nicht enthalten, weil das Beispiel, von dem kopiert wurde, es auch nicht hatte.

So behebst du den Fehler

Bilde jede Belegart deines Systems fest auf einen UNTDID-1001-Code ab und schreib diesen Code nach ram:TypeCode. Für den Normalfall einer Rechnung ist 380 richtig. Nutz keine Fantasiewerte: Der Code wird gegen die Codeliste geprüft. In Belegschmied wird der Typ-Code aus der gewählten Belegart abgeleitet, das Feld kann dort nicht leer bleiben.

XML-Beispiel: vorher und nachher

<rsm:ExchangedDocument>
  <ram:ID>RE-2026-0142</ram:ID>
  <!-- verletzt BR-04: ram:TypeCode fehlt komplett -->
  <ram:IssueDateTime>
    <udt:DateTimeString format="102">20260810</udt:DateTimeString>
  </ram:IssueDateTime>
</rsm:ExchangedDocument>
<rsm:ExchangedDocument>
  <ram:ID>RE-2026-0142</ram:ID>
  <ram:TypeCode>380</ram:TypeCode>
  <ram:IssueDateTime>
    <udt:DateTimeString format="102">20260810</udt:DateTimeString>
  </ram:IssueDateTime>
</rsm:ExchangedDocument>

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.

Regeln, die oft zusammen auftreten

← Alle Fehlermeldungen im Überblick