Official rule text
[PEPPOL-EN16931-R061] Mandate reference MUST be provided for direct debit.
Why this error occurs
If the payment means type code (BT-81) is 49 (direct debit) or 59 (SEPA direct debit), Peppol requires the mandate reference so the buyer can verify the debit against the mandate he signed. The rule looks for cac:PaymentMeans/cac:PaymentMandate/cbc:ID (UBL) or ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID (CII) whenever the code is 49 or 59. It fails when the mandate reference is stored in the ERP but not mapped, or when code 59 is used although the customer actually pays by transfer.
How to fix it
In UBL add cac:PaymentMandate with cbc:ID (mandate reference) inside the cac:PaymentMeans, and cac:PayerFinancialAccount/cbc:ID with the debited IBAN (BT-91) if known. In CII put ram:DirectDebitMandateID into ram:SpecifiedTradePaymentTerms and the debited account in ram:PayerPartyDebtorFinancialAccount/ram:IBANID. If no mandate exists, change the payment means code to 58 (SEPA credit transfer) and give the payee account instead.
Example (valid)
<cac:PaymentMeans>
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
<cac:PaymentMandate>
<cbc:ID>MANDATE-2024-0815</cbc:ID>
<cac:PayerFinancialAccount><cbc:ID>DE02120300000000202051</cbc:ID></cac:PayerFinancialAccount>
</cac:PaymentMandate>
</cac:PaymentMeans>
What the validator checks
Checked element (context):
UBL
cac:PaymentMeans[some $code in tokenize('49 59', '\s')
satisfies normalize-space(cbc:PaymentMeansCode) = $code]
cac:PaymentMeans[some $code in tokenize('49 59', '\s') satisfies normalize-space(cbc:PaymentMeansCode) = $code]Test (XPath):
cac:PaymentMandate/cbc:IDCII
ram:SpecifiedTradeSettlementPaymentMeans[some $code in tokenize('49 59', '\s')
satisfies normalize-space(ram:TypeCode) = $code]
ram:SpecifiedTradeSettlementPaymentMeans[some $code in tokenize('49 59', '\s') satisfies normalize-space(ram:TypeCode) = $code]Test (XPath):
../ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID
Check your invoice
Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.
Same check via API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRelated rules
PEPPOL-EN16931-R001Business process identifier (BT-23) is missingPEPPOL-EN16931-R002No more than one note is allowed on document level, unless both the buyer and seller…PEPPOL-EN16931-R003Neither buyer reference nor purchase order reference givenPEPPOL-EN16931-R004Specification identifier is not the Peppol BIS Billing 3.0 identifierPEPPOL-EN16931-R005VAT accounting currency equals the invoice currencyPEPPOL-EN16931-R006Only one invoiced object is allowed on document levelPEPPOL-EN16931-R007Business process identifier has the wrong formatPEPPOL-EN16931-R008Document contains empty elements
Frequently asked questions
What does PEPPOL-EN16931-R061 mean?
PEPPOL-EN16931-R061 is a peppol bis billing 3.0 rule: Mandate reference MUST be provided for direct debit.
Will my invoice be rejected because of PEPPOL-EN16931-R061?
Yes. PEPPOL-EN16931-R061 is flagged "fatal"; validators (KoSIT, Peppol access points, the German ZRE/OZG-RE portals) reject the invoice until it is fixed.
Which formats does PEPPOL-EN16931-R061 apply to?
Invoices and credit notes sent over the Peppol network (UBL) and, because XRechnung embeds the Peppol rule set, every XRechnung as well. Syntax: UBL and CII.
Source: Peppol BIS Billing 3.0.20 (November 2025). Catalogue generated from the official schematron on 2026-10-14.