Set regles giren al voltant del mateix bloc. BR-49, BR-61 i BR-50 són de la norma europea EN 16931 i valen per a qualsevol format; les BR-DE són només de XRechnung (Schematron v2.6.0 de KoSIT):
- BR-DE-1 (fatal): «Eine Rechnung (INVOICE) muss Angaben zu "PAYMENT INSTRUCTIONS" (BG-16) enthalten.» Sense bloc de pagament, la XRechnung no és vàlida.
- 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.» Una transferència no pot portar alhora dades de targeta (BG-18) ni de domiciliació (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.» És un avís: amb el codi 58, el compte hauria de ser un IBAN vàlid.

Els mitjans de pagament que veuràs
- 30
- Transferència (credit transfer). És el que posa Odoo en una factura amb Recipient Bank.
- 58
- Transferència SEPA. És el que posa el nostre mòdul XRechnung i ZUGFeRD.
- ZZZ
- Acordat entre les parts (mutually defined). És el que posa Odoo en una factura sense banc.
- 57
- Acord permanent (standing agreement). És el que posa Odoo a les factures rectificatives (abonaments).
Què fa Odoo amb una factura
A Odoo 17, 18, 19 i 20 la decisió és la mateixa i depèn del camp Recipient Bank de la factura. Si té banc, el mitjà és 30 i el compte va a BT-84: BR-61, BR-50 i BR-DE-23-a es compleixen soles. Si no en té, el mitjà és ZZZ. El bloc BG-16 existeix, així que BR-DE-1 no salta, però la factura no diu a quin compte cobrar.
A més, abans de generar el fitxer, Odoo repeteix la comprovació de BR-61: si el mitjà és 30 o 58 i la factura no té Recipient Bank, s'atura amb l'avís de camp obligatori. Amb la lògica anterior és difícil arribar-hi, però un mòdul que canviï el mitjà de pagament sí que ho pot provocar.
Amb el nostre mòdul XRechnung i ZUGFeRD
El mòdul no mira el Recipient Bank: les instruccions de pagament surten de l'IBAN de XRechnung de la teva empresa, amb el mitjà 58, l'IBAN a BT-84 i el BIC si n'hi ha. Si aquest IBAN és buit, el mòdul no genera res i s'atura abans amb l'avís «Company IBAN (BT-84) is required for XRechnung generation.». Així, amb el mòdul, una factura sense BG-16 no arriba a sortir.

A Odoo 18, 19 i 20, amb la subscripció a FlexigoTech Cloud, cada XRechnung que es genera passa a més per les regles de KoSIT, i només la que les compleix queda com a Ready to send. A Odoo 17, la versió publicada no valida.
Com arreglar-ho
- A Odoo, tria el banc de cobrament al camp Recipient Bank de la factura abans de generar la XRechnung.
- Amb el nostre mòdul, omple l'IBAN de XRechnung de la teva empresa (i el BIC, si el teu client el demana).
- Comprova que l'IBAN és correcte: amb el mitjà 58, BR-DE-19 avisa si no ho és.
- Torna a generar la XRechnung; la que ja has enviat es queda tal com estava.
Continua llegint
Comprovat al codi del mòdul (versió 17.0 i 20.0) i a les fonts enllaçades
Fonts
- Codi del mòdul: 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_
- Codi del mòdul: flexigo_germany_xrechnung 20.0 (446f2f68): lib/generators/ubl_generator.py
- Codi del mòdul: flexigo_germany_xrechnung 20.0 (446f2f68): models/xrechnung_cloud.py
- Codi del mòdul: 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
