BT-20Payment termsBT-115Amount due for payment
Texte officiel de la règle
[DE-R-018] 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.
Le texte normatif est en anglais ; il est cité tel quel.
Pourquoi cette erreur apparaît
La valeur est présente mais ne respecte pas le format attendu : format de date incorrect, IBAN avec une mauvaise clé, adresse e-mail mal formée, URL sans schéma, ou texte contenant des caractères interdits.
Comment corriger
Corrigez la valeur selon le format cité dans la règle : dates en AAAA-MM-JJ en UBL et AAAAMMJJ avec format="102" en CII, IBAN sans espaces et avec une clé valide, adresse e-mail avec un seul @, URL commençant par http:// ou https://.
Ce que le validateur vérifie
Élément vérifié (contexte):
UBL
(/ubl-invoice:Invoice | /ubl-creditnote:CreditNote)[$supplierCountryIsDE and $customerCountryIsDE]Test (XPath):
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' )
Vérifier votre facture
Déposez votre XML ou PDF dans le validateur : chaque règle en échec renvoie vers sa page ici. Gratuit, sans compte, le fichier n'est pas conservé.
La même vérification par API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRègles liées
DE-R-001Une facture doit contenir des informations "INSTRUCTIONS DE PAIEMENT"DE-R-002Le groupe "CONTACT DU VENDEUR" doit être fourniDE-R-003L'élément "Ville du vendeur" doit être fourniDE-R-004L'élément "Code postal du vendeur" doit être fourniDE-R-005L'élément "Point de contact du vendeur" doit être fourniDE-R-006L'élément "Téléphone du contact vendeur" doit être fourniDE-R-007L'élément "E-mail du contact vendeur" doit être fourniDE-R-008L'élément "Ville de l'acheteur" doit être fourni
Questions fréquentes
Que signifie DE-R-018 ?
DE-R-018 est une règle nationale peppol : 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.
Ma facture sera-t-elle rejetée à cause de DE-R-018 ?
Oui. DE-R-018 est classée « bloquante » ; les validateurs (plateformes agréées, points d'accès Peppol, KoSIT, KSeF) rejettent la facture tant qu'elle n'est pas corrigée.
À quels formats s'applique DE-R-018 ?
Uniquement lorsque le vendeur (ou pour certaines règles l'acheteur) est établi dans le pays indiqué ; le déclencheur est le code pays de la partie. Syntaxe : UBL.
Source: Peppol BIS Billing 3.0.20 national rules (November 2025). Catalogue généré à partir des jeux de règles officiels le 2026-10-15.