BR-DE-19"Payment account identifier" (BT-84) soll eine korrekte IBAN enthalten, wenn in "Payment means type code" (BT-81) mit dem Code 58 SEPA als Zahlungsmittel gefordert wird.
Official rule text
If SEPA credit transfer is declared as the payment means (BT-81 with code 58), the payment account identifier (BT-84) should be a correct IBAN. It is checked only for code 58 and only as a warning: code 30, the generic credit transfer, goes through unchecked.
- 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-19 happen?
Usually a typo in the IBAN — or code 58 although the payment is not actually a SEPA transfer. Spaces are not the problem: xr:checkIBAN strips all whitespace first and then recomputes the ISO 7064 check digit, moving the first four characters to the end, mapping letters to 10 through 35, and requiring the result modulo 97 to be 1. "DE02 1203 0000 0000 2020 51" therefore passes exactly as the same IBAN without spaces does.
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) = '58') or xr:checkIBAN(string(cac:PayeeFinancialAccount/cbc:ID))- CII
not(normalize-space(ram:TypeCode) = '58') or xr:checkIBAN(string(ram:PayeePartyCreditorFinancialAccount/ram:IBANID))
Source: rule set v2026-08-31
How do you fix BR-DE-19?
Send the IBAN with a valid check digit in BT-84 (cac:PayeeFinancialAccount/cbc:ID in UBL, ram:PayeePartyCreditorFinancialAccount/ram:IBANID in CII) — or pick the correct payment means code if it is not a SEPA transfer. The shape is also fixed: two letters, two digits, then at most thirty further characters.
In the XML
A UBL fragment. The CII path is named above — same change, different element names.
<cac:PaymentMeans>
<cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
<cac:PayeeFinancialAccount>
<cbc:ID>DE02120300000000202052</cbc:ID>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans><cac:PaymentMeans>
<cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
<cac:PayeeFinancialAccount>
<cbc:ID>DE02120300000000202051</cbc:ID>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>Related rules
NormAPI provides technical validation, not tax or legal advice.