BT-81Payment means type codeBT-91Debited account identifier
Texte officiel de la règle
[DE-R-020] The element "Debited account identifier" (BT-91) should contain a valid IBAN if code 59 SEPA is provided in "Payment means type code" (BT-81).
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/cac:PaymentMeans[cbc:PaymentMeansCode = 59] | /ubl-creditnote:CreditNote/cac:PaymentMeans[cbc:PaymentMeansCode = 59])[$supplierCountryIsDE and $customerCountryIsDE]Test (XPath):
not(cbc:PaymentMeansCode = '59') or matches(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')), '^[A-Z]{2}[0-9]{2}[a-zA-Z0-9]{0,30}$') and xs:decimal(string-join(for $cp in string-to-codepoints(concat(substring(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),5),upper-case(substring(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),1,2)),substring(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),3,2))) return (if($cp > 64) then string($cp - 55) else string($cp - 48)),'')) mod 97 = 1
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-019"Identifiant du compte de paiement" devrait être un IBAN valide si le code 58 SEPA…DE-R-031Si le groupe "PRÉLÈVEMENT" est fourni, l'élément "Identifiant du compte débité"…DE-R-023-1Si "Code du moyen de paiement" indique un virement (30, 58), "VIREMENT…DE-R-023-2Si "Code du moyen de paiement" indique un virement (30, 58), BG-18 et…DE-R-024-1Si "Code du moyen de paiement" indique une carte de paiement (48, 54, 55), "CARTE DE…DE-R-024-2Si "Code du moyen de paiement" indique une carte de paiement (48, 54, 55), BG-17 et…DE-R-025-1Si "Code du moyen de paiement" indique un prélèvement (59), "PRÉLÈVEMENT"…DE-R-025-2Si "Code du moyen de paiement" indique un prélèvement (59), BG-17 et BG-18…
Questions fréquentes
Que signifie DE-R-020 ?
DE-R-020 est une règle nationale peppol : The element "Debited account identifier" (BT-91) should contain a valid IBAN if code 59 SEPA is provided in "Payment means type code" (BT-81).
Ma facture sera-t-elle rejetée à cause de DE-R-020 ?
Non. DE-R-020 est un avertissement : la facture est acceptée mais le destinataire voit la remarque. Corrigez-la quand même, les avertissements deviennent souvent des erreurs dans les versions suivantes.
À quels formats s'applique DE-R-020 ?
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.