What does BR-DE-18 mean?
Cash discount lines must match this regular expression: . The information granting a cash discount must be carried in the element "Payment terms" (BT-20) as follows: the first segment states "SKONTO", the second "TAGE=n", the third "PROZENT=n". State percentages without a sign and with two decimal places separated by a dot. If the amount to be calculated is not based on BT-115, "Amount due for payment", but only on part of the invoice amount due, state the base value for the cash discount as a fourth segment "BASISBETRAG=n" following the semantic data type Amount. Every entry starts with a #, the segments are separated by a # and a line ends with a #. A complete cash discount statement must be followed by an XML-conformant line break. Write all cash discount details in capital letters. Extra whitespace (spaces, tabs or line breaks) is not allowed. Characters or text other than those named above are not allowed. This is a national KoSIT rule (XRechnung) that goes beyond EN 16931 and is mandatory for German e-invoices.
Common causes of BR-DE-18
- The element required by the German KoSIT rule is missing from the XML.
- The value appears only in the PDF, not in the structured data set.
- The entry was left empty.
How to fix BR-DE-18
- Find the faulty spot in the XML. Open the XML of the invoice and go to field BT-20 along this XPath:
//ram:SpecifiedTradePaymentTerms/ram:Description - Apply the fix. State the cash discount / payment terms (BT-20) in the prescribed format in 'ram:SpecifiedTradePaymentTerms/ram:Description' (#SKONTO#TAGE=..#PROZENT=..#).
- Validate again. Save the file and validate it again to check that BR-DE-18 is no longer reported.
State the cash discount / payment terms (BT-20) in the prescribed format in 'ram:SpecifiedTradePaymentTerms/ram:Description' (#SKONTO#TAGE=..#PROZENT=..#).
//ram:SpecifiedTradePaymentTerms/ram:DescriptionFrequent questions about BR-DE-18
How do I fix BR-DE-18?
Related error codes
Check BR-DE-18 automatically
Instead of digging through the XML by hand you can validate your ZUGFeRD or XRechnung file online – upload the PDF or the XML and you get every error with rule ID, affected field, fix and XPath, as a readable report or as JSON through the API.