Attestwire › Rule reference › BR-DE-31

BR-DE-31 A direct debit needs the account to be debited

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

Your invoice was refused because it carries direct debit details but the account to collect from is missing. That is the payer’s IBAN from the signed mandate, not yours. In the standard the field is BT-91 in group BG-19; BR-DE-31 is the rule that requires it.

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

Business term
BG-19 / BT-91 — Debited account identifier
Severity
fatal
Applies to
xrechnung-ubl, xrechnung-cii

The fix

Set payment.directDebit.debitedAccount to the payer’s IBAN, exactly as on the signed mandate. If you do not have that IBAN, you do not have a usable mandate, and the invoice should ask for a credit transfer instead: payment.meansCode "58" with payment.iban.

What the rule requires

Set the debited account (BT-91): the IBAN the money is collected from. It belongs to the payer.

Copy it exactly from the signed mandate. The check digits are verified separately, by BR-DE-20.

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

Wenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Debited account identifier" BT-91 übermittelt werden.

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

A passing value

the shape this field expects
"directDebit": { "debitedAccount": "DE98700500001234567890" }

Why it exists

Under a direct debit your customer does nothing. This document tells them which of their accounts you will debit, under which mandate, and that notice is the only one they get before the money moves. Without the account, there is no notice.

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-31",
  "field": [
    "BG-19",
    "BT-91"
  ],
  "severity": "fatal",
  "message": "The invoice carries a DIRECT DEBIT group (BG-19), so the debited account identifier (BT-91) must be present. It is the account the money will be taken from — the payer's IBAN, not yours. Under a direct debit the buyer does not act at all: they are told, on this document, which of their accounts you intend to draw on and under which mandate, and that disclosure is the only notice they get before the money moves.",
  "fix": "Set payment.directDebit.debitedAccount to the payer's IBAN, exactly as it appears on the signed mandate. If you do not hold it, you do not have a usable mandate, and the invoice should ask for a credit transfer instead (payment.meansCode \"58\" with payment.iban).",
  "example": "\"directDebit\": { \"debitedAccount\": \"DE98700500001234567890\" }",
  "xpath": "/ubl:Invoice/cac:PaymentMeans/cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID",
  "docsUrl": "https://attestwire.com/rules/BR-DE-31"
}

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

How our check differs

Presence only. Whether the IBAN is valid is BR-DE-20’s check, and that one is a warning. The rule runs whenever payment.directDebit is present.

See also: BR-DE-30 — the creditor identifier in the same group; BR-DE-20 — the IBAN check on this field.