Skip to main content
XRechnung · EN 16931

XRechnung errors BR-DE-1, BR-61 and BR-DE-23: the payment instructions

XRechnung does not accept an invoice that does not say how to pay it. BR-DE-1 requires the payment instructions block (BG-16) and, when the means is a credit transfer, BR-61 and BR-DE-23-a ask for the account you get paid into. These are data on your company and on the invoice, and in Odoo they hang on a single field: the invoice's bank.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 4 November 2026

Key facts

Versions
Odoo 17, 18, 19 and 20
Checked
in the module's source code, version 17.0 and 20.0 · against the sources linked at the end
Reading time
3 min

Seven rules revolve around the same block. BR-49, BR-61 and BR-50 come from the European standard EN 16931 and apply to any format; the BR-DE ones are XRechnung only (KoSIT Schematron v2.6.0):

  • BR-DE-1 (fatal): “Eine Rechnung (INVOICE) muss Angaben zu "PAYMENT INSTRUCTIONS" (BG-16) enthalten.” Without a payment block, the XRechnung is not valid.
  • BR-49 (fatal): “A Payment instruction (BG-16) shall specify the Payment means type code (BT-81).”
  • BR-61 (fatal): “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.”
  • BR-50 (fatal): “A Payment account identifier (BT-84) shall be present if Credit transfer (BG-17) information is provided in the Invoice.”
  • BR-DE-23-a (fatal): “Wenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), muss BG-17 "CREDIT TRANSFER" übermittelt werden.”
  • BR-DE-23-b (fatal): “Wenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), dürfen BG-18 und BG-19 nicht übermittelt werden.” A credit transfer cannot also carry card data (BG-18) or direct debit data (BG-19).
  • BR-DE-19 (warning): “"Payment account identifier" (BT-84) soll eine korrekte IBAN enthalten, wenn in "Payment means type code" (BT-81) mit dem Code 58 SEPA als Zahlungsmittel gefordert wird.” A warning: with code 58, the account should be a valid IBAN.
Card for the XRechnung payment instruction rules
BR-DE-1 and BR-61 lead seven rules about BG-16, the payment means (BT-81) and the account (BT-84).

The payment means you will see

30
Credit transfer. What Odoo writes on an invoice with a Recipient Bank.
58
SEPA credit transfer. What our XRechnung and ZUGFeRD module writes.
ZZZ
Mutually defined. What Odoo writes on an invoice without a bank.
57
Standing agreement. What Odoo writes on credit notes.

What Odoo does with an invoice

In Odoo 17, 18, 19 and 20 the decision is the same and hangs on the invoice's Recipient Bank field. With a bank, the means is 30 and the account goes into BT-84: BR-61, BR-50 and BR-DE-23-a are met on their own. Without one, the means is ZZZ. The BG-16 block exists, so BR-DE-1 does not fire, but the invoice does not say which account to pay into.

On top of that, before generating the file, Odoo repeats the BR-61 check: if the means is 30 or 58 and the invoice has no Recipient Bank, it stops with the required-field message. With the logic above that is hard to reach, but a module that changes the payment means can trigger it.

With our XRechnung and ZUGFeRD module

The module does not look at the Recipient Bank: the payment instructions come from your company's XRechnung IBAN, with means 58, the IBAN in BT-84 and the BIC if there is one. If that IBAN is empty, the module generates nothing and stops first with the message “Company IBAN (BT-84) is required for XRechnung generation.”. So, with the module, an invoice without BG-16 never goes out.

E-invoice audit log of the XRechnung module in Odoo 20
Seven outbound entries with customer, invoice, format and validation result, one of them failed. Odoo 20 screenshot with demo data; the validation results are test ones.

On Odoo 18, 19 and 20, with the FlexigoTech Cloud subscription, every XRechnung it does generate also goes through the KoSIT rules, and only one that passes them is marked Ready to send. On Odoo 17, the published version does not validate.

How to fix it

  1. In Odoo, pick the bank account you collect on in the invoice's Recipient Bank field before generating the XRechnung.
  2. With our module, fill in your company's XRechnung IBAN (and the BIC if your customer asks for it).
  3. Check the IBAN is right: with means 58, BR-DE-19 warns when it is not.
  4. Generate the XRechnung again; the one already sent stays as it was.

Keep reading

XRechnung error BR-DE-15: the invoice has no Buyer reference (BT-10)BR-DE-15 rejects an XRechnung without a Buyer reference (BT-10). What the KoSIT rule asks, where Odoo 17, 18, 19 and 20 take it from and when the Leitweg-ID goes there.XRechnung errors BR-DE-2 to BR-DE-7, BR-DE-27 and BR-DE-28: the seller contactBR-DE-2 to BR-DE-7 require the seller's city, post code, contact point, phone and email in XRechnung. What each rule says and how to meet them in Odoo.Error BR-CO-15 in an e-invoice: total with VAT is not net plus VATBR-CO-15, BR-CO-14, BR-CO-16 and BR-CO-17 check that e-invoice totals add up. What each one sums and which ones fail over a single cent.
Checked in the module's source code (version 17.0 and 20.0) and the linked sources

Sources