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

- [XML validieren](/de/xrechnung-validator?source=resource&rule=BR-51)
- [Rechnung konvertieren](/de/pdf-to-xrechnung?source=resource&rule=BR-51)

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

### Gültiges XML
```
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>48</cbc:PaymentMeansCode>
  <cac:CardAccount>
    <cbc:PrimaryAccountNumberID>1881</cbc:PrimaryAccountNumberID>
    <cbc:NetworkID>VISA</cbc:NetworkID>
  </cac:CardAccount>
</cac:PaymentMeans>
```

### Ungültiges 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>
```

## Betroffene Felder

- [BT-87 Kartennummer der Zahlungskarte](/resources/xrechnung/bt-87-payment-card-primary-account-number)

## Verwandte Regeln

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

## Validierungstools

- [Offizieller KoSIT Validator](https://github.com/itplr-kosit/validator): Führen Sie den offiziellen KoSIT-Validator mit der XRechnung-Konfiguration aus, um EN-16931- und XRechnung-Regeln zu prüfen.
- [PDF zu XRechnung konvertieren](/pdf-to-xrechnung): Validierungsfehler beim Konvertieren erkennen, prüfen und gezielt beheben.

## Verwandte Ressourcen

- [Offizielle Spezifikation](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Testsuite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Alle Validierungsfehler](/resources/kosit-validator-errors): Übersicht der hier erklärten Validierungsregeln aus EN 16931, XRechnung und Peppol.
