TaxLayer
Technik2026-11-027 Min. Lesezeitvon TaxLayer Team

Skonto in XRechnung und ZUGFeRD angeben: das strukturierte BT-20-Format (BR-DE-18)

Fast jede deutsche B2B-Rechnung bietet Skonto an: zwei Prozent Abzug bei Zahlung binnen 14 Tagen, sonst 30 Tage netto. Auf Papier oder in der PDF genügte dafür ein Satz im Rechnungsfuß. In der strukturierten E-Rechnung reicht dieser Freitext nicht mehr. Die EN 16931 hat kein eigenes Feld für Skonto, und die XRechnung verlangt für den Hinweis ein festes, maschinenlesbares Muster. Wer es nicht einhält, bekommt die Validierungsmeldung BR-DE-18 oder, unangenehmer, einen Skonto, den die Buchhaltung des Empfängers nie verbucht.

> Kurzantwort: Skonto steht in der E-Rechnung im Feld Zahlungsbedingungen (BT-20). Die XRechnung verlangt dafür ein strukturiertes Muster, bei dem jede Skonto-Zeile mit #SKONTO# beginnt: #SKONTO#TAGE=14#PROZENT=2.00#. Prozente mit Punkt und zwei Nachkommastellen, kein Prozentzeichen. Steht Skonto nur als Freitext, meldet der Validator die Regel BR-DE-18. Bei mehreren Skontostufen schreiben Sie je Stufe eine eigene #SKONTO#-Zeile.

Warum Freitext nicht mehr genügt

Die europäische Norm EN 16931 beschreibt rund 160 Datenfelder (Business Terms), aber keines davon ist für Skonto vorgesehen. Skonto, Zahlungsfristen und Verzugsregeln landen alle im selben Feld: BT-20, die Zahlungsbedingungen. Dieses Feld ist reiner Freitext. Eine Übersicht der Pflicht- und Kannfelder gibt EN 16931: Alle Pflichtfelder.

Für einen Menschen ist „2 % Skonto bei Zahlung innerhalb von 14 Tagen“ eindeutig. Eine Software kann aus diesem Satz nichts Verlässliches herauslesen, weil Formulierung, Reihenfolge und Zeichensetzung in jedem Betrieb anders sind. Damit der Skonto trotzdem automatisch in die Buchhaltung des Empfängers fließt, hat die KoSIT für die XRechnung ein festes, maschinenlesbares Muster definiert, das in genau dieses Freitextfeld geschrieben wird.

Das #SKONTO#-Muster im Detail

Jede Skontostufe ist eine eigene Zeile, komplett in Großbuchstaben, aufgebaut aus Segmenten, die jeweils von # eingerahmt sind:

SegmentBedeutungPflichtBeispiel
#SKONTO#Kennung, leitet jede Skonto-Zeile einja#SKONTO#
TAGE=nZahlungsfrist in Tagen ab RechnungsdatumjaTAGE=14
PROZENT=n.nnSkontosatz, Punkt als Dezimaltrennzeichen, zwei Nachkommastellen, kein ProzentzeichenjaPROZENT=2.00
BASISBETRAG=n.nnBemessungsgrundlage, nur wenn sie vom fälligen Betrag (BT-115) abweichtoptionalBASISBETRAG=1000.00

Drei Regeln entscheiden über die Gültigkeit:

  1. Großbuchstaben. #SKONTO#, TAGE, PROZENT und BASISBETRAG werden groß geschrieben.
  2. Punkt statt Komma. Der Prozentsatz nutzt den Punkt und immer zwei Nachkommastellen: 2.00, nicht 2,0 und nicht 2 %.
  3. Skonto zuerst. Die #SKONTO#-Zeilen stehen am Anfang des Feldes BT-20. Erläuternder Zahlungstext folgt darunter in eigenen Zeilen.

Ein vollständiges Beispiel

Eine Rechnung über 1.190,00 Euro brutto mit der Bedingung „2 % Skonto bei Zahlung innerhalb von 14 Tagen, sonst 30 Tage netto“ sieht im Feld BT-20 so aus:

`

#SKONTO#TAGE=14#PROZENT=2.00#

Zahlbar innerhalb von 30 Tagen netto ohne Abzug.

`

Die erste Zeile liest die Software aus, die zweite ist der menschenlesbare Hinweis. Beide stehen im selben Feld, durch einen Zeilenumbruch getrennt.

Mehrere Skontostufen

Gestaffelter Skonto, etwa „3 % in 8 Tagen, 2 % in 14 Tagen“, wird als zwei Zeilen abgebildet, eine je Stufe:

`

#SKONTO#TAGE=8#PROZENT=3.00#

#SKONTO#TAGE=14#PROZENT=2.00#

Zahlbar innerhalb von 30 Tagen netto ohne Abzug.

`

