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.
An Invoice shall have an Invoice type code (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
Laden Sie Ihre Datei hoch und sehen Sie in Sekunden, welche Regeln sie besteht und welche nicht. Kostenlos, ohne Anmeldung, nichts wird gespeichert.
Regeln, die oft zusammen auftreten
← Alle Fehlermeldungen im Überblick
Gepflegt von Emilio Irmscher, Gründer von Belegschmied. Über den Autor