BR-DE-18
Payment Means Code Invalid (BT-81)
What This Error Means
The payment means type code in BT-81 must be one of the UNCL4461 codes allowed by XRechnung: 10 (Cash), 20 (Cheque), 30 (Credit Transfer / SEPA), 42 (Payment to bank account), 48 (Bank card), 49 (Direct Debit), 57 (Standing agreement), 58 (SEPA Credit Transfer), or 59 (SEPA Direct Debit). Codes outside this set are rejected.
Why this happens
BR-DE-18 fires when the payment means code (BT-81) uses a value outside the UNCL4461 subset XRechnung accepts. The error usually stems from ERP systems that default to a generic code (e.g. 1 'instrument not defined' or 97 'clearing') or that emit a code valid in UNCL4461 broadly but not whitelisted for German invoices. Because the payment means determines how the receiving authority pays the invoice, an unrecognised code blocks automated payment processing.
How to Fix It
Use PaymentMeansCode 30 or 58 for SEPA credit transfer (the most common method). Add the IBAN in cac:PayeeFinancialAccount/cbc:ID. For direct debit use 49 or 59.
Step-by-step
1) Pick the correct code for the actual payment method. For the typical bank transfer use 58 (SEPA credit transfer) or 30 (credit transfer). For direct debit use 59 (SEPA direct debit) or 49. 2) Set cbc:PaymentMeansCode accordingly inside cac:PaymentMeans. 3) For credit transfer, also provide the payee IBAN in cac:PayeeFinancialAccount/cbc:ID. 4) For direct debit, provide the mandate reference (BT-89) and creditor identifier (BT-90). 5) Re-validate; if your software keeps emitting an unsupported code, add a mapping table from your internal payment types to the XRechnung subset.
<cac:PaymentMeans>
<cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
<cac:PayeeFinancialAccount>
<cbc:ID>DE89370400440532013000</cbc:ID>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>Fix Automatically
Upload your invoice to our Smart Repair engine. It will detect and fix BR-DE-18 errors automatically with a GoBD audit trail.
Open Smart RepairFrequently asked questions
Which code should I use for a normal bank transfer?
Use 58 (SEPA credit transfer) within the SEPA area, or 30 (credit transfer) more generally. Both are accepted by XRechnung and are the most common choices.
Do I always need to include an IBAN?
For credit transfer (30/58) the payee IBAN in cac:PayeeFinancialAccount/cbc:ID is expected so the authority can pay you. For cash or card it is not applicable.
Related Errors
Other commonly encountered validation errors