De tekst van elke regel
Alle zijn fataal in het Schematron van EN 16931 (validation-1.3.17), en Peppol BIS, XRechnung en Factur-X passen ze op dezelfde manier toe:
- 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"
Binnen het adres vragen de regels van EN 16931 alleen om het land. Sommige formaten vragen meer: XRechnung vereist bovendien de plaats en postcode van de verkoper (BR-DE-3 en BR-DE-4) en van de koper (BR-DE-8 en BR-DE-9).

Wat Odoo je vertelt
In de vier versies controleert Odoo BR-09 en BR-11 voordat het het UBL-bestand genereert. Als het land ontbreekt bij je bedrijf of bij de klant, luidt het bericht: "The country is required for the %s.", met "supplier" of "customer" in de lege plek. In Odoo 17 zit de controle in de Peppol BIS-export (en in de exports die daarvan erven, zoals XRechnung); in 18, 19 en 20 in de gedeelde EN 16931-laag.
Het bericht vertelt je welke kaart je moet openen: "supplier" is je bedrijf, dat van de factuur; "customer" is het facturatiecontact van de klant.
Waarom er in Odoo een land ontbreekt
| Situatie | Waar je moet kijken |
|---|---|
| Bedrijf in allerijl aangemaakt, zonder adres | Bedrijfsinstellingen: straat, plaats, postcode en land. |
| Klant geïmporteerd uit een spreadsheet | De landkolom leeg of met de naam met de hand ingetypt in plaats van gekozen. |
| Factuur naar een onderliggend contact | Het facturatieadres van het contact op de factuur, niet alleen dat van het bedrijf. |
| Particuliere klant uit een webwinkel | De bestelling kwam met een adres zonder land, of met een land dat niet in de lijst staat. |
Omdat het land in Odoo uit een lijst wordt gekozen en niet getypt, komt BR-CL-14 bijna nooit uit een Odoo-factuur: de tweeletterige code komt uit het land zelf. Als je hem ziet, controleer dan of het bestand een ander programma heeft gepasseerd voordat het bij de klant aankwam.
Met onze module XRechnung en ZUGFeRD

De module waarschuwt je niet bij het land. Als je bedrijf of de klant er geen heeft, schrijft hij DE, de code voor Duitsland, in UBL en in CII, en de controle vóór het genereren kijkt niet naar dat veld. Het bestand voldoet aan BR-09 en BR-11 en de validator van KoSIT accepteert het (dat hebben we gecontroleerd), maar het adres zegt Duitsland, ook als de klant in een ander land zit. Controleer het land van elke klant voordat je genereert.
In Odoo 18, 19 en 20, met het abonnement op FlexigoTech Cloud, wordt elke XRechnung en elke ZUGFeRD EN 16931 die de module genereert gevalideerd met de regels van KoSIT. Als bij de klant de plaats of postcode ontbreekt, komt dat wel naar voren: BR-DE-8 en BR-DE-9 blijven staan onder Validation Errors en de factuur wordt niet als Ready to send gemarkeerd. De versie die voor Odoo 17 is gepubliceerd, genereert de bestanden maar valideert ze niet.
Stappen
- Lees het bericht: "supplier" of "customer".
- Open die kaart en kies het land uit de lijst; vul straat, plaats en postcode in, ook al vraagt EN 16931 ze niet.
- Als je een contact van een bedrijf factureert, controleer dan het adres van dat contact.
- Genereer het bestand opnieuw.
Lees verder
Gecontroleerd in de broncode van de module (versie 17.0 en 20.0) en in de gelinkte bronnen
Bronnen
- Broncode van de module: 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_
- Broncode van de module: flexigo_germany_xrechnung 20.0 (446f2f68): models/xrechnung_cloud.py
- Broncode van de module: flexigo_germany_xrechnung 20.0 (446f2f68): models/account_move.py
- Broncode van de module: 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
