Il testo di ogni regola
Tutte sono fatali nello Schematron di EN 16931 (validation-1.3.17), e Peppol BIS, XRechnung e Factur-X le applicano allo stesso modo:
- BR-08: «An Invoice shall contain the Seller postal address.»
- BR-09: «The Seller postal address (BG-5) shall contain a Seller country code (BT-40).»
- BR-10: «An Invoice shall contain the Buyer postal address (BG-8).»
- BR-11: «The Buyer postal address shall contain a Buyer country code (BT-55).»
- BR-CL-14: «Country codes in an invoice MUST be coded using ISO code list 3166-1»
All'interno dell'indirizzo, le regole di EN 16931 chiedono solo il paese. Alcuni formati chiedono di più: XRechnung esige inoltre città e codice postale del venditore (BR-DE-3 e BR-DE-4) e dell'acquirente (BR-DE-8 e BR-DE-9).

Cosa ti dice Odoo
In tutte e quattro le versioni, Odoo controlla BR-09 e BR-11 prima di generare il file UBL. Se manca il paese nella tua azienda o nel cliente, l'avviso è questo: «The country is required for the %s.», con «supplier» o «customer» nello spazio. In Odoo 17 il controllo si trova nell'esportazione Peppol BIS (e in quelle che ne ereditano, come XRechnung); in 18, 19 e 20, nel livello comune di EN 16931.
L'avviso ti indica quale scheda aprire: «supplier» è la tua azienda, quella della fattura; «customer» è il contatto di fatturazione del cliente.
Perché manca un paese in Odoo
| Situazione | Dove guardare |
|---|---|
| Azienda creata di fretta, senza indirizzo | Impostazioni dell'azienda: via, città, codice postale e paese. |
| Cliente importato da un foglio di calcolo | La colonna del paese vuota o con il nome scritto a mano invece che scelto. |
| Fattura a un contatto figlio | L'indirizzo di fatturazione del contatto che compare in fattura, non solo quello della sua azienda. |
| Cliente privato di un negozio online | L'ordine è arrivato con un indirizzo senza paese, o con un paese non presente nella lista. |
Poiché il paese in Odoo si sceglie da una lista e non si digita, BR-CL-14 quasi mai deriva da una fattura di Odoo: il codice a due lettere deriva dal paese stesso. Se lo vedi, controlla se il file è passato da un altro programma prima di arrivare al cliente.
Con il nostro modulo XRechnung e ZUGFeRD

Con il paese, il modulo non avvisa. Se alla tua azienda o al cliente manca, scrive DE, il codice della Germania, in UBL e in CII, e il suo controllo prima della generazione non guarda quel campo. Il file rispetta BR-09 e BR-11 e il validatore di KoSIT lo accetta (lo abbiamo verificato), ma l'indirizzo dice Germania anche quando il cliente è in un altro paese. Controlla il paese di ciascun cliente prima di generare.
In Odoo 18, 19 e 20, con l'abbonamento a FlexigoTech Cloud, ogni XRechnung e ogni ZUGFeRD EN 16931 generato dal modulo viene validato con le regole di KoSIT. Se al cliente mancano città o codice postale, questo sì che emerge: BR-DE-8 e BR-DE-9 restano in Validation Errors e la fattura non viene segnata come Ready to send. La versione pubblicata per Odoo 17 genera i file ma non li valida.
Passaggi
- Leggi l'avviso: «supplier» o «customer».
- Apri quella scheda e scegli il paese dalla lista; completa via, città e codice postale anche se EN 16931 non li richiede.
- Se fatturi a un contatto di un'azienda, controlla l'indirizzo di quel contatto.
- Genera di nuovo il file.
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): lib/generators/ubl_generator.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_
- Codice del modulo: flexigo_germany_xrechnung 20.0 (446f2f68): models/xrechnung_cloud.py
- Codice del modulo: flexigo_germany_xrechnung 20.0 (446f2f68): models/account_move.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
