Rule reference

BR-DE-30 The invoice carries a DIRECT DEBIT group (BG-19), so the bank assigned creditor identifier (BT-90) must be present

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.

This rule is implemented and its error payload below is real, but the long-form write-up — normative text, worked example, divergence note — is not written yet. Everything the library knows about this rule is on this page. Ask and we will prioritise it.

Business term
BG-19 / BT-90
Severity
fatal

What the library returns

The exact object in result.errors when this rule fires. Generated by running @attestwire/en16931, not transcribed:

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 locates the element in the generated UBL document, which is where a KoSIT or Peppol validator will report the same problem.

A passing value

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

The 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.

Arrived from a stack trace? The docsUrl on every error links straight here. Something wrong on this page — tell us.