Skip to main content

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

Interactive pipeline

Click a stage to see what it checks, or type a rule ID to light up the stage that reports it.

Try:

BR-DE-23-b XRechnung rule (Germany)

Reported in stage 3: National rules (CIUS).

Level error: the report recommends rejecting the invoice.

Stage 3 · What it checks

  • The specification identifier in BT-24 selects the rule set, for example XRechnung 3.0 or Peppol BIS Billing 3.0.
  • XRechnung adds the German BR-DE rules: buyer reference (BT-10), seller contact, payment instructions.
  • Peppol adds PEPPOL-EN16931 and country rules. XRechnung applies some PEPPOL-EN16931 rules too.

Example codes

Typical fix

Fill the fields the rule set requires in your master data, such as the Leitweg-ID in BT-10 or the seller contact.

A validator checks an e-invoice in stages. First the file must be well-formed XML that matches the UBL or CII schema (XSD). Then the EN 16931 business rules run: BR core rules, BR-CO calculations, BR-CL code lists, BR-DEC decimals and VAT-category rules such as BR-S. Next come the national or network rules that BT-24 selects: BR-DE for XRechnung, PEPPOL-EN16931 for Peppol BIS Billing. The report lists every failed rule: one error means reject, warnings alone still mean accept. BR-DE-23-b: XRechnung rule (Germany), reported in the stage “National rules (CIUS)”. Rule sets: KoSIT validator 1.6.3 with the XRechnung configuration of 31 Aug 2026 (EN 16931 artefacts 1.3.16), Peppol BIS Billing 3.0.21.

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.

Quick actions

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

Validation Tools