Fixture ID: badSkonto · XPath: /ubl:Invoice/cac:PaymentTerms/cbc:Note
Line 1 of the payment terms (BT-20) starts with "#", which marks it as a Skonto (early-payment discount) entry, but "#SKONTO#TAGE=14#PROZENT=2#" does not match the grammar XRechnung prescribes. The format is rigid on purpose — it is the one place the standard turns free-text payment terms into something machine-readable — and it is: #SKONTO#TAGE=n#PROZENT=n.nn# with an optional fourth segment #BASISBETRAG=n.nn# before the closing #. Every segment is separated and terminated by "#", everything is upper case, the percentage carries exactly two decimals with a dot (never a comma) and no sign, and no whitespace of any kind is allowed inside the entry.
BR-DE-18Write each discount as its own line, e.g. "#SKONTO#TAGE=14#PROZENT=2.00#". Add the base amount only when the discount applies to part of the invoice rather than to the full amount due (BT-115): "#SKONTO#TAGE=14#PROZENT=2.00#BASISBETRAG=1000.00#". Each entry must end with a newline. Human-readable prose is fine in BT-20 as well — it just must not start a line with "#".
"paymentTerms": "Zahlbar innerhalb von 30 Tagen.\n#SKONTO#TAGE=14#PROZENT=2.00#\n"