Fehlermeldung erklärt

BR-DE-18: Skonto-Angabe in den Zahlungsbedingungen (BT-20) falsch formatiert

Kurz gesagt: In der XRechnung steht Skonto in einem festen, maschinenlesbaren Format in den Zahlungsbedingungen BT-20: #SKONTO#TAGE=14#PROZENT=2.00#, danach ein Zeilenumbruch. Weicht eine Zeile davon ab, die mit # beginnt, meldet die Prüfung BR-DE-18 als Fehler. Häufige Auslöser sind ein Komma statt Punkt, fehlende Nachkommastellen und der fehlende Zeilenumbruch am Ende.

Was die Regel verlangt

Die KoSIT-Prüfregeln beschreiben das Format in der Fehlermeldung selbst. Der Kern, wörtlich:

[BR-DE-18] … Anzugeben ist im ersten Segment "SKONTO", im zweiten "TAGE=n", im dritten "PROZENT=n". Prozentzahlen sind ohne Vorzeichen sowie mit Punkt getrennt von zwei Nachkommastellen anzugeben. … Jeder Eintrag beginnt mit einer #, die Segmente sind mit einer # getrennt und eine Zeile schließt mit einer # ab. Am Ende einer vollständigen Skontoangabe muss ein XML-konformer Zeilenumbruch folgen. Alle Angaben zur Gewährung von Skonto müssen in Großbuchstaben gemacht werden.

Quelle: KoSIT, XRechnung-Schematron 2.6.0 in der Prüfkonfiguration vom 31.08.2026, Datei XRechnung-UBL-validation.xsl

Die Stufe ist Fehler („fatal“). Eine Rechnung mit einer falsch geschriebenen Skonto-Zeile gilt als nicht konform, auch wenn alle Beträge stimmen. Die Prüfung verwendet dafür dieses Muster:

#SKONTO#TAGE=[0-9]+#PROZENT=[0-9]+\.[0-9]{2}(#BASISBETRAG=-?[0-9]+\.[0-9]{2})?#

Wann die Regel überhaupt prüft

Das ist der Teil, den viele übersehen. BR-DE-18 schaut sich nur die Zeilen in BT-20 an, die mit # beginnen. Daraus folgt dreierlei:

  • Normale Zahlungsbedingungen sind erlaubt. „Zahlbar innerhalb von 30 Tagen“ ohne Raute löst die Regel nicht aus, auch nicht in derselben Angabe vor einer Skonto-Zeile.
  • Skonto nur als Fließtext wird nicht geprüft. „2 % Skonto bei Zahlung binnen 14 Tagen“ besteht BR-DE-18, ist aber für die Software des Empfängers nicht lesbar. Wer Skonto automatisch verarbeitet haben will, braucht das Format.
  • Jede andere Zeile mit Raute ist ein Fehler. Beginnt eine Zeile in BT-20 mit #, ohne eine Skonto-Angabe zu sein, schlägt die Regel an. Das passiert etwa, wenn Textbausteine im Stil der Rechnungsbemerkungen (#ADU#…) in die Zahlungsbedingungen geraten.

Geprüft wird in UBL das erste cbc:Note unter cac:PaymentTerms, in CII die erste ram:Description unter ram:SpecifiedTradePaymentTerms.

Getestete Beispiele

Wir haben jede Zeile dieser Tabelle am 15.10.2026 mit dem offiziellen XRechnung-Schematron 2.6.0 geprüft. Ausgangspunkt war eine gültige Testrechnung aus der KoSIT-Testsuite, in der nur BT-20 geändert wurde. ⏎ steht für den Zeilenumbruch.

Inhalt von BT-20BR-DE-18
#SKONTO#TAGE=14#PROZENT=2.00#⏎erfüllt
Zahlbar in 30 Tagen.⏎#SKONTO#TAGE=14#PROZENT=2.00#⏎erfüllt
#SKONTO#TAGE=7#PROZENT=3.00#⏎#SKONTO#TAGE=14#PROZENT=2.00#⏎erfüllt, zwei Skontostufen
#SKONTO#TAGE=14#PROZENT=2.00#BASISBETRAG=100.00#⏎erfüllt
#SKONTO#TAGE=14#PROZENT=2.00#⏎Danach netto.erfüllt
2 % Skonto bei Zahlung innerhalb 14 Tagenerfüllt, aber nicht maschinenlesbar
#SKONTO#TAGE=14#PROZENT=2.00# (ohne Umbruch)Fehler, Zeilenumbruch fehlt
#SKONTO#TAGE=14#PROZENT=2,00#⏎Fehler, Komma statt Punkt
#SKONTO#TAGE=14#PROZENT=2#⏎Fehler, Nachkommastellen fehlen
#skonto#tage=14#prozent=2.00#⏎Fehler, Kleinbuchstaben
#SKONTO# TAGE=14#PROZENT=2.00#⏎Fehler, Leerzeichen im Eintrag
#SKONTO#TAGE=14#PROZENT=2.00⏎Fehler, schließende Raute fehlt
#SKONTO#TAGE=14#PROZENT=2.00# danach netto⏎Fehler, Text in derselben Zeile
#Bitte Rechnungsnummer angeben⏎Fehler, Raute ohne Skonto

