BR – Core rules of EN 16931
BR-61: credit transfer without a payment account identifier (BT-84)
ErrorEN 16931 business rule (CEN)
The rule's own wording
[BR-61]-If the Payment means type code (BT-81) means SEPA credit transfer, Local credit transfer or Non-SEPA international credit transfer, the Payment account identifier (BT-84) shall be present.Source: CEN EN 16931, version 1.3.16
Meaning of the rule
The invoice names a credit transfer as the payment means but gives no account for the money to go to. For the codes for SEPA and other credit transfers, the norm requires the payee's account identifier, in Europe the IBAN. When it is missing, the recipient cannot instruct the payment and rejects the invoice.
The fix in the XML
Add a PayeeFinancialAccount block under PaymentMeans with the IBAN in the ID element. If no transfer is meant, change the payment means code instead, for example 59 for direct debit.
<cac:PaymentMeans>
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
</cac:PaymentMeans><cac:PaymentMeans>
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
<cac:PayeeFinancialAccount>
<cbc:ID>DE02120300000000202051</cbc:ID>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>Questions and answers
Which codes trigger BR-61?
Codes 30 (credit transfer) and 58 (SEPA credit transfer). With both, BT-84 must hold the IBAN or another account identifier.
Is an IBAN without a BIC sufficient?
Yes. The norm requires only the account identifier (BT-84). Account holder (BT-85) and BIC (BT-86) are optional; within the SEPA area the IBAN is enough.
Other typical causes
- No bank account is stored in the master data of the invoicing software.
- The IBAN sits in the footer text or on the PDF, not in the PayeeFinancialAccount block.
- The credit transfer code 58 was set by mistake for a direct debit or card payment.
EN 16931 fields
- BT-81
- BT-84
See also
- BR-DE-19
- BR-50
- BR-49
Check your invoice
The EN 16931 validator reports this rule with the line number and location – right in your browser, without upload.
The rule in detail
- UBL · Context (XPath)
cac:PaymentMeans- UBL · Schematron test
(exists(cac:PayeeFinancialAccount/cbc:ID) and ((normalize-space(cbc:PaymentMeansCode) = '30') or (normalize-space(cbc:PaymentMeansCode) = '58') )) or ((normalize-space(cbc:PaymentMeansCode) != '30') and (normalize-space(cbc:PaymentMeansCode) != '58'))- CII · Context (XPath)
//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode='30' or ram:TypeCode='58']/ram:PayeePartyCreditorFinancialAccount- CII · Schematron test
(ram:IBANID) or (ram:ProprietaryID)
Explanation written on 13 September 2026