Der Wortlaut jeder Regel
Alle sind im Schematron von EN 16931 (validation-1.3.17) fatal, und Peppol BIS, XRechnung und Factur-X wenden sie gleich an:
- 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»
Innerhalb der Adresse verlangen die Regeln von EN 16931 nur das Land. Manche Formate fordern mehr: XRechnung verlangt außerdem Ort und Postleitzahl des Verkäufers (BR-DE-3 und BR-DE-4) und des Käufers (BR-DE-8 und BR-DE-9).

Was Odoo Ihnen meldet
In allen vier Versionen prüft Odoo BR-09 und BR-11, bevor die UBL-Datei erzeugt wird. Fehlt das Land in Ihrem Unternehmen oder beim Kunden, lautet die Meldung: «The country is required for the %s.», wobei im Platzhalter «supplier» oder «customer» steht. In Odoo 17 liegt die Prüfung im Peppol-BIS-Export (und in den Formaten, die davon erben, etwa XRechnung); in 18, 19 und 20 in der gemeinsamen EN-16931-Schicht.
Die Meldung sagt Ihnen, welchen Datensatz Sie öffnen müssen: «supplier» ist Ihr Unternehmen, also der Rechnungssteller; «customer» ist der Rechnungskontakt des Kunden.
Warum in Odoo ein Land fehlt
| Situation | Wo nachsehen |
|---|---|
| Unternehmen in Eile angelegt, ohne Adresse | Unternehmenseinstellungen: Straße, Ort, Postleitzahl und Land. |
| Kunde aus einer Tabelle importiert | Die Landspalte ist leer oder von Hand statt aus der Liste eingetragen. |
| Rechnung an einen untergeordneten Kontakt | Die Rechnungsadresse des Kontakts auf der Rechnung, nicht nur die seines Unternehmens. |
| Privatkunde aus einem Onlineshop | Die Bestellung kam mit einer Adresse ohne Land oder mit einem Land, das nicht in der Liste steht. |
Da das Land in Odoo aus einer Liste gewählt und nicht getippt wird, kommt BR-CL-14 bei einer Odoo-Rechnung kaum vor: Der Zweibuchstabencode stammt direkt aus dem Land. Falls er auftaucht, prüfen Sie, ob die Datei vor dem Kunden ein anderes Programm durchlaufen hat.
Mit unserem Modul XRechnung und ZUGFeRD

Beim Land warnt das Modul nicht. Fehlt es bei Ihrem Unternehmen oder beim Kunden, schreibt es DE, den Code für Deutschland, in UBL und in CII, und seine Prüfung vor der Erzeugung schaut dieses Feld nicht an. Die Datei erfüllt BR-09 und BR-11, und der Validator von KoSIT akzeptiert sie (wir haben es geprüft), doch die Adresse nennt dann Deutschland, auch wenn der Kunde in einem anderen Land sitzt. Prüfen Sie das Land jedes Kunden, bevor Sie erzeugen.
In Odoo 18, 19 und 20 wird mit dem Abonnement FlexigoTech Cloud jede XRechnung und jede ZUGFeRD EN 16931, die das Modul erzeugt, gegen die Regeln von KoSIT geprüft. Fehlen beim Kunden Ort oder Postleitzahl, wird das angezeigt: BR-DE-8 und BR-DE-9 erscheinen unter Validation Errors, und die Rechnung wird nicht als Ready to send markiert. Die für Odoo 17 veröffentlichte Version erzeugt die Dateien, prüft sie aber nicht.
Schritte
- Lesen Sie die Meldung: «supplier» oder «customer».
- Öffnen Sie diesen Datensatz, wählen Sie das Land aus der Liste und ergänzen Sie Straße, Ort und Postleitzahl, auch wenn EN 16931 sie nicht verlangt.
- Wenn Sie an einen Kontakt eines Unternehmens fakturieren, prüfen Sie die Adresse dieses Kontakts.
- Erzeugen Sie die Datei erneut.
Weiterlesen
Geprüft im Quellcode des Moduls (Version 17.0 und 20.0) und in den verlinkten Quellen
Quellen
- Quellcode des Moduls: 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_
- Quellcode des Moduls: flexigo_germany_xrechnung 20.0 (446f2f68): models/xrechnung_cloud.py
- Quellcode des Moduls: flexigo_germany_xrechnung 20.0 (446f2f68): models/account_move.py
- Quellcode des Moduls: 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
