# BR-DE-23-b Credit transfer payment means must not contain card (BG-18) or direct debit (BG-19) data

Under the German XRechnung rule BR-DE-23-b, a payment means with a credit transfer code in BT-81 (30 or 58) must not also contain payment card information (BG-18) or direct debit information (BG-19). XRechnung ties each payment means code to one payment group: BR-DE-23 covers credit transfer, BR-DE-24 payment cards and BR-DE-25 direct debit. In UBL, the validator reports the error when cac:CardAccount or cac:PaymentMandate appears inside the same cac:PaymentMeans. In CII, it reports the error when the payment means contains ram:ApplicableTradeSettlementFinancialCard or ram:PayerPartyDebtorFinancialAccount/ram:IBANID, or when the header settlement contains a mandate reference (ram:DirectDebitMandateID, BT-89) or a creditor identifier (ram:CreditorReferenceID, BT-90). KoSIT flags the error as fatal.

## Problem Description

> **ERROR**: German XRechnung rule (KoSIT, BR-DE) · XRechnung 3.0

## Context and Significance

The error usually comes from ERP templates that fill every payment field from the customer master data, for example a stored SEPA mandate or the creditor identifier, although the invoice is paid by transfer. In UBL, the check is limited to the cac:PaymentMeans element with the credit transfer code. In CII, BT-89 and BT-90 sit at header level, so a CII invoice that offers a credit transfer (30 or 58) fails BR-DE-23-b as soon as it also carries a mandate reference or a creditor identifier.

## Solution

Decide which payment method the invoice offers and export only its group. For a credit transfer, keep BG-17 with the account in BT-84 and remove card and mandate data: in UBL, delete cac:CardAccount and cac:PaymentMandate from the <cac:PaymentMeans> with code 30 or 58. In CII, delete ram:ApplicableTradeSettlementFinancialCard and ram:PayerPartyDebtorFinancialAccount from the payment means and remove ram:DirectDebitMandateID and ram:CreditorReferenceID from the header settlement. If the buyer pays by SEPA direct debit, set BT-81 to 59 and send BG-19 instead of BG-17.

- [Validate XML](/en/xrechnung-validator?source=resource&rule=BR-DE-23-b)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&rule=BR-DE-23-b)

## Valid Examples

- BT-81 = 58 with BG-17 (IBAN in BT-84) and no card or mandate data in the same payment means
- CII: TypeCode 30 with BG-17 and no ram:DirectDebitMandateID or ram:CreditorReferenceID in the header settlement

## Invalid Examples

- UBL: cac:PaymentMeans with code 58 contains cac:PayeeFinancialAccount and also cac:PaymentMandate with a mandate reference
- CII: payment means with TypeCode 58, but ram:CreditorReferenceID (BT-90) in the header settlement is filled from the master data
- UBL: code 30 together with cac:CardAccount holding the last four card digits

## 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>DE89370400440532013000</cbc:ID>
  </cac:PayeeFinancialAccount>
  <cac:PaymentMandate>
    <cbc:ID>MANDATE-2026-001</cbc:ID>
  </cac:PaymentMandate>
</cac:PaymentMeans>
```

## Affected Fields

- [BT-81 Payment means type code](/resources/xrechnung/bt-81-payment-means-type-code)
- [BG-18 Payment card information](/resources/xrechnung/bt-87-payment-card-primary-account-number)
- [BG-19 Direct debit](/resources/xrechnung/bt-89-mandate-reference-identifier)

## Related Rules

- [BR-DE-23-a](/resources/kosit-validator-errors/br-de-23-a-credit-transfer-requires-credit-transfer-group)
- [BR-DE-30](/resources/kosit-validator-errors/br-de-30-direct-debit-requires-creditor-identifier)
- [BR-DE-31](/resources/kosit-validator-errors/br-de-31-direct-debit-requires-debited-account)
- [PEPPOL-EN16931-R061](/resources/kosit-validator-errors/peppol-en16931-r061-direct-debit-mandate-reference-required)

## Validation Tools

- [Official KoSIT Validator](https://github.com/itplr-kosit/validator): Run the official KoSIT validator with the XRechnung configuration to check EN 16931 and XRechnung rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Find validation errors during conversion and review each correction.

## Related Resources

- [Official Specification](https://xeinkauf.de/xrechnung/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [All validation errors](/resources/kosit-validator-errors): Overview of the EN 16931, XRechnung and Peppol validation rules explained here.
