Skip to main content

BR-DE-20 SEPA direct debit account must be a valid IBAN

When an invoice specifies SEPA direct debit payment instructions (payment means code BT-81 = 59), XRechnung rule BR-DE-20 requires the debited account identifier (BT-91) to be a syntactically valid International Bank Account Number (IBAN) conforming to ISO 13616. The identifier must consist of a two-letter country code, two check digits, and up to 30 alphanumeric characters, satisfying the MOD-97 check algorithm. Clearing houses and banking engines reject direct debit collection mandates if the debited IBAN contains spaces, dashes, or invalid checksums.

Problem Description

WARNING

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-20 XRechnung rule (Germany)

Reported in stage 3: National rules (CIUS).

Level warning: on its own, the invoice is still accepted.

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-20: 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

Rule BR-DE-20 is a warning-level check in XRechnung 3.0. However, invalid IBAN values cause direct debit batch files (pain.008) generated from the invoice to be rejected by commercial banks.

Solution

In your customer bank master records, sanitize the debtor IBAN by removing spaces, hyphens, and text labels (such as "IBAN:"). In UBL 2.1 syntax, populate the clean IBAN in <cac:PaymentMeans><cac:PaymentMandate><cac:PayerFinancialAccount><cbc:ID>DE89370400440532013000</cbc:ID></cac:PayerFinancialAccount></cac:PaymentMandate></cac:PaymentMeans>. In UN/CEFACT CII syntax, populate <ram:PayerPartyDebtorFinancialAccount><ram:IBANID>DE89370400440532013000</ram:IBANID></ram:PayerPartyDebtorFinancialAccount> under <ram:SpecifiedTradeSettlementPaymentMeans>.

Quick actions

Valid Examples

  • BT-91 = "DE89370400440532013000" (Valid German IBAN with correct check digits)
  • BT-91 = "AT611904300234573201" (Valid Austrian IBAN)

Invalid Examples

  • BT-91 = "0532013000" (Legacy national bank account number instead of international ISO 13616 IBAN)
  • BT-91 = "DE89 3704 0044 0532 0130 00" (IBAN string formatted with spaces)

Code Examples

Valid XML
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
  <cac:PaymentMandate>
    <cac:PayerFinancialAccount>
      <cbc:ID>DE89370400440532013000</cbc:ID>
    </cac:PayerFinancialAccount>
  </cac:PaymentMandate>
</cac:PaymentMeans>
Invalid XML
<cac:PaymentMeans>
  <cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
  <cac:PaymentMandate>
    <cac:PayerFinancialAccount>
      <cbc:ID>0532013000</cbc:ID>
    </cac:PayerFinancialAccount>
  </cac:PaymentMandate>
</cac:PaymentMeans>

Affected Fields

Validation Tools