E-Rechnung, die zu Ihren Abläufen passt: Wir entwickeln Ihre individuelle Lösung – zum Festpreis.

BR-DE-18: Skonto im falschen Format

Gilt für XRechnung (CII und UBL) und für ZUGFeRD-Dateien im Profil XRECHNUNG. Für ZUGFeRD im Profil EN 16931 gilt die Regel nicht.

Originaltext der Prüfmeldung

[BR-DE-18] Skonto Zeilen in rsm:CrossIndustryInvoice muessen diesem regulärem Ausdruck entsprechen: (^|\r?\n)#(SKONTO)#TAGE=([0-9]+#PROZENT=[0-9]+\.[0-9]{2})(#BASISBETRAG=-?[0-9]+\.[0-9]{2})?#$. 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.

Was die Meldung bedeutet

Damit die Software des Empfängers Skonto automatisch berücksichtigen kann, schreibt XRechnung ein festes Format vor. Jede Zeile in den Zahlungsbedingungen, die mit # beginnt, gilt als Skontozeile und muss genau diesem Aufbau folgen.

Aufbau: #SKONTO#TAGE=n#PROZENT=n.nn# und optional #BASISBETRAG=n.nn# vor dem letzten Zeichen, wenn sich das Skonto nur auf einen Teil des Betrags bezieht. Tage als ganze Zahl, Prozent und Basisbetrag mit Punkt und genau zwei Nachkommastellen.

Normaler Text in den Zahlungsbedingungen bleibt erlaubt, wenn er in einer eigenen Zeile steht und nicht mit # beginnt. In CII und UBL prüft die Regel nur das erste Textfeld der Zahlungsbedingungen.

Häufige Ursachen

  • Komma statt Punkt oder nur eine Nachkommastelle: PROZENT=2,00 oder PROZENT=2.
  • Kleinbuchstaben oder Leerzeichen: #Skonto# oder # SKONTO #.
  • Der Zeilenumbruch nach der letzten Skontozeile fehlt. Das ist die häufigste und am schwersten sichtbare Ursache.
  • Hinter der Skontoangabe steht in derselben Zeile noch Text.

So beheben Sie den Fehler

  • Schreiben Sie jede Skontostufe in eine eigene Zeile im genauen Format und schließen Sie die Angabe mit einem Zeilenumbruch ab.
  • Mehrere Stufen sind möglich, je Stufe eine Zeile.
  • Wird die Datei in Ihrer Software erzeugt und Sie können das Format nicht beeinflussen, lassen Sie Skonto im Freitext weg und vereinbaren Sie es anders, oder erzeugen Sie die Rechnung mit einem Werkzeug, das das Format beherrscht.

Beispiel

CII: Freitext plus zwei Skontostufen (CII, z. B. ZUGFeRD)

Fehlerhaft

<ram:Description>Zahlbar innerhalb von 30 Tagen ohne Abzug.
#SKONTO#TAGE=14#PROZENT=2,00#</ram:Description>

Richtig

<ram:Description>Zahlbar innerhalb von 30 Tagen ohne Abzug.
#SKONTO#TAGE=7#PROZENT=3.00#
#SKONTO#TAGE=14#PROZENT=2.00#
</ram:Description>

Betroffene Felder

FeldCIIUBL
BT-20
Zahlungsbedingungen
ram:SpecifiedTradePaymentTerms/ram:Descriptioncac:PaymentTerms/cbc:Note

Rechnung prüfen oder neu erzeugen

Unser kostenloser Validator prüft XRechnung und ZUGFeRD mit den offiziellen Regeln und erklärt jede Meldung auf Deutsch. Ist die Datei nicht zu retten, erzeugen Sie aus der PDF-Rechnung eine neue, gültige E-Rechnung.

Häufige Fragen zu BR-DE-18

Warum scheitert meine Angabe, obwohl sie genau so aussieht?

Meist fehlt der Zeilenumbruch nach der letzten Skontozeile. Er ist im Editor nicht zu sehen. Im XML muss nach dem letzten # ein Zeilenumbruch stehen, bevor das Element endet.

Gilt das Format auch für ZUGFeRD?

Die Regel gilt für XRechnung und für ZUGFeRD im Profil XRECHNUNG. Im Profil EN 16931 ist das Format nicht vorgeschrieben.

Verwandte Meldungen

Alle erklärten Fehlercodes