Attestwire › Rule reference › BR-DE-30

BR-DE-30 A direct debit needs the creditor identifier

noun · XRechnung · fatal · BG-19 / BT-90

Your invoice was refused because it carries direct debit details but your creditor identifier is missing. That is your SEPA creditor identifier, which in Germany the Bundesbank issues. In the standard the field is BT-90 in group BG-19; BR-DE-30 is the rule that requires it.

Diese Regel auf Deutsch: BR-DE-30 — auf Deutsch erklärt.

Business term
BG-19 / BT-90 — Bank assigned creditor identifier
Severity
fatal
Applies to
xrechnung-ubl, xrechnung-cii

The fix

Set payment.directDebit.creditorIdentifier to your SEPA creditor identifier.

What the rule requires

Set the creditor identifier (BT-90). In Germany it is an 18-character identifier of the form DE98ZZZ09999999999, which the Deutsche Bundesbank issues once, on application. It is not derived from your IBAN or your tax number.

A note that helps when you go looking for it: the UBL binding of EN 16931 does not put BT-90 in the payment group but on the seller, as cac:PartyIdentification with schemeID="SEPA". So a document can look complete and still break this rule: you were looking in the wrong place.

In this library the field is payment.directDebit.creditorIdentifier.

Wenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Bank assigned creditor identifier" BT-90 übermittelt werden.

BR-DE-30 — KoSIT XRechnung Schematron 2.6.0 (XRechnung 3.0), XRechnung-UBL-validation.sch

A passing value

the shape this field expects
"directDebit": { "creditorIdentifier": "DE98ZZZ09999999999" }

Why it exists

The payer’s bank checks the collection against the stored mandate, and that mandate belongs to a creditor. A mandate reference without a creditor identifier names a permission without saying who it was given to.

What the library returns

The full error returned by @attestwire/en16931. It includes the rule ID, affected field and suggested correction. Developers can use this object in their application:

TeachingError
{
  "rule": "BR-DE-30",
  "field": [
    "BG-19",
    "BT-90"
  ],
  "severity": "fatal",
  "message": "The invoice carries a DIRECT DEBIT group (BG-19), so the bank assigned creditor identifier (BT-90) must be present. This is your SEPA Gläubiger-Identifikationsnummer — in Germany a 18-character identifier issued by the Bundesbank, of the form DE98ZZZ09999999999 — and it is what the payer's bank uses to check the collection you are about to raise against the mandate they hold. A mandate reference with no creditor identifier names a permission without naming who holds it. Note where it goes in the XML: EN 16931's UBL binding puts BT-90 on the seller party as a cac:PartyIdentification with schemeID=\"SEPA\", not inside the payment group, which is why a document can look complete and still fail this rule.",
  "fix": "Set payment.directDebit.creditorIdentifier to your SEPA creditor identifier. Your bank issues it once, on application; it is not derived from your IBAN or your VAT number.",
  "example": "\"directDebit\": { \"creditorIdentifier\": \"DE98ZZZ09999999999\" }",
  "xpath": "/ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID",
  "docsUrl": "https://attestwire.com/rules/BR-DE-30"
}

xpath is always a UBL path. On a CII invoice, look for the matching CII field instead.

How our check differs

Presence only: we do not check the identifier’s format or check digits. The rule runs whenever payment.directDebit is present, whatever the payment means code says.

See also: BR-DE-31 — the debited account in the same group; BR-DE-25-a — the rule that requires the group.