DE-R-018:Invalid Skonto format. Cash discount terms in German invoices must follow the format: #SKONTO#TAGE=N#PROZENT=N.NN# with
Fix: Invalid Skonto format. Cash discount terms in German invoices must follow the format: #SKONTO#TAGE=N#PROZENT=N.NN# with optional #BASISBETRAG=N#. Must be uppercase with no extra whitespace.
Invalid Skonto format. Cash discount terms in German invoices must follow the format: #SKONTO#TAGE=N#PROZENT=N.NN# with optional #BASISBETRAG=N#. Must be uppercase with no extra whitespace.
Engine Classification
Requires user confirmation before application
What is DE-R-018?
DE-R-018 is a fatal validation rule defined in the PEPPOL_BIS specification (DEU national rules). It validates the StreetName element under Party > PostalAddress in the UBL invoice XML.
When this rule fires, the invoice is rejected by Peppol access points and never reaches the buyer.
Target path: //cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:StreetName
Why This Error Matters
Invoice will be rejected by German XRechnung validators. German e-invoicing has specific format requirements for payment details, contact information, and attachments.
DE-R-018 is a hard failure — the invoice must be corrected and re-sent before it can reach the recipient.
Validator Behavior
- ·Causes invoice rejection
- ·Rejected by PEPPOL Access Points
- ·Rejected by XRechnung endpoints
- ·Error returned: DE-R-018
- ·Specification: PEPPOL_BIS
How to Fix It
Find the missing or empty field
Check cbc:StreetName at //cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:StreetName. This field is required but is either missing or empty.
Set the required value
Invalid Skonto format. Cash discount terms in German invoices must follow the format: #SKONTO#TAGE=N#PROZENT=N.NN# with optional #BASISBETRAG=N#. Must be uppercase with no extra whitespace.
Re-validate your invoice
Upload the corrected invoice to confirm DE-R-018 is resolved.
XML Example
Generic example based on the rule's target XPath. Your actual XML structure may differ.
<!-- Missing or empty element triggers cbc:StreetName error --> <cbc:StreetName></cbc:StreetName>
<!-- Provide the required value --> <cbc:StreetName>VALID_VALUE</cbc:StreetName>
Technical Reference
//cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:StreetNameCommon Causes
- ·Skonto (cash discount) format incorrect in payment terms
- ·BT-20 must use exact format: #SKONTO#TAGE=N#PROZENT=N.NN#
- ·German cash discount syntax not followed
- ·Percentage must have dot separator with 2 decimal places
- ·Additional whitespace or invalid characters in Skonto text
Seeing this in production? The API handles DE-R-018 automatically. See the fix response →
Frequently Asked Questions
Invalid Skonto format. Cash discount terms in German invoices must follow the format: #SKONTO#TAGE=N#PROZENT=N.NN# with optional #BASISBETRAG=N#. Must be uppercase with no extra whitespace.
Invalid Skonto format. Cash discount terms in German invoices must follow the format: #SKONTO#TAGE=N#PROZENT=N.NN# with optional #BASISBETRAG=N#. Must be uppercase with no extra whitespace. You can also use Invoice Navigator's compliance engine to correct this automatically in your pipeline.
Yes, DE-R-018 is a critical error that will cause invoice rejection. It must be fixed before submission.
Many instances of DE-R-018 can be automatically corrected using Invoice Navigator's compliance engine. The fix is applied in your pipeline with full audit evidence.
Related Content
Last updated: 14 April 2026
Validate your invoice
Drop your XML here to check for DE-R-018
Fix DE-R-018 with one click
Upload your invoice and we'll suggest a fix for your review before applying it.