Referenz
Markdown-ExportBR-51 Kartennummer muss maskiert sein
Gemäß den Sicherheitsstandards für Kartenzahlungen darf die Rechnung niemals eine vollständige Kartennummer (BT-87) enthalten; PCI-Regeln erlauben höchstens die ersten 6 und die letzten 4 Ziffern.
Problembeschreibung
WARNUNG
Geschäftsregel der EN 16931 (CEN)
Kontext und Bedeutung
Dies ist eine Kernregel der EN 16931, deren Schweregrad von der Syntax abhängt: Die Validierungsartefakte melden sie für UBL als Warnung und für CII als fatalen Fehler. Sie schützt Kartendaten: Eine Rechnung durchläuft mehrere Systeme und wird jahrelang archiviert, darf also nie eine verwendbare Kartennummer zeigen. Der Validator meldet BT-87, sobald der Wert länger als 10 Zeichen ist, auch wenn die mittleren Ziffern mit Sternchen maskiert sind. Die Meldung erscheint, wenn ein ERP oder Zahlungsdienstleister die vollständige oder maskierte Kartennummer exportiert.
Lösung
Befüllen Sie cac:CardAccount/cbc:PrimaryAccountNumberID (CII: ram:ApplicableTradeSettlementFinancialCard/ram:ID) mit höchstens 10 Zeichen, am besten nur mit den letzten 4 Ziffern der Karte und ohne Maskierungszeichen. Das Schematron warnt bei jedem Wert über 10 Zeichen, auch bei einer maskierten 16-stelligen Nummer.
Schnellzugriff
Gültige Beispiele
- BT-87 = 1881 (nur die letzten 4 Ziffern)
Ungültige Beispiele
- BT-87 = 4012888888881881 (vollständige Kartennummer)
- BT-87 = 401288******1881 (maskiert, aber mit 16 Zeichen länger als 10)
Code-Beispiele
<cac:PaymentMeans>
<cbc:PaymentMeansCode>48</cbc:PaymentMeansCode>
<cac:CardAccount>
<cbc:PrimaryAccountNumberID>1881</cbc:PrimaryAccountNumberID>
<cbc:NetworkID>VISA</cbc:NetworkID>
</cac:CardAccount>
</cac:PaymentMeans><cac:PaymentMeans>
<cbc:PaymentMeansCode>48</cbc:PaymentMeansCode>
<cac:CardAccount>
<cbc:PrimaryAccountNumberID>401288******1881</cbc:PrimaryAccountNumberID>
<cbc:NetworkID>VISA</cbc:NetworkID>
</cac:CardAccount>
</cac:PaymentMeans>