Aller au contenu principal

Référence

Export Markdown

BR-51 Le numéro de carte de paiement (PAN) doit être masqué

Conformément aux normes de sécurité des paiements par carte, la facture ne doit jamais inclure un numéro de carte complet (BT-87) ; selon le PCI Security Standards Council, au maximum les 6 premiers et les 4 derniers chiffres peuvent figurer sur la facture.

Description du problème

AVERTISSEMENT

Règle métier de la norme EN 16931 (CEN)

Contexte et importance

Il s’agit d’une règle de base de la norme EN 16931 dont la gravité dépend de la syntaxe : avertissement en UBL, erreur bloquante en CII. Il protège les données de carte : une facture circule entre plusieurs systèmes et ne doit jamais exposer un numéro de carte exploitable. Le message apparaît quand l’ERP exporte le numéro complet ou un numéro masqué de plus de 10 caractères, même si les chiffres du milieu sont remplacés par des astérisques.

Solution

Dans cac:CardAccount/cbc:PrimaryAccountNumberID (CII : ram:ApplicableTradeSettlementFinancialCard/ram:ID), n’indiquez que les derniers chiffres de la carte, par exemple les 4 derniers, sans caractères de masquage : le Schematron signale tout numéro de plus de 10 caractères, y compris un numéro masqué de 16 caractères.

Actions rapides

Exemples valides

  • BT-87 = 1881 (4 derniers chiffres uniquement)

Exemples invalides

  • BT-87 = 4012888888881881 (numéro complet exposé)
  • BT-87 = 401288******1881 (masqué, mais 16 caractères, soit plus de 10)

Exemples de code

XML valide
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>48</cbc:PaymentMeansCode>
  <cac:CardAccount>
    <cbc:PrimaryAccountNumberID>1881</cbc:PrimaryAccountNumberID>
    <cbc:NetworkID>VISA</cbc:NetworkID>
  </cac:CardAccount>
</cac:PaymentMeans>
XML invalide
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>48</cbc:PaymentMeansCode>
  <cac:CardAccount>
    <cbc:PrimaryAccountNumberID>401288******1881</cbc:PrimaryAccountNumberID>
    <cbc:NetworkID>VISA</cbc:NetworkID>
  </cac:CardAccount>
</cac:PaymentMeans>

Champs concernés

Outils de validation