Sette regole ruotano attorno allo stesso blocco. BR-49, BR-61 e BR-50 provengono dalla norma europea EN 16931 e valgono per qualsiasi formato; le BR-DE valgono solo per XRechnung (Schematron v2.6.0 di KoSIT):
- BR-DE-1 (fatal): «Eine Rechnung (INVOICE) muss Angaben zu "PAYMENT INSTRUCTIONS" (BG-16) enthalten.» Senza blocco di pagamento, la XRechnung non è valida.
- 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.» Un bonifico non può includere anche dati di carta (BG-18) o di addebito diretto (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.» È un avviso: con il codice 58, il conto dovrebbe essere un IBAN valido.

I mezzi di pagamento che vedrai
- 30
- Bonifico (credit transfer). È quello che Odoo mette su una fattura con Recipient Bank.
- 58
- Bonifico SEPA. È quello che mette il nostro modulo XRechnung e ZUGFeRD.
- ZZZ
- Definito di comune accordo (mutually defined). È quello che Odoo mette su una fattura senza banca.
- 57
- Accordo permanente (standing agreement). È quello che Odoo mette sulle note di credito.
Cosa fa Odoo con una fattura
In Odoo 17, 18, 19 e 20 la decisione è la stessa e dipende dal campo Recipient Bank della fattura. Se c'è una banca, il mezzo è 30 e il conto va in BT-84: BR-61, BR-50 e BR-DE-23-a sono soddisfatte da sole. Se non c'è, il mezzo è ZZZ. Il blocco BG-16 esiste, quindi BR-DE-1 non scatta, ma la fattura non dice su quale conto incassare.
Inoltre, prima di generare il file, Odoo ripete il controllo di BR-61: se il mezzo è 30 o 58 e la fattura non ha Recipient Bank, si ferma con l'avviso di campo obbligatorio. Con la logica sopra è difficile arrivarci, ma un modulo che cambia il mezzo di pagamento può provocarlo.
Con il nostro modulo XRechnung e ZUGFeRD
Il modulo non guarda il Recipient Bank: le istruzioni di pagamento provengono dall'IBAN XRechnung della tua azienda, con mezzo 58, l'IBAN in BT-84 e il BIC se presente. Se quell'IBAN è vuoto, il modulo non genera nulla e si ferma subito con l'avviso «Company IBAN (BT-84) is required for XRechnung generation.». Quindi, con il modulo, una fattura senza BG-16 non esce.

Su Odoo 18, 19 e 20, con l'abbonamento a FlexigoTech Cloud, ogni XRechnung generata passa inoltre dalle regole di KoSIT, e solo quella che le supera risulta come Ready to send. Su Odoo 17, la versione pubblicata non valida.
Come correggerlo
- In Odoo, scegli il conto di incasso nel campo Recipient Bank della fattura prima di generare la XRechnung.
- Con il nostro modulo, compila l'IBAN XRechnung della tua azienda (e il BIC, se il cliente lo richiede).
- Verifica che l'IBAN sia corretto: con il mezzo 58, BR-DE-19 avvisa se non lo è.
- Rigenera la XRechnung; quella già inviata resta com'era.
Continua a leggere
Verificato nel codice del modulo (versione 17.0 e 20.0) e nelle fonti collegate
Fonti
- Codice del modulo: flexigo_germany_xrechnung 20.0 (446f2f68): models/account_move.py
- github.com/odoo/odoo/blob/6f00fdadb875342de2d14a179f25431f93cd63c9/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/6f00fdadb875342de2d14a179f25431f93cd63c9/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/account_edi_ubl_
- Codice del modulo: flexigo_germany_xrechnung 20.0 (446f2f68): lib/generators/ubl_generator.py
- Codice del modulo: flexigo_germany_xrechnung 20.0 (446f2f68): models/xrechnung_cloud.py
- Codice del modulo: flexigo_germany_xrechnung 17.0 (ad05de8f): __manifest__.py
- github.com/ConnectingEurope/eInvoicing-EN16931/releases/tag/validation-1.3.17
- github.com/itplr-kosit/xrechnung-schematron/releases/tag/v2.6.0
