CRATEAPI

BR-DE-18

XRechnung FATAL

This is a German XRechnung rule (BR-DE) - a national requirement added on top of EN 16931 for invoices sent to German public authorities. It commonly concerns contact details, payment information or the buyer reference (Leitweg-ID).

How to fix it
  1. Read the requirement in the rule text below and add the missing element.
  2. Check the buyer reference (BT-10) carries a valid Leitweg-ID.
  3. Seller contact details (phone, email) are mandatory in XRechnung even though EN 16931 makes them optional.
Official rule text
Skonto Zeilen in <xsl:value-of select="name()"/> müssen diesem regulärem Ausdruck entsprechen: <xsl:value-of select="$XR-SKONTO-REGEX"/>. 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.

Developers also reach this page searching for an “XRechnung validation error”, a “German e-invoice rejected” message, or how to correct a failed ZUGFeRD/Factur-X-style check — it's the same issue, explained above.

In short, in English: Cash discount (Skonto) entries in "Payment terms" (BT-20) must follow the prescribed pattern: segments #SKONTO#TAGE=n#PROZENT=n.nn#, optionally #BASISBETRAG=n# as a fourth segment, all in upper case, with no extra whitespace and each entry ending with an XML-conformant line break.

Fix it faster

Paste your invoice XML in our free validator - every finding comes with its rule ID. Then generate, convert and render compliant invoices through one API.

Related rules