# BR-DE-19 SEPA payment account should contain a valid IBAN

For SEPA credit transfer payment means, the payment account identifier should be a syntactically valid IBAN.

## Problem Description

For SEPA credit transfer payment means, the payment account identifier should be a syntactically valid IBAN.

> **ERROR**: XRechnung 3.0

## Context and Significance

Many exports carry bank details as display text. Validators expect the structured account field to contain only the routable identifier.

## Solution

Normalize spaces, remove labels such as IBAN:, and store only the IBAN value in BT-84.

- validate
- convert

## Valid Examples

- DE89370400440532013000

## Invalid Examples

- IBAN: DE89 3704 0044 0532 0130 00
- Example Bank checking account

## Code Examples

### Valid XML
```
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cac:PayeeFinancialAccount>
    <cbc:ID>DE89370400440532013000</cbc:ID>
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>
```

### Invalid XML
```
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cac:PayeeFinancialAccount>
    <cbc:ID>IBAN: DE89 3704 0044 0532 0130 00</cbc:ID>
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>
```

## Technical Details

### Affected Fields
BT-81 Payment means type code, BT-84 Payment account identifier

## Related Rules

- [BR-61](/resources/kosit-validator-errors/br-61-credit-transfer-account-required)

## Validation Tools

- [Official KoSIT Validator](https://erechnungsvalidator.service-bw.de/): Validate your XRechnung files against all BR-DE rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Automatic validation error fixes when converting.

## Related Resources

- [Official Specification](https://xeinkauf.de/xrechnung/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Complete Error List](/resources/kosit-validator-errors): Overview of all German XRechnung validation rules.
