OdooWiki OCA HUB

A1 fiscal certificate management for Brazil

l10n_br_fiscal_certificate folder_open OCA/l10n-brazil open_in_new
Localisation License: AGPL-3

Gerencia os certificados digitais A1 (e-CNPJ e e-NF-e) usados para assinar e transmitir os documentos fiscais eletrônicos brasileiros.

O módulo não define um modelo próprio de certificado: ele estende o módulo nativo certificate do Odoo (modelo certificate.certificate), reaproveitando o armazenamento do arquivo PKCS#12 (.pfx/.p12), a extração do certificado e da chave em PEM, o cálculo de validade e as telas do core, e acrescenta o que é específico do Brasil:

  • o escopo l10n_br ("Brazilian Fiscal"), que identifica os certificados fiscais brasileiros e filtra os certificados oferecidos nos campos de certificado do sistema;
  • os campos calculados owner_cnpj_cpf (CNPJ/CPF do titular, lido do subject), issuer_name (emissor) e name (titular e validade);
  • o campo certificate_id na empresa, exibido na página "Certificados" da aba Fiscal, que substitui os antigos certificate_nfe_id e certificate_ecnpj_id: agora cada empresa tem um único certificado;
  • a herança de certificado entre empresas: uma filial sem certificado próprio usa o da matriz (campo calculado certificate), o que é aceito pela SEFAZ por terem a mesma raiz de CNPJ;
  • os métodos _get_br_certificate() e _get_br_ecertificate(), ponto único de acesso ao certificado para assinatura e transmissão, com validação de vigência (e do CNPJ, quando a operação exige um e-CNPJ).

Esse ponto único de acesso é usado pelos módulos fiscais:

  • l10n_br_nfe: assinatura e transmissão de NF-e e NFC-e, eventos de manifestação do destinatário (MDE) e inutilização de numeração;
  • l10n_br_mdfe: assinatura e transmissão de MDF-e;
  • l10n_br_cte: assinatura e transmissão de CT-e;
  • l10n_br_nfe_dfe: distribuição de DF-e (consulta dos documentos por NSU);
  • l10n_br_nfse: assinatura e transmissão de NFS-e;
  • l10n_br_ie_search: consulta de inscrição estadual na SEFAZ.

A migração 18.0.2.0.0 converte automaticamente os certificados cadastrados no modelo antigo (l10n_br_fiscal.certificate) para o modelo nativo, preservando o arquivo, a senha e a empresa que os utilizava.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Lets Brazilian companies store and select their A1 digital certificates (e-CNPJ/e-NF-e) in Odoo, showing the holder's CNPJ/CPF and issuer, and checks the certificate before it is used to sign fiscal documents.

This module adds Brazilian fiscal handling to Odoo's standard certificate feature, so a company can keep its A1 digital certificate (the file used to sign and send electronic fiscal documents) inside Odoo.

Where it appears: - A new "Certificates" menu under the fiscal configuration menus, visible only to fiscal managers, listing certificates filtered to the Brazilian fiscal type. - A "Certificates" page on the company form (Fiscal tab) where a manager picks the certificate of the company. - A setting "Certificate expiration alert" (default 30 days) in the general settings.

What it adds: - Certificates get a "Brazilian Fiscal" type, and on Brazilian companies this type is pre-selected. - For Brazilian certificates, the form and list show the holder's CNPJ/CPF (read from the certificate holder name) and the issuer name, plus the end date. - The certificate name is built automatically from the holder name and the validity end date. - A company without its own certificate automatically uses the certificate of its closest parent company.

Business rules: - Before signing or sending a fiscal document, Odoo checks that a certificate exists and is still valid; otherwise it blocks the operation with a clear message. - Some operations can require an e-CNPJ certificate (14-digit CNPJ); other certificate types are refused. - An expired certificate is also refused with a message showing its validity period.

On demo data, fake test certificates are created for the demo companies.

Depends on

l10n_br_fiscalcertificate

Menus it adds

certificate_menu
Models and fields (3)
  • res.company · extends an existing modelcertificate (Certificate in Use), certificate_id (Certificate)
  • res.config.settings · extends an existing modelcert_expired_alert (Certificate Expired Alert)
  • certificate.certificate · extends an existing modelname, scope, issuer_name (Issuer), owner_cnpj_cpf (CNPJ/CPF)

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 6 confirmed, 3 with no information of 9 versions.

Sources · Odoo 15.0

Confirmed on 2026-11-03 in branch 15.0 of OCA/l10n-brazil.

terminal Installation and usage

OCA documentation · Odoo 19.0

Cadastro do certificado

  • Importe o certificado A1 (arquivo .pfx ou .p12) em Fiscal > Configuração > Outros > Certificados, informando a senha do arquivo. Para empresas brasileiras o campo "Scope" já vem preenchido com "Brazilian Fiscal".
  • Na ficha da empresa (Configurações > Empresas), aba Fiscal, página Certificados, escolha o certificado no campo Certificado (certificate_id). O certificado também pode ser criado direto por esse campo.

Cada empresa usa um único certificado. Uma filial sem certificado próprio usa o certificado da matriz: nesse caso, o campo Certificate in Use (certificate, somente leitura) mostra o certificado que será utilizado.

Uso

O certificado é usado automaticamente para assinar e transmitir os documentos fiscais eletrônicos (NF-e, NFC-e e NFS-e), para os eventos de manifestação do destinatário e a inutilização de numeração (NF-e) e para a distribuição de DF-e. Não é preciso configurar nada nos módulos de cada documento.

A validade é conferida a cada uso: um certificado vencido impede a assinatura e a transmissão, com uma mensagem de erro indicando o período de validade do certificado.

Para renovar, importe o novo certificado e troque o campo Certificado da empresa.

Alerta de expiração

Em Configurações, o campo Alerta de Certificado Expirado define a antecedência, em dias, do alerta de expiração do certificado (padrão: 30 dias).

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.