Reference
Markdown exportBR-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
Where BR-DE-20 is checked
Click a stage to see what it checks, or type a rule ID to light up the stage that reports it.
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
National rules (CIUS)
- 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.
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
<cac:PaymentMeans>
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
<cac:PaymentMandate>
<cac:PayerFinancialAccount>
<cbc:ID>DE89370400440532013000</cbc:ID>
</cac:PayerFinancialAccount>
</cac:PaymentMandate>
</cac:PaymentMeans><cac:PaymentMeans>
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
<cac:PaymentMandate>
<cac:PayerFinancialAccount>
<cbc:ID>0532013000</cbc:ID>
</cac:PayerFinancialAccount>
</cac:PaymentMandate>
</cac:PaymentMeans>