Account
English

BR-DE-23-a: Credit transfer selected but no payee account (BG-17)

XRechnung rule · Error · UBL / CII

StandardXRechnung 3.0.2 (KoSIT, German CIUS of EN 16931)SeverityError: the invoice is rejectedSyntaxUBL, CIIBusiness terms
  • BG-17 Credit transfer
  • BT-81 Payment means type code
Applies toXRechnung in UBL or CII syntax, including ZUGFeRD / Factur-X PDFs with the XRECHNUNG profile. Invoices to German public authorities (federal, state and municipal) must pass it.

Official rule text

[BR-DE-23-a] If BT-81 "Payment means type code" contains a code for credit transfers (30, 58), BG-17 "CREDIT TRANSFER" must be transmitted.

Official text (German): Wenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), muss BG-17 "CREDIT TRANSFER" übermittelt werden.

Why this error occurs

If the payment means type code (BT-81) is 30 (credit transfer) or 58 (SEPA credit transfer), XRechnung requires the credit transfer group BG-17 with the payee's account. The rule looks for cac:PayeeFinancialAccount inside the cac:PaymentMeans with that code (UBL) or ram:PayeePartyCreditorFinancialAccount inside ram:SpecifiedTradeSettlementPaymentMeans (CII). Without an account the authority cannot pay. It typically fails when the bank data is missing in the master data or the exporter writes only the code.

How to fix it

In UBL add cac:PayeeFinancialAccount to the cac:PaymentMeans with cbc:ID (IBAN, BT-84), optionally cbc:Name (account holder, BT-85) and cac:FinancialInstitutionBranch/cbc:ID (BIC, BT-86). In CII add ram:PayeePartyCreditorFinancialAccount with ram:IBANID and ram:AccountName, plus ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID if needed. For code 58 the IBAN must be valid (BR-DE-19). Do not add card or direct debit groups to a credit transfer (BR-DE-23-b).

Example (valid)

<cac:PaymentMeans>
  <cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
  <cac:PayeeFinancialAccount>
    <cbc:ID>DE89370400440532013000</cbc:ID>
    <cbc:Name>Muster GmbH</cbc:Name>
    <cac:FinancialInstitutionBranch><cbc:ID>COBADEFFXXX</cbc:ID></cac:FinancialInstitutionBranch>
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>

What the validator checks

Checked element (context):

UBL

/ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('30','58')] | /cn:CreditNote/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('30','58')]

Test (XPath):

cac:PayeeFinancialAccount

CII

/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans[normalize-space(ram:TypeCode) = ('30','58')]

Test (XPath):

ram:PayeePartyCreditorFinancialAccount

Check your invoice

Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.

Check your invoice →

Same check via API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Related rules

Frequently asked questions

What does BR-DE-23-a mean?

BR-DE-23-a is a xrechnung rule: If BT-81 "Payment means type code" contains a code for credit transfers (30, 58), BG-17 "CREDIT TRANSFER" must be transmitted.

Will my invoice be rejected because of BR-DE-23-a?

Yes. BR-DE-23-a is flagged "fatal"; validators (KoSIT, Peppol access points, the German ZRE/OZG-RE portals) reject the invoice until it is fixed.

Which formats does BR-DE-23-a apply to?

XRechnung in UBL or CII syntax, including ZUGFeRD / Factur-X PDFs with the XRECHNUNG profile. Invoices to German public authorities (federal, state and municipal) must pass it. Syntax: UBL and CII.

Source: XRechnung 3.0.2, schematron 2.6.0 (KoSIT, September 2026). Catalogue generated from the official schematron on 2026-10-14.