BR-DE-20"Debited account identifier" (BT-91) soll eine korrekte IBAN enthalten, wenn in "Payment means type code" (BT-81) mit dem Code 59 SEPA als Zahlungsmittel gefordert wird.
Official rule text
For SEPA direct debit (BT-81 with code 59), the debited account identifier (BT-91) should be a correct IBAN — the check digit, and only as a warning. The account is the buyer's, not yours: the number comes from the mandate the customer gave you.
- Severity
- Warning
- Applies to
- CII, UBL
- Rule set
- v2026-08-31
- Checked on
Written and checked against the official KoSIT rule set by Dmytro Yalanskyi, NormAPI.
Why does BR-DE-20 happen?
Usually a typo in an IBAN transcribed from the mandate — and unlike your own account number, nobody in-house ever notices, because it is never used again. Spaces are not the problem: xr:checkIBAN strips all whitespace first and then recomputes the ISO 7064 check digit. Three errors hang off the same group around a direct debit: BR-DE-25-a requires BG-19 when the code is 59, BR-DE-31 requires the account BT-91 inside it, and BR-DE-30 requires the creditor identifier BT-90.
What the validator checks
The expression the official KoSIT rule set evaluates — not paraphrased, but read from the Schematron file it ships. UBL and CII address different document trees, so the same rule reads differently in each.
- UBL
not(normalize-space(cbc:PaymentMeansCode) = '59') or xr:checkIBAN(string(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID))- CII
not(normalize-space(ram:TypeCode) = '59') or xr:checkIBAN(string(ram:PayerPartyDebtorFinancialAccount/ram:IBANID))
Source: rule set v2026-08-31
How do you fix BR-DE-20?
Send the debited account's IBAN with a valid check digit in BT-91: in UBL under cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, in CII directly as ram:PayerPartyDebtorFinancialAccount/ram:IBANID. The mandate wrapper exists in UBL only — in CII the account sits without one.
In the XML
A UBL fragment. The CII path is named above — same change, different element names.
<cac:PaymentMeans>
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
<cac:PaymentMandate>
<cbc:ID>MANDAT-2026-0007</cbc:ID>
<cac:PayerFinancialAccount>
<cbc:ID>DE02120300000000202052</cbc:ID>
</cac:PayerFinancialAccount>
</cac:PaymentMandate>
</cac:PaymentMeans><cac:PaymentMeans>
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
<cac:PaymentMandate>
<cbc:ID>MANDAT-2026-0007</cbc:ID>
<cac:PayerFinancialAccount>
<cbc:ID>DE02120300000000202051</cbc:ID>
</cac:PayerFinancialAccount>
</cac:PaymentMandate>
</cac:PaymentMeans>Related rules
NormAPI provides technical validation, not tax or legal advice.