Die Reihenfolge der Stufen spielt für die Auswertung keine Rolle, üblich ist die kürzeste Frist zuerst.

Wann Sie BASISBETRAG brauchen

Standardmäßig bezieht sich der Skonto auf den fälligen Gesamtbetrag, in der EN 16931 das Feld BT-115 (Fälliger Betrag). Solange der Skonto auf diesen vollen Betrag gewährt wird, lassen Sie das Segment BASISBETRAG weg.

Weicht die Bemessungsgrundlage ab, etwa weil Skonto nur auf den Warenwert ohne Frachtkosten gilt, geben Sie die Grundlage explizit an:

`

#SKONTO#TAGE=14#PROZENT=2.00#BASISBETRAG=1000.00#

`

Hier werden zwei Prozent auf 1.000,00 Euro gewährt, nicht auf den gesamten Rechnungsbetrag. Prüfen Sie in diesem Fall, dass der Basisbetrag mit der tatsächlichen Grundlage zusammenpasst, sonst rechnet die Buchhaltung des Empfängers einen falschen Abzug.

Der Fehler BR-DE-18

Die XRechnung-Spezifikation schreibt in der Regel BR-DE-18 vor: Enthält das Feld BT-20 eine Skontoangabe, muss sie dem strukturierten Muster folgen. Steht dort nur ein Satz in Prosa, meldet der Validator BR-DE-18 und die Rechnung gilt an eine Behörde als nicht konform.

Typische Auslöser und ihre Lösung:

AuslöserWarum es scheitertLösung
„2 % Skonto in 14 Tagen“ als reiner Freitextkein #SKONTO#-Muster vorhandenSkontozeile im festen Muster ergänzen
PROZENT=2,00 mit KommaDezimaltrennzeichen muss ein Punkt seinPROZENT=2.00 schreiben
#SKONTO#TAGE=14#PROZENT=2%#Prozentzeichen ist nicht erlaubtZeichen entfernen, PROZENT=2.00
Skontozeile steht unter dem Fließtext#SKONTO# muss am Anfang stehenReihenfolge umdrehen

Jeden Code schlagen Sie im XRechnung-Fehlercodes-Verzeichnis nach. Ob eine fertige Datei sauber ist, prüfen Sie kostenlos mit dem TaxLayer Validator, bevor Sie sie versenden. Die häufigsten Ablehnungsgründe insgesamt ordnet Warum Ihre E-Rechnung abgelehnt wird.

Der stille Fehler: wenn kein Validator warnt

Gefährlicher als die klare Meldung BR-DE-18 ist der Fall, in dem gar nichts auffällt. BR-DE-18 ist eine Regel der deutschen XRechnung. Ein reiner ZUGFeRD-Validator nach EN 16931 prüft sie in der Regel nicht, weil sie zur XRechnung-Ausprägung gehört. Eine ZUGFeRD-Rechnung mit falsch formatiertem Skonto besteht die Validierung also oft trotzdem.

Das Problem zeigt sich erst beim Empfänger: Dessen Buchhaltungssoftware sucht im Feld BT-20 nach dem #SKONTO#-Muster. Findet sie nur Fließtext, bleibt das Skontofeld in der Buchung leer. Der Kunde zieht den Skonto dann per Hand oder gar nicht, und die Differenz landet in der offenen Posten-Liste. Eine technisch gültige Rechnung kann also einen praktisch unbrauchbaren Skonto enthalten. Wie Buchhaltungsprogramme die Felder auslesen, zeigt DATEV und E-Rechnung.

Skonto in ZUGFeRD und XRechnung im Vergleich

XRechnungZUGFeRD (Profil EN 16931)
Feld für SkontoBT-20 ZahlungsbedingungenBT-20 Zahlungsbedingungen
#SKONTO#-Muster erforderlichja, per BR-DE-18nicht per Validierung erzwungen
Von DATEV und Co. ausgelesenjaja, wenn das Muster vorhanden ist
EmpfehlungMuster immer verwendenMuster trotzdem verwenden

Kurz: In beiden Formaten steht Skonto im selben Feld und sollte im selben Muster stehen. Der Unterschied ist nur, dass die XRechnung es erzwingt und ZUGFeRD darauf vertraut, dass Sie es richtig machen.

So übernimmt TaxLayer den Skonto

Wer aus bestehenden Daten eine E-Rechnung erzeugt, muss das Muster nicht von Hand tippen. Beim CSV-Import genügen die beiden Spalten skontoDays und skontoPercent. TaxLayer baut daraus automatisch die Zeile #SKONTO#TAGE=14#PROZENT=2.00# in BT-20, in korrekter Schreibweise mit Punkt und zwei Nachkommastellen. Beim Umwandeln einer PDF erkennt TaxLayer die Skontobedingung aus dem Beleg und zeigt sie im Prüfschritt an, sodass Sie Tage und Satz vor der Erzeugung kontrollieren können. Jede erzeugte Datei wird anschließend gegen den KoSIT-Regelsatz geprüft, BR-DE-18 eingeschlossen.

