EN16931 / XRechnung / Peppol BIS 3 Validator

DE-R-018: If both supplier and customer are located in Germany, information on cash…

fatal UBL

What this error means and how to fix it

A national rule of Peppol BIS Billing 3.0 for the country in the rule prefix (for example NO, DK, IT, SE, GR): it usually applies when the seller is in that country. This is an error: the invoice is rejected until it is fixed.

Check your invoice against DE-R-018 — free

Runs the KoSIT validator 1.6.3, unmodified · result in seconds · the file is not stored · No file at hand? Try a sample invoice

This error needs information only you have, so it is not repaired automatically. The free check shows every finding in the file with its location; if other errors in the same file are in the automatic set (totals, VAT breakdown, rounding, element order), the result page offers the corrected file for 9 €.

Rule text

[DE-R-018]-If both supplier and customer are located in Germany, information on cash discounts for prompt payment (Skonto) shall be provided within the element "Payment terms" BT-20 in the following way: First segment "SKONTO", second segment amount of days ("TAGE=N"), third segment percentage ("PROZENT=N"). Percentage must be separated by dot with two decimal places. In case the base value of the invoiced amount is not provided in BT-115 but as a partial amount, the base value shall be provided as fourth segment "BASISBETRAG=N" as semantic data type amount. Each entry shall start with a #, the segments must be separated by # and a row shall end with a #. A complete statement on cash discount for prompt payment shall end with a XML-conformant line break. All statements on cash discount for prompt payment shall be given in capital letters. Additional whitespaces (blanks, tabulators or line breaks) are not allowed. Other characters or texts than defined above are not allowed.
Where the rule is checked (XPath context and test)
SyntaxSeverityContext (XPath)Test (XPath)
Peppol-UBLfatal(/ubl-invoice:Invoice | /ubl-creditnote:CreditNote)[$supplierCountryIsDE and $customerCountryIsDE]every $line in cac:PaymentTerms/cbc:Note[1]/tokenize(. , '(\r?\n)')[starts-with( normalize-space(.) , '#')] satisfies matches ( normalize-space ($line), $XR-SKONTO-REGEX) and matches( cac:PaymentTerms/cbc:Note[1]/tokenize(. , '#.+#')[last()], '^\s*\n' )

Business terms referenced

BT-20, BT-115

Related rules

BR-DE-18, BR-15, BR-CO-16, BR-DEC-18, BR-DEX-09

Source: Peppol BIS Billing 3.0 Schematron, UBL (OpenPeppol, docs.peppol.eu validation artefacts 3.0.21).

Check your invoice against this rule