{
  "id": "BR-DE-19",
  "country": "DE",
  "syntax": "ubl",
  "group": "payment",
  "severity": "warning",
  "severity_note": "warning, from the schematron flag attribute on tag v2.6.0.",
  "spec": "XRechnung Schematron 2.6.0 (itplr-kosit/xrechnung-schematron tag v2.6.0), UBL invoice and credit note",
  "statement": "[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.",
  "statement_lang": "de",
  "context": "/ubl:Invoice/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('30','58')] | /cn:CreditNote/cac:PaymentMeans[normalize-space(cbc:PaymentMeansCode) = ('30','58')]",
  "test": "not(normalize-space(cbc:PaymentMeansCode) = '58') or xr:checkIBAN(string(cac:PayeeFinancialAccount/cbc:ID))",
  "meaning": "When the payment means type code (BT-81) is 58, the payment account identifier (BT-84) should be a correct IBAN. The published flag is warning. The test calls xr:checkIBAN; this entry does not restate that function.",
  "fix": "For code 58, put an IBAN that passes the schematron IBAN check in cac:PayeeFinancialAccount/cbc:ID.",
  "example_fail": "BT-81 is 58 and the payment account identifier fails the schematron IBAN check.",
  "example_pass": "BT-81 is 58 and the payment account identifier passes the schematron IBAN check.",
  "example_note": "Illustration of the condition in the official statement. Not an example published by the source.",
  "source_url": "https://github.com/itplr-kosit/xrechnung-schematron/blob/v2.6.0/src/validation/schematron/ubl/XRechnung-UBL-validation.sch",
  "source_retrieved": "2026-10-17",
  "last_verified": "2026-10-17"
}
