errorcountryDEUPEPPOL_BIS

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.

Severity
Fatal
Rule set
PEPPOL_BIS
Country
DEU
Fix type
CONFIRM
Confidence
80%
Category
structural

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

1.

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.

2.

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.

3.

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.

Before
<!-- Missing or empty element triggers cbc:StreetName error -->
<cbc:StreetName></cbc:StreetName>
After
<!-- Provide the required value -->
<cbc:StreetName>VALID_VALUE</cbc:StreetName>

Technical Reference

XPath//cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:StreetName
SpecPEPPOL_BIS
Operationset_default
StrategyEnsure seller street name is present for XRechnung compliance

Common 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

Share this guide:

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.