Leerzeichen vor der ersten Raute hat die Prüfung in unserem Test toleriert. Verlassen sollten Sie sich darauf nicht: Die Regel selbst schreibt, zusätzliches Whitespace sei nicht zulässig.

BASISBETRAG: wann das vierte Segment nötig ist

Ohne viertes Segment bezieht sich der Prozentsatz auf den fälligen Betrag der Rechnung (BT-115). Gilt Skonto nur für einen Teil, etwa weil Material skontierbar ist und eine Fracht nicht, steht der Grundbetrag in BASISBETRAG=, mit Punkt und zwei Nachkommastellen. Ein Beispiel:

#SKONTO#TAGE=10#PROZENT=3.00#BASISBETRAG=850.00#

So sieht es in der Datei aus

UBL:

<cac:PaymentTerms>
  <cbc:Note>Zahlbar innerhalb von 30 Tagen.
#SKONTO#TAGE=14#PROZENT=2.00#
</cbc:Note>
</cac:PaymentTerms>

CII:

<ram:SpecifiedTradePaymentTerms>
  <ram:Description>Zahlbar innerhalb von 30 Tagen.
#SKONTO#TAGE=14#PROZENT=2.00#
</ram:Description>
</ram:SpecifiedTradePaymentTerms>

Der Umbruch nach der letzten Raute gehört in den Text des Elements. Manche Programme schneiden ihn beim Export ab; dann scheitert eine sonst korrekte Angabe genau an dieser Stelle.

So wird der Fehler behoben

  1. Den Wert aus BT-20 ansehen. Im XRechnung-Viewer zeigt „XML anzeigen“ den Quelltext; die Datei wird dabei nicht hochgeladen. Gesucht ist PaymentTerms (UBL) oder SpecifiedTradePaymentTerms (CII).
  2. Die Skonto-Zeile in genau dieser Form schreiben: Großbuchstaben, Rauten als Trenner, Punkt mit zwei Nachkommastellen, Raute am Ende, danach ein Zeilenumbruch.
  3. Andere Zeilen, die mit # beginnen, aus BT-20 entfernen.
  4. Die Rechnung neu erzeugen und vor dem Versand erneut prüfen.

Als Empfänger korrigieren Sie die Datei nicht selbst; das muss der Aussteller tun. Wie die Prüfstufen zusammenhängen, erklärt E-Rechnungen prüfen: KoSIT, EN 16931 und Pflichtangaben.

Quellen

  1. KoSIT: Prüfkonfiguration validator-configuration-xrechnung v2026-08-31 (XRechnung 3.0.2, XRechnung-Schematron 2.6.0)
  2. KoSIT: Prüfregeln validator-configuration-xrechnung 3.0.2 (XRechnung 3.0.2), Release vom 31.08.2026

Hinweis: Dieser Ratgeber gibt einen allgemeinen Überblick (Stand: Oktober 2026) und ersetzt keine Rechts- oder Steuerberatung. Für Ihren konkreten Fall wenden Sie sich bitte an Ihre Steuerberatung.

Häufige Fragen

Was bedeutet BR-DE-18?

BR-DE-18 ist eine Prüfregel der KoSIT für XRechnung. Sie verlangt, dass jede Zeile in den Zahlungsbedingungen (BT-20), die mit # beginnt, eine Skonto-Angabe im Format #SKONTO#TAGE=n#PROZENT=n.nn# ist und dass nach der letzten Angabe ein Zeilenumbruch folgt.

Wie schreibe ich 2 % Skonto bei Zahlung innerhalb von 14 Tagen?

#SKONTO#TAGE=14#PROZENT=2.00# und danach ein Zeilenumbruch, alles in Großbuchstaben und mit Punkt als Dezimaltrenner.

Darf neben Skonto noch normaler Text in BT-20 stehen?

Ja. Die Regel prüft nur Zeilen, die mit # beginnen. Ein Satz wie „Zahlbar innerhalb von 30 Tagen“ in einer eigenen Zeile ist erlaubt.

Kann ich mehrere Skontostufen angeben?

Ja, jede Stufe in einer eigenen Zeile, zum Beispiel #SKONTO#TAGE=7#PROZENT=3.00# und darunter #SKONTO#TAGE=14#PROZENT=2.00#, mit Zeilenumbruch nach der letzten.

Eine E-Rechnung prüfen, ohne sie hochzuladen

Der XRechnung-Viewer ist kostenlos und liest die Datei nur in Ihrem Browser. Für Empfang, Archiv und DATEV-Übergabe entsteht ERIT Cloud.