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.
Why it fails
- The account in
cac:PayeeFinancialAccount/cbc:IDfor a SEPA credit transfer (code58) is not a valid IBAN: a typo, a missing digit, or an account number without the country and check digits. - The IBAN contains characters other than letters, digits and spaces.
How to fix it
Give the full IBAN, with or without spaces. Its two check digits are verified, so a single wrong digit is caught; copy it from the bank statement rather than retyping it.
What the rule checks
As the rule set's publisher wrote it. The rule runs on every element the context matches, and fails where the test is false; the validator reports the line of that element.
/ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('30','58')] | /cn:CreditNote/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('30','58')]
not(normalize-space(cbc:PaymentMeansCode) = '58') or xr:checkIBAN(string(cac:PayeeFinancialAccount/cbc:ID))
Checked with XRechnung 3.0 Invoice (UBL), XRechnung 3.0 Credit Note (UBL)
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans[normalize-space(ram:TypeCode) = ('30','58')]
not(normalize-space(ram:TypeCode) = '58') or xr:checkIBAN(string(ram:PayeePartyCreditorFinancialAccount/ram:IBANID))
Checked with XRechnung 3.0 Invoice (CII)