# 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.

- [XML doğrula](/tr/xrechnung-validator?source=resource&rule=BR-51)
- [Faturayı dönüştür](/tr/pdf-to-xrechnung?source=resource&rule=BR-51)

## 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

- [BT-87 Ödeme kartı birincil hesap numarası](/resources/xrechnung/bt-87-payment-card-primary-account-number)

## İlgili kurallar

- [BR-49](/resources/kosit-validator-errors/br-49-payment-means-type-code-required)

## Doğrulama araçları

- [Resmi KoSIT doğrulayıcı](https://github.com/itplr-kosit/validator): EN 16931 ve XRechnung kurallarını denetlemek için resmi KoSIT doğrulayıcısını XRechnung yapılandırmasıyla çalıştırın.
- [PDF’yi XRechnung’e dönüştür](/pdf-to-xrechnung): Dönüştürme sırasında doğrulama hatalarını bulun ve her düzeltmeyi inceleyin.

## İlgili kaynaklar

- [Resmi spesifikasyon](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Test paketi](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Tüm doğrulama hataları](/resources/kosit-validator-errors): Burada açıklanan EN 16931, XRechnung ve Peppol doğrulama kurallarına genel bakış.
