Repository
OCA/l10n-brazil · module folder · Try on Runboat
Module version
2.0.0
Category
Uncategorized
Folder size
0.16 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-brazil
Last tracking update
2026-09-17 17:01:18
Authors
Akretion, Odoo Community Association (OCA), KMEE, Engenere
Maintainers
Akretion, Odoo Community Association (OCA), KMEE, Engenere
Committers
Raphaël Valyi, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
brazil_fiscal_client, brazilfiscalreport, nfelib, erpbrasil-base>=2.4.2, email-validator, num2words, phonenumbers, requests, erpbrasil.assinatura, erpbrasil.edoc, erpbrasil.transmissao, transitions
System dependencies
None
Required by
None
Description
# Monitor de NF-e (Distribuição de DFe)

Este módulo implementa a funcionalidade de monitoramento, download e processamento automático de **Notas Fiscais Eletrônicas (NF-e, modelo 55)** emitidas contra o CNPJ da sua empresa. Ele opera conectando-se diretamente ao Web Service de Distribuição de DF-e da SEFAZ (Ambiente Nacional).

Este módulo estende o framework abstrato genérico `l10n_br_fiscal_dfe` e incorpora as necessidades e especificidades exclusivas aplicadas à Nota Fiscal Eletrônica (como Manifestação do Destinatário e os schemas XML da NF-e).

## Principais Funcionalidades

* **Consulta Automática (Polling):** Tarefa agendada (Cron) que consulta periodicamente o serviço da SEFAZ, garantindo que você tenha acesso rápido a todas as NF-es emitidas contra o seu CNPJ sem precisar solicitar o arquivo ao fornecedor.
* **Processamento Especializado:** Identifica e separa os payloads baixados nos seus devidos formatos: XMLs Completos com protocolo (`procNFe`), Resumos da NF-e (`resNFe`) e Eventos da Nota Fiscal (`resEvento` / `procEventoNFe`).
* **Manifestação do Destinatário (MD-e):** Funcionalidade nativa para acusar o recebimento ou rejeição da NF-e perante a SEFAZ:
  * **Ciência da Operação:** Confirmação prévia para liberar o download do XML completo.
  * **Confirmação da Operação.**
  * **Desconhecimento da Operação.**
  * **Operação não Realizada.**
* **Manifestação Automática:** Opção para o Odoo aplicar o evento de "Ciência da Operação" instantânea e automaticamente a todas as novas notas resumidas identificadas, acelerando o recebimento do arquivo completo para importação.
* **Importação Inteligente:** Botão de ação que converte instantaneamente o XML válido baixado em um rascunho de Documento Fiscal padrão do Odoo (`l10n_br_fiscal.document`), pré-populando os impostos, CFOPs, emitentes e destinatários.
* **Geração de DANFE:** Geração do documento PDF do DANFE utilizando a biblioteca `brazilfiscalreport`.
* **Notificações:** Notifica os usuários inscritos, diretamente no inbox do Odoo, caso novas NF-es emitidas por terceiros sejam detectadas no servidor da Receita Federal.

Este módulo é implementado em estrita conformidade com a [Nota Técnica 2014.002 v1.30](https://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=P0U3lU1Fe40=).

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
nfe_dfe_document_tree l10n_br_fiscal_dfe.document.tree.nfe l10n_br_fiscal_dfe.document tree New
nfe_dfe_res_company_form nfe.dfe.res.company.form res.company form Inherits l10n_br_fiscal.fiscal_res_company_form
view_l10n_br_fiscal_dfe_document_form_nfe l10n_br_fiscal_dfe.document.form.nfe l10n_br_fiscal_dfe.document form Inherits l10n_br_fiscal_dfe.l10n_br_fiscal_dfe_document_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (3)

New fields (3)
  • cfop_ids Many2many → l10n_br_fiscal.cfop
    comodel_name='l10n_br_fiscal.cfop' compute='_compute_nfe_cfop_ids' string='CFOPs'
  • manifestation_status Selection
    compute='_compute_manifestation_status' selection=[('ciente', 'Ciente da Operação'), ('confirmado', 'Confirmada operação'), ('desconhecido', 'Desconhecimento'), ('nao_realizado', 'Não realizado'), ('sem_manifestacao', 'Sem manifestação')]
  • manifestations_ids One2many → l10n_br_nfe.md_event
    comodel_name='l10n_br_nfe.md_event' inverse_name='dfe_document_id' string='Manifestations'
Public methods (3)
  • create_nfe_md_action(self)
  • import_document(self)
  • make_pdf(self)
    Generate the DANFE PDF from the complete NF-e XML.

New fields (1)
  • dfe_document_id Many2one → l10n_br_fiscal_dfe.document
    comodel_name='l10n_br_fiscal_dfe.document' index=True string='DF-e Document'
Public methods (1)
  • action_confirm(self)
    When a manifestation (like Ciência) is confirmed, schedule a new DF-e query soon to get the full XML.

New fields (9)
  • auto_manifest_nfe Boolean
    default=False help='Automatically acknowledge receipt of notifications or events without manual intervention' string='Automatic Recipient Manifestation (NF-e)'
  • nfe_auto_fetch Boolean
    default=False help='Periodically queries DF-e distribution for new NF-e documents' string='Auto-fetch NF-e DF-e'
  • nfe_dfe_last_query Datetime
    string='NF-e DF-e Last Query'
  • nfe_dfe_last_status Char
    readonly=True string='NF-e DF-e Last Status'
  • nfe_dfe_last_status_code Char
    readonly=True string='NF-e DF-e Last Status Code'
  • nfe_dfe_next_query Datetime
    help='NF-e DF-e distribution will not be queried before this time.' string='NF-e Next Scheduled Query'
  • nfe_dfe_version Selection
    default=DFE_VERSION_DEFAULT selection=DFE_VERSIONS string='NF-e DF-e Version'
  • nfe_last_nsu Char
    default='0' size=25 string='NF-e Last NSU'
  • nfe_max_nsu Char
    readonly=True string='NF-e Max NSU'
Public methods (4)
  • action_banner_search_all_nfe(self)
    @api.model
    Called from the NF-e banner button — delegates to current company.
  • action_banner_specific_search_nfe(self)
    @api.model
    Called from the NF-e banner button — delegates to current company.
  • nfe_dfe_search_documents(self)
  • parse_procNFe(self, xml)
    @api.model