Ana içeriğe atla

BR-51 Kart birincil hesap numarası maskelenmelidir

Kart ödeme güvenlik standartlarına göre fatura, tam kart birincil hesap numarasını (BT-87) asla içermemelidir; PCI kuralları en fazla ilk 6 ve son 4 haneye izin verir.

Sorun açıklaması

UYARI

EN 16931 temel iş kuralı (CEN)

Bağlam ve önem

Bu, önem derecesi sözdizimine bağlı olan bir EN 16931 temel kuralıdır: doğrulama yapıtları kuralı UBL için uyarı, CII için ölümcül hata olarak raporlar. Kart verilerini korur: bir fatura birçok sistemden geçer ve yıllarca arşivlenir, bu nedenle kullanılabilir bir kart numarasını asla göstermemelidir. Doğrulayıcı, ortadaki haneler yıldızla maskelenmiş olsa bile değer 10 karakterden uzun olduğunda BT-87 için uyarı verir. Uyarı, bir ERP veya ödeme sağlayıcısı tam ya da maskelenmiş kart numarasını dışa aktardığında ortaya çıkar.

Çözüm

cac:CardAccount/cbc:PrimaryAccountNumberID (CII: ram:ApplicableTradeSettlementFinancialCard/ram:ID) alanını en fazla 10 karakterle, tercihen yalnızca kartın son 4 hanesiyle ve maskeleme karakteri olmadan doldurun. Schematron, maskelenmiş 16 karakterlik bir numara dahil, 10 karakterden uzun her değer için uyarı verir.

Hızlı işlemler

Geçerli örnekler

  • BT-87 = 1881 (yalnızca son 4 hane)

Geçersiz örnekler

  • BT-87 = 4012888888881881 (tam kart numarası açık)
  • BT-87 = 401288******1881 (maskeli, ancak 16 karakterle 10’dan uzun)

Kod örnekleri

Geçerli XML
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>48</cbc:PaymentMeansCode>
  <cac:CardAccount>
    <cbc:PrimaryAccountNumberID>1881</cbc:PrimaryAccountNumberID>
    <cbc:NetworkID>VISA</cbc:NetworkID>
  </cac:CardAccount>
</cac:PaymentMeans>
Geçersiz XML
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>48</cbc:PaymentMeansCode>
  <cac:CardAccount>
    <cbc:PrimaryAccountNumberID>401288******1881</cbc:PrimaryAccountNumberID>
    <cbc:NetworkID>VISA</cbc:NetworkID>
  </cac:CardAccount>
</cac:PaymentMeans>

Etkilenen alanlar

Doğrulama araçları