Fazit

Skonto ist in der E-Rechnung kein eigenes Feld, sondern ein maschinenlesbarer Eintrag im Zahlungsbedingungsfeld BT-20. Das Muster #SKONTO#TAGE=n#PROZENT=n.nn# ist knapp, aber strikt: Großbuchstaben, Punkt statt Komma, kein Prozentzeichen, Skonto zuerst. Halten Sie es ein, dann besteht die XRechnung die Regel BR-DE-18 und, wichtiger, der Empfänger kann den Skonto automatisch verbuchen. Prüfen Sie im Zweifel jede Datei vor dem Versand.

---

TaxLayer jetzt kostenlos testen: erzeugt Skonto, Zahlungsbedingungen und Referenzen im korrekten Format und prüft jede Datei gegen den KoSIT-Regelsatz. Fragen an info@taxlayer.de.

Häufig gestellte Fragen

Wie gebe ich Skonto in einer XRechnung an?

Skonto gehört in das Feld Zahlungsbedingungen (BT-20). Es muss dort strukturiert stehen, nach dem Muster #SKONTO#TAGE=14#PROZENT=2.00#: jede Skonto-Zeile beginnt mit #SKONTO#, danach die Zahlungsfrist in Tagen und der Satz mit Punkt und zwei Nachkommastellen. Freitext wie „2 % bei Zahlung in 14 Tagen“ allein reicht nicht.

Was bedeutet der Fehler BR-DE-18?

BR-DE-18 ist eine Geschäftsregel der XRechnung. Sie wird ausgelöst, wenn das Feld BT-20 eine Skontoangabe enthält, die nicht dem strukturierten Muster #SKONTO#TAGE=n#PROZENT=n.nn# folgt. Die Lösung: den Skonto exakt in diesem Muster angeben, den normalen Zahlungstext in eigene Zeilen darunter setzen. Nachschlagen können Sie den Code im XRechnung-Fehlercodes-Verzeichnis.

Hat die EN 16931 ein eigenes Feld für Skonto?

Nein. Die europäische Norm EN 16931 kennt kein dediziertes Skontofeld. Skonto und Verzugsregelungen stehen im Freitextfeld Zahlungsbedingungen (BT-20). Damit Software den Skonto trotzdem auslesen kann, hat die KoSIT für die XRechnung das maschinenlesbare #SKONTO#-Muster festgelegt.

Wie sieht das #SKONTO#-Format genau aus?

Eine Zeile je Skontostufe, komplett in Großbuchstaben: #SKONTO#TAGE=14#PROZENT=2.00#. TAGE ist die Zahlungsfrist in Tagen ab Rechnungsdatum, PROZENT der Satz mit Punkt als Dezimaltrennzeichen, zwei Nachkommastellen und ohne Prozentzeichen. Optional folgt #BASISBETRAG=1000.00#, wenn sich der Skonto nicht auf den gesamten fälligen Betrag bezieht.

Wann brauche ich das Segment BASISBETRAG?

Nur wenn die Bemessungsgrundlage für den Skonto vom fälligen Gesamtbetrag (BT-115) abweicht, etwa weil Skonto nur auf den Warenwert ohne Fracht gewährt wird. Entspricht die Grundlage dem vollen fälligen Betrag, lassen Sie BASISBETRAG weg.

Gilt das strukturierte Skonto-Format auch für ZUGFeRD?

Skonto steht auch in ZUGFeRD im selben Feld BT-20. Die Regel BR-DE-18 prüft allerdings nur die XRechnung, ein reiner ZUGFeRD-Validator nach EN 16931 bemängelt ein falsches Format meist nicht. Trotzdem sollten Sie das #SKONTO#-Muster auch in ZUGFeRD verwenden, weil Buchhaltungssoftware wie DATEV den Skonto nur so erkennt.

Warum erkennt DATEV meinen Skonto nicht?

Weil der Skonto als Freitext in BT-20 steht statt im strukturierten #SKONTO#-Muster. DATEV und andere Programme lesen genau dieses Muster aus. Steht dort ein Satz in Prosa, bleibt das Skontofeld in der Buchung leer, selbst wenn die Rechnung technisch gültig ist. Mehr dazu unter DATEV und E-Rechnung.

PDF-Rechnungen jetzt konvertieren

Testen Sie TaxLayer kostenlos – 2 Konvertierungen pro Monat, keine Kreditkarte.

Jetzt starten