# BR-DE-23-a Credit transfer payment means require the credit transfer group (BG-17)

Under the German XRechnung rule BR-DE-23-a, every payment means with a credit transfer code in BT-81 (30 = credit transfer, 58 = SEPA credit transfer) must contain the credit transfer group BG-17. BG-17 holds the payment account identifier BT-84 (usually the IBAN), the optional account name BT-85 and the optional payment service provider identifier BT-86 (BIC). The validator checks each payment means separately: in UBL it looks for cac:PayeeFinancialAccount inside the cac:PaymentMeans element, in CII for ram:PayeePartyCreditorFinancialAccount inside ram:SpecifiedTradeSettlementPaymentMeans. KoSIT flags a missing BG-17 as fatal, so the invoice is not valid.

## Problem Description

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

## Context and Significance

The error usually appears when an export writes payment means code 58 but keeps the bank details only in free text, such as the payment terms (BT-20) or an invoice note, or writes the account into a different payment means element. The buyer’s accounts payable system then has no structured account to pay into. BR-DE-23-a checks only that BG-17 is present: BR-50 requires the account identifier BT-84 inside BG-17, and BR-DE-19 reports a BT-84 value that is not a valid IBAN when code 58 is used.

## Solution

Store the seller’s bank account in your ERP or invoicing tool and export it with every credit transfer payment means. In UBL 2.1, add <cac:PayeeFinancialAccount><cbc:ID>DE89370400440532013000</cbc:ID></cac:PayeeFinancialAccount> inside the <cac:PaymentMeans> that has <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>. In CII, add <ram:PayeePartyCreditorFinancialAccount><ram:IBANID>DE89370400440532013000</ram:IBANID></ram:PayeePartyCreditorFinancialAccount> inside the <ram:SpecifiedTradeSettlementPaymentMeans> with <ram:TypeCode>58</ram:TypeCode>; use ram:ProprietaryID for an account number that is not an IBAN. If the buyer does not pay by credit transfer, set BT-81 to the code of the payment means that is actually used.

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

## Valid Examples

- BT-81 = 58 (SEPA credit transfer) with BG-17 and BT-84 = "DE89370400440532013000"
- BT-81 = 30 (credit transfer) with BG-17 and a non-IBAN account number in BT-84

## Invalid Examples

- BT-81 = 58, but the IBAN appears only in the payment terms text (BT-20)
- BT-81 = 30 and cac:PaymentMeans contains only cbc:PaymentMeansCode and cbc:PaymentID, without cac:PayeeFinancialAccount

## Code Examples

### Valid XML
```
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cbc:PaymentID>RE-2026-0042</cbc:PaymentID>
  <cac:PayeeFinancialAccount>
    <cbc:ID>DE89370400440532013000</cbc:ID>
    <cbc:Name>Lieferant GmbH</cbc:Name>
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>
```

### Invalid XML
```
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cbc:PaymentID>RE-2026-0042</cbc:PaymentID>
</cac:PaymentMeans>
```

## Affected Fields

- [BT-81 Payment means type code](/resources/xrechnung/bt-81-payment-means-type-code)
- [BG-17 Credit transfer](/resources/xrechnung/bt-84-payment-account-identifier)
- [BT-84 Payment account identifier](/resources/xrechnung/bt-84-payment-account-identifier)

## Related Rules

- [BR-DE-23-b](/resources/kosit-validator-errors/br-de-23-b-credit-transfer-excludes-card-and-direct-debit)
- [BR-50](/resources/kosit-validator-errors/br-50-credit-transfer-account-identifier-required)
- [BR-61](/resources/kosit-validator-errors/br-61-credit-transfer-account-required)
- [BR-DE-19](/resources/kosit-validator-errors/br-de-19-sepa-payment-account-must-be-valid-iban)

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