Compte
Français

DE-R-019: "Identifiant du compte de paiement" devrait être un IBAN valide si le code 58 SEPA…

Règle nationale Peppol · Avertissement · UBL

NormeRègles par pays Peppol BIS Billing 3.0 (NL, DE, IT, SE, DK, NO, GR, IS)PaysAllemagneGravitéAvertissement: la facture est acceptée mais devrait être corrigéeSyntaxeUBLTermes métier
  • BT-81 Payment means type code
  • BT-84 Payment account identifier
S'applique à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.

Texte officiel de la règle

[DE-R-019] The element "Payment account identifier" (BT-84) should contain a valid IBAN if code 58 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 = (30,58)] | /ubl-creditnote:CreditNote/cac:PaymentMeans[cbc:PaymentMeansCode = (30,58)])[$supplierCountryIsDE and $customerCountryIsDE]

Test (XPath):

not(cbc:PaymentMeansCode = '58') or                     matches(normalize-space(replace(cac:PayeeFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')), '^[A-Z]{2}[0-9]{2}[a-zA-Z0-9]{0,30}$') and                     xs:integer(string-join(for $cp in string-to-codepoints(concat(substring(normalize-space(replace(cac:PayeeFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),5),upper-case(substring(normalize-space(replace(cac:PayeeFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),1,2)),substring(normalize-space(replace(cac:PayeeFinancialAccount/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é.

Vérifier votre facture →

La même vérification par API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Règles liées

Questions fréquentes

Que signifie DE-R-019 ?

DE-R-019 est une règle nationale peppol : The element "Payment account identifier" (BT-84) should contain a valid IBAN if code 58 SEPA is provided in "Payment means type code" (BT-81).

Ma facture sera-t-elle rejetée à cause de DE-R-019 ?

Non. DE-R-019 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-019 ?

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.