PEPPOL-EN16931-R061: Mandate reference (BT-89) missing for direct debit
Official message
[PEPPOL-EN16931-R061] Mandate reference MUST be provided for direct debit.
[PEPPOL-EN16931-R061] Mandate reference MUST be provided for direct debit.
- Severity
- Error The invoice is invalid and may be rejected by the recipient.
- Applies to
- XRechnung (CII), XRechnung (UBL)
What does this mean?
Mandate reference MUST be provided for direct debit: if the payment means type code (BT-81) is a direct debit, i.e. 49 (direct debit) or 59 (SEPA direct debit), the mandate reference identifier (BT-89) must be provided. It is missing.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation. CII: ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID, UBL: cac:PaymentMeans/cac:PaymentMandate/cbc:ID.
Typical causes
The mandate reference was only mentioned in the remittance information or in the payment terms.
A direct debit was selected as payment means by mistake instead of a credit transfer (e.g. 58).
How to fix the error
State the mandate reference of the direct debit mandate in BT-89. The direct debit group (BG-19) also contains the bank assigned creditor identifier (BT-90) and the debited account identifier (BT-91).
If no direct debit is intended, state the applicable payment means in BT-81.
Generate and validate the invoice again.
In E-Rechnungsfreund
In the invoice form, "Experte" view, section "Zahlungsinformationen / SEPA" (payment information), fill in the field "Mandatsreferenz SEPA (BT-89)" (mandate reference). If no direct debit is meant, choose another "Zahlungscode (BT-81)" (payment means code) in section "Zahlungsmittel (BG-16)" (payment means).
Example
Wrong
<ram:SpecifiedTradeSettlementPaymentMeans>
<ram:TypeCode>59</ram:TypeCode>
...
</ram:SpecifiedTradeSettlementPaymentMeans>
...
<ram:SpecifiedTradePaymentTerms>
<ram:DueDateDateTime>
<udt:DateTimeString format="102">20260215</udt:DateTimeString>
</ram:DueDateDateTime>
</ram:SpecifiedTradePaymentTerms>
Correct
<ram:SpecifiedTradeSettlementPaymentMeans>
<ram:TypeCode>59</ram:TypeCode>
...
</ram:SpecifiedTradeSettlementPaymentMeans>
...
<ram:SpecifiedTradePaymentTerms>
<ram:DueDateDateTime>
<udt:DateTimeString format="102">20260215</udt:DateTimeString>
</ram:DueDateDateTime>
<ram:DirectDebitMandateID>MANDATE-2026-001</ram:DirectDebitMandateID>
</ram:SpecifiedTradePaymentTerms>
For developers: test expression per syntax
XRechnung (CII) (CII)
Context: ram:SpecifiedTradeSettlementPaymentMeans[some $code in tokenize('49 59', '\s') satisfies normalize-space(ram:TypeCode) = $code]
../ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID
XRechnung (UBL) (UBL)
Context: cac:PaymentMeans[some $code in tokenize('49 59', '\s') satisfies normalize-space(cbc:PaymentMeansCode) = $code]
cac:PaymentMandate/cbc:ID
Related validation rules
- PEPPOL-EN16931-R001: Business process type (BT-23) is missing
- PEPPOL-EN16931-R005: VAT accounting currency (BT-6) equals the invoice currency (BT-5)
- PEPPOL-EN16931-R008: The invoice contains empty elements
- PEPPOL-EN16931-R010: Buyer electronic address (BT-49) is missing
- PEPPOL-EN16931-R020: Seller electronic address (BT-34) is missing
- PEPPOL-EN16931-R040: Allowance or charge amount does not match base amount and percentage
Last updated:
Explanation of the validation rule, not legal or tax advice.