BR-DE-18XRechnung 3.0 nur XRechnung

BR-DE-18: Skonto-Angabe entspricht nicht dem Pflichtformat

Die XRechnung verlangt Skonto in BT-20 in einer streng maschinenlesbaren Syntax: #SKONTO#TAGE=n#PROZENT=n.nn#. Der gewohnte Skonto-Satz aus der Rechnungsvorlage fällt durch.

Regeltext im Prüfregelwerk

Skonto Zeilen in muessen diesem regulärem Ausdruck entsprechen: . Die Informationen zur Gewährung von Skonto müssen wie folgt im Element "Payment terms" (BT-20) übermittelt werden: 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. Liegt dem zu berechnenden Betrag nicht BT-115, "fälliger Betrag" zugrunde, sondern nur ein Teil des fälligen Betrags der Rechnung, ist der Grundwert zur Berechnung von Skonto als viertes Segment "BASISBETRAG=n" gemäß dem semantischen Datentypen Amount 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. Zusätzliches Whitespace (Leerzeichen, Tabulatoren oder Zeilenumbrüche) ist nicht zulässig. Andere Zeichen oder Texte als in den oberen Vorgaben genannt sind nicht zulässig.

BT-20BT-115

Der häufigste deutsche Sonderfall überhaupt: Skonto steht auf fast jeder Handwerker-Rechnung, aber die XRechnung akzeptiert den gewohnten Satz „2 % Skonto bei Zahlung innerhalb von 14 Tagen" nicht als maschinenlesbare Angabe.

Was die Regel prüft

Wenn die Zahlungsbedingungen (BT-20, BT steht für Business Term, das nummerierte Feld der Norm EN 16931) eine Skonto-Angabe enthalten, muss diese exakt so aufgebaut sein:

#SKONTO#TAGE=14#PROZENT=2.00#

Die Syntax ist zeichengenau festgelegt: Jede Skonto-Zeile beginnt mit #, die Segmente SKONTO, TAGE=n und PROZENT=n.nn sind mit # getrennt, die Zeile endet mit # und einem Zeilenumbruch. Prozentwerte immer ohne Vorzeichen, mit Punkt als Dezimaltrenner und genau zwei Nachkommastellen. Alles in Großbuchstaben, kein zusätzliches Leerzeichen, kein Tabulator. Bezieht sich das Skonto nur auf einen Teil des fälligen Betrags (BT-115), kommt als viertes Segment BASISBETRAG=n.nn dazu. Mehrere Skontostufen stehen in je einer eigenen Zeile.

Normaler Freitext in BT-20 („Zahlbar innerhalb von 30 Tagen netto") bleibt daneben erlaubt. Die Regel greift auf die Zeilen, die wie eine Skonto-Angabe aussehen.

Warum sie in der Praxis fehlschlägt

Fast immer, weil der Skonto-Satz aus der Rechnungsvorlage unverändert ins Zahlungsbedingungs-Feld übernommen wird: „Bei Zahlung innerhalb 10 Tagen gewähren wir 2 % Skonto." Für einen Menschen perfekt verständlich, für die Regel ein Verstoß, denn Empfängersysteme sollen Skonto automatisch berechnen und dafür braucht es das feste Format.

Die zweite Fehlerquelle sind Beinahe-Treffer: PROZENT=2 statt PROZENT=2.00, ein Komma statt des Punkts, ein Leerzeichen nach dem #, Kleinschreibung wie #Skonto# oder eine fehlende abschließende Raute. Die Prüfung läuft über einen regulären Ausdruck, schon ein Zeichen Abweichung genügt.

So behebst du den Fehler

Bau die Skonto-Zeile exakt nach dem Muster #SKONTO#TAGE=n#PROZENT=n.nn# und lass den erklärenden Satz für Menschen zusätzlich als eigene Freitext-Zeile in BT-20 stehen, das ist zulässig. Zwei Stufen (10 Tage 3 %, 20 Tage 2 %) werden zu zwei Zeilen.

In Belegschmied gibst du Skonto-Tage und -Prozentsatz als Formularfelder ein, die konforme BT-20-Zeile wird daraus erzeugt; aus einer hochgeladenen PDF wird die Skonto-Angabe automatisch ins Pflichtformat übersetzt.

Wichtig fürs Verständnis: BR-DE-18 gilt nur für die XRechnung. Eine ZUGFeRD-Rechnung nach EN 16931 darf Skonto auch als Freitext tragen, dann kann der Empfänger es nur nicht automatisch auswerten.

XML-Beispiel: vorher und nachher

<!-- verletzt BR-DE-18: Skonto als Freitext, nicht maschinenlesbar -->
<ram:SpecifiedTradePaymentTerms>
  <ram:Description>Bei Zahlung innerhalb von 14 Tagen gewähren wir 2% Skonto.</ram:Description>
</ram:SpecifiedTradePaymentTerms>
<ram:SpecifiedTradePaymentTerms>
  <ram:Description>#SKONTO#TAGE=14#PROZENT=2.00#
Zahlbar innerhalb von 30 Tagen netto.</ram:Description>
</ram:SpecifiedTradePaymentTerms>

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