Attestwire › Rule reference › PEPPOL-EN16931-R061

PEPPOL-EN16931-R061 A Peppol direct debit needs the mandate reference

noun · Peppol BIS · fatal · BT-89

Your invoice was refused because it asks to be paid by direct debit but gives no mandate reference. The mandate reference identifies the authorisation your customer signed to let you collect, and on Peppol it is required whenever the payment is a direct debit. In the standard the field is BT-89, and PEPPOL-EN16931-R061 is the rule that requires it.

Business term
BT-89 — Mandate reference identifier
Severity
fatal
Applies to
peppol-bis-3

The fix

Set payment.directDebit.mandateReference to the reference from the signed mandate, and supply creditorIdentifier and debitedAccount in the same object. If you want your customer to pay by transfer instead, use payment means code "58" with payment.iban.

What the rule requires

With a direct debit payment means code, 59 for a SEPA direct debit or 49, the mandate reference (BT-89) must be present. Core EN 16931 leaves it optional; Peppol BIS Billing 3.0 requires it.

The value is the reference you issued when your customer signed the mandate (in German, the Mandatsreferenz). Peppol also expects the creditor identifier (BT-90) and the debited account (BT-91) beside it.

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

[PEPPOL-EN16931-R061]-Mandate reference MUST be provided for direct debit.

PEPPOL-EN16931-R061 — Peppol BIS Billing 3.0, PEPPOL-EN16931-UBL.sch, release 3.0.21

A passing value

the shape this field expects
"payment": { "meansCode": "59", "directDebit": { "mandateReference": "MND-2026-0042", "creditorIdentifier": "DE98ZZZ09999999999", "debitedAccount": "DE02120300000000202051" } }

Why it exists

A direct debit reverses the usual direction: you take the money rather than your customer sending it. The mandate is their permission, and the reference is how their bank and their accounts payable team match your collection to it. Without it they cannot reconcile the debit, and under the SEPA rules they can reclaim an authorised direct debit for eight weeks without giving a reason.

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": "PEPPOL-EN16931-R061",
  "field": "BT-89",
  "severity": "fatal",
  "message": "The payment means code (BT-81) is \"59\", which is a direct debit — you are telling the buyer that you will take the money rather than that they should send it. Peppol therefore requires the mandate reference (BT-89): the identifier of the authorisation the buyer signed permitting exactly that. Without it the buyer cannot reconcile the collection against a mandate they granted, and under the SEPA rulebook they can reclaim the funds for up to eight weeks with no reason given. Core EN 16931 leaves BT-89 optional; this is a tightening, and a well-judged one. This is a Peppol BIS Billing 3.0 profile rule: it applies because profile is \"peppol-bis-3\". It does not apply to the en16931, xrechnung-ubl or xrechnung-cii profiles, whose validators will accept the same document.",
  "fix": "Set payment.directDebit.mandateReference to the mandate identifier (the Mandatsreferenz) you issued when the buyer signed the mandate. Peppol also expects the creditor identifier and the debited account alongside it — set payment.directDebit.creditorIdentifier and payment.directDebit.debitedAccount too.",
  "example": "\"payment\": { \"meansCode\": \"59\", \"directDebit\": { \"mandateReference\": \"MND-2026-0042\", \"creditorIdentifier\": \"DE98ZZZ09999999999\", \"debitedAccount\": \"DE02120300000000202051\" } }",
  "xpath": "/ubl:Invoice/cac:PaymentMeans/cac:PaymentMandate/cbc:ID",
  "docsUrl": "https://attestwire.com/rules/PEPPOL-EN16931-R061"
}

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

How our check differs

Presence only, and only on the peppol-bis-3 profile, for payment means codes 49 and 59. XRechnung has no rule for BT-89; its direct debit rules ask for the creditor identifier and the debited account instead (BR-DE-30, BR-DE-31).

See also: BR-DE-25-a — the XRechnung rule that requires the direct debit group.