| Regra | Gravidade | Texto da KoSIT | O que falta |
|---|---|---|---|
| BR-DE-2 | fatal | Die Gruppe "SELLER CONTACT" (BG-6) muss übermittelt werden. | O bloco inteiro de contacto do vendedor. |
| BR-DE-3 | fatal | Das Element "Seller city" (BT-37) muss übermittelt werden. | A cidade da sua empresa. |
| BR-DE-4 | fatal | Das Element "Seller post code" (BT-38) muss übermittelt werden. | O código postal da sua empresa. |
| BR-DE-5 | fatal | Das Element "Seller contact point" (BT-41) muss übermittelt werden. | Uma pessoa ou um departamento de contacto. |
| BR-DE-6 | fatal | Das Element "Seller contact telephone number" (BT-42) muss übermittelt werden. | Um telefone. |
| BR-DE-7 | fatal | Das Element "Seller contact email address" (BT-43) muss übermittelt werden. | Um e-mail. |
| BR-DE-27 | warning | In BT-42 sollen mindestens drei Ziffern enthalten sein. | Um telefone com pelo menos três algarismos. |
| BR-DE-28 | warning | In BT-43 soll genau ein @-Zeichen enthalten sein, welches nicht von einem Leerzeichen, einem Punkt, aber mindestens zwei Zeichen auf beiden Seiten flankiert werden soll. Ein Punkt sollte nicht am Anfang oder am Ende stehen. | Um e-mail bem formado: um só @, sem espaços nem pontos colados a ele, e sem ponto no início ou no fim. |
Os textos são os do Schematron da XRechnung 3.0.2 (versão v2.6.0 da KoSIT), em alemão, tal como os devolve o validador. Entre as regras da EN 16931 não há nenhuma que peça o contacto do vendedor; entre as da XRechnung, sim. Por isso só aparecem quando a fatura é uma XRechnung.

Os dois avisos não derrubam a fatura
BR-DE-27 e BR-DE-28 têm gravidade warning no Schematron, não fatal. O relatório mostra-os, mas uma XRechnung que tenha apenas estes dois avisos continua válida. Vale a pena corrigi-los na mesma: um telefone como «-» ou um e-mail com espaços costumam vir de uma ficha preenchida à pressa.
O que o Odoo verifica antes de gerar
A XRechnung que traz o Odoo verifica duas destas regras na ficha da sua empresa antes de gerar o ficheiro, consoante a versão:
- Odoo 17: pede um telefone ou um telemóvel, com o aviso «At least one of the following fields %s is required on %s.», e o e-mail, com «The field %s is required on %s.».
- Odoo 18: por defeito não verifica nem o telefone nem o e-mail. Essa verificação está no exportador antigo, e o Odoo 18 usa o novo, salvo se o parâmetro do sistema account_edi_ubl_cii.use_new_dict_to_xml_helpers estiver com o valor False. O novo escreve como telefone (BT-42) apenas o campo Telefone: se a sua empresa só tiver telemóvel, a XRechnung sai sem telefone e o validador dá BR-DE-6.
- Odoo 19 e 20: pedem o telefone e o e-mail, e o aviso diz «The field %(field)s is required on %(record)s.», com o nome do campo e o nome da sua empresa.
A cidade, o código postal e o ponto de contacto não têm essa verificação prévia em nenhuma versão. Se a ficha da sua empresa não os tiver, ficará a saber pelo validador do seu cliente ou pelo seu.
Com o nosso módulo XRechnung e ZUGFeRD
O módulo escreve o bloco BG-6 com o nome da sua empresa como ponto de contacto (BT-41), o respetivo telefone (BT-42) e o respetivo e-mail (BT-43). Antes de gerar, verifica o telefone e o e-mail da empresa, e também o e-mail do cliente, com uma mensagem para cada um.

No Odoo 18, 19 e 20, com a subscrição ao FlexigoTech Cloud, cada XRechnung é validada com as regras da KoSIT e o que falha fica na fatura, em Validation Errors, uma linha por regra com o respetivo nível. Só a que passa fica como Ready to send. No Odoo 17, a versão publicada gera a XRechnung, mas não a valida.
O que preencher
- Ficha da sua empresa: morada, cidade e código postal completos.
- Telefone com indicativo e pelo menos três algarismos, no campo Telefone: o telemóvel só conta na XRechnung do Odoo 17.
- Um e-mail de faturação que alguém leia, com um só @ e sem espaços.
- Volte a gerar a XRechnung e reveja o resultado antes de a enviar.
Continue a ler
Verificado no código do módulo (versão 17.0 e 20.0) e nas fontes indicadas
Fontes
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/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_
- 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_
- Código do módulo: flexigo_germany_xrechnung 20.0 (446f2f68): lib/generators/ubl_generator.py
- Código do módulo: flexigo_germany_xrechnung 20.0 (446f2f68): models/xrechnung_cloud.py
- Código do módulo: flexigo_germany_xrechnung 20.0 (446f2f68): models/account_move.py
- Código do módulo: flexigo_germany_xrechnung 17.0 (ad05de8f): __manifest__.py
- github.com/itplr-kosit/xrechnung-schematron/releases/tag/v2.6.0
- github.com/OpenPEPPOL/peppol-bis-invoice-3/releases/tag/3.0.22
