Aller au contenu

Ironfang Finance - Référence des règles

BR-51 : Remplacer le numéro de carte complet par ses quatre derniers chiffres

Avertissement : cbc:PrimaryAccountNumberID dépasse 10 caractères, ce qui indique un numéro de carte complet. Envoyez les quatre derniers chiffres ; la facture reste valide.

EN 16931Avertissement : le document reste valideChamps de base

Sur cette page

La réponse courte

BR-51 est un avertissement, signalé lorsque cac:PaymentMeans/cac:CardAccount/cbc:PrimaryAccountNumberID contient plus de 10 caractères une fois les espaces de début et de fin supprimés. Remplacez la valeur par un numéro de carte tronqué : les quatre derniers chiffres suffisent à l'acheteur pour reconnaître la carte utilisée.

Le document reste valide et n'est pas rejeté pour cela. L'avertissement existe parce qu'un numéro de carte complet ne devrait pas circuler dans une facture, qui est stockée et transmise par plusieurs parties ; traitez-le comme un problème de gestion des données, même si la livraison n'est pas bloquée.

Ce que la règle vérifie

La règle lit chaque cbc:PrimaryAccountNumberID d'un cac:CardAccount d'un moyen de paiement et compte ses caractères après suppression des espaces aux extrémités. Dix ou moins passe ; onze ou plus est signalé.

Elle compte les caractères, pas les chiffres. Une valeur masquée comme 411111XXXXXX1111 fait seize caractères et a été signalée lors d'un essai, alors que XXXX1111 ne l'a pas été ; il en allait de même avec des astérisques comme masque.

Les espaces à l'intérieur de la valeur comptent aussi. 4111 1111 1111 1111 a été signalé lors d'un essai, tandis que des espaces autour d'une valeur de dix caractères ont été ignorés.

Rien d'autre n'est examiné dans la valeur : ni si elle est masquée, ni s'il s'agit d'un vrai numéro de carte. Dix chiffres non masqués sont passés sans avertissement lors d'un essai.

Quelle que soit la longueur du numéro, le résultat reste valide. C'est un avertissement de l'étape EN 16931, et l'exemple enregistré réussit toutes les étapes.

TermeSignificationÉlément UBL
BT-81Code de type de moyen de paiementcac:PaymentMeans/cbc:PaymentMeansCode
BT-87Numéro de compte primaire de la carte de paiementcac:PaymentMeans/cac:CardAccount/cbc:PrimaryAccountNumberID

Comment une intégration en arrive là

Causes possibles, déduites de la forme de la règle et non d'une utilisation mesurée :

  • Le numéro de carte est copié d'un enregistrement de commande ou de paiement où il a été saisi en entier, au lieu de la valeur tronquée que renvoie le prestataire de paiement.
  • La chaîne masquée du prestataire, avec un caractère de masquage à la place de chaque chiffre caché, est écrite telle quelle et garde toute sa longueur.
  • Un numéro formaté avec des espaces entre les groupes est utilisé pour le XML comme pour l'affichage.

Comment corriger le document

  1. Prenez les quatre derniers chiffres dans la réponse du prestataire de paiement ou dans sa référence de carte masquée, et non dans un stockage du numéro complet.
  2. N'écrivez que ces chiffres dans cbc:PrimaryAccountNumberID, sans caractères de masquage ni espaces. Laissez cbc:NetworkID et cbc:HolderName tels quels.
  3. Ne supprimez pas l'élément pour faire taire l'avertissement. UBL l'exige dans cac:CardAccount, et son omission a échoué à l'étape XSD lors d'un essai.
  4. Si le numéro complet a atteint le système de facturation, supprimez-le là aussi ; le XML de la facture n'est qu'un des endroits où il serait sinon copié.

Valider votre facture corrigée

Avant et après

Ce sont des extraits, pas des documents complets. Les documents synthétiques complets dont ils proviennent sont liés ci-dessous.

Fragment de la facture avec l'avertissement : le compte de carte porte les seize chiffres d'un numéro de carte de test

<cac:PaymentMeans>
  <cbc:PaymentMeansCode>48</cbc:PaymentMeansCode>
  <cac:CardAccount>
    <cbc:PrimaryAccountNumberID>4111111111111111</cbc:PrimaryAccountNumberID>
    <cbc:NetworkID>VISA</cbc:NetworkID>
    <cbc:HolderName>Example Buyer</cbc:HolderName>
  </cac:CardAccount>
</cac:PaymentMeans>

Fragment de la facture corrigée : seuls les quatre derniers chiffres sont envoyés

<cac:PaymentMeans>
  <cbc:PaymentMeansCode>48</cbc:PaymentMeansCode>
  <cac:CardAccount>
    <cbc:PrimaryAccountNumberID>1111</cbc:PrimaryAccountNumberID>
    <cbc:NetworkID>VISA</cbc:NetworkID>
    <cbc:HolderName>Example Buyer</cbc:HolderName>
  </cac:CardAccount>
</cac:PaymentMeans>

La facture avec l'avertissement porte 4111111111111111, un numéro de carte de test largement publié, là où la facture corrigée porte ses quatre derniers chiffres, 1111 ; rien d'autre ne diffère. Cette facture ne signale que cet avertissement et est valide à toutes les étapes. Avec une vraie carte, le même fichier aurait transmis le numéro complet à tous ceux qui reçoivent ou stockent la facture.

Ce que le validateur a signalé

Enregistré avec phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, le moteur du validateur gratuit, sur des données synthétiques. Un résultat enregistré est une preuve de non-régression pour ces documents ; ce n'est pas une certification.

Où la règle s'applique

  • S'applique aussi bien à Invoice qu'à CreditNote en UBL. Lors d'un essai, un avoir avec un numéro de carte de seize chiffres a donné le même avertissement.
  • La règle n'est pas liée à un code de moyen de paiement : elle s'exécute partout où un cac:CardAccount apparaît. Pour les paiements par carte, utilisez 48 (carte bancaire), 54 (carte de crédit) ou 55 (carte de débit) ; avec le code 30 et un compte de carte, BR-61 a aussi été signalé lors d'un essai, car un virement exige un compte du bénéficiaire.
  • Un cbc:PrimaryAccountNumberID vide ne déclenche pas cet avertissement. Il fait échouer PEPPOL-EN16931-R008, une règle de niveau fatal.
  • EN 16931 fonde cette limite sur les normes de sécurité du secteur des cartes, qui restreignent la part d'un numéro de carte pouvant être affichée. Le validateur ne vérifie que la longueur ; réussir ce contrôle ne dit rien de la conformité à ces normes.

Portée et source

Rédigé pour Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, tel qu'appliqué aux documents Invoice et CreditNote en UBL 2.1. D'autres profils, syntaxes et versions peuvent définir cet identifiant autrement. Version du catalogue d'aide 2026-09-24.1 : source vérifiée le 2026-09-24, explication mise à jour le 2026-09-24.

La définition officielle de BR-51 (en anglais) contient le texte normatif et le test. Cette page en est notre explication, pas une copie.

Cette aide ne modifie pas le verdict du moteur. Corriger ce constat ne signifie pas que le document passe toutes les étapes de validation, et la validation ne certifie pas la conformité juridique ou fiscale et ne transmet aucun document via Peppol.