Skip to main content
Odoo Community Association

Common EDI fiscal features

Beta License: AGPL-3 OCA/l10n-brazil Translate me on Weblate Try me on Runboat

Este módulo fornece a infraestrutura base para o Intercâmbio Eletrônico de Dados (EDI) de documentos fiscais brasileiros no Odoo.

Ele implementa uma Máquina de Estados Finitos (FSM - Finite State Machine) para gerenciar o ciclo de vida dos documentos fiscais eletrônicos (NF-e, NFC-e, NFS-e, CT-e, MDF-e etc.), garantindo integridade, consistência e rastreabilidade das transições de estado.

Principais Características

  • Máquina de Estados (FSM): controle rigoroso das transições de estado (por exemplo, de draft para open, depois para sending e finalmente para authorized, rejected ou denied), com bloqueio de movimentos inválidos.

  • Configuração extensível por documento: a FSM base é definida no método get_state_machine_config() e pode ser sobrescrita por módulos específicos de documento fiscal para ajustar estados, transições e callbacks.

  • Gerenciamento de Eventos: arquitetura para suportar eventos fiscais vinculados ao documento, como Cancelamento, Carta de Correção Eletrônica (CC-e) e Inutilização de Numeração.

  • Abstração de Protocolo: separa a lógica de negócios da lógica de comunicação. Módulos específicos (como l10n_br_nfe ou l10n_br_nfse) herdam deste módulo para implementar a integração com webservices (SEFAZ/Prefeituras), enquanto o l10n_br_fiscal_edi orquestra o fluxo.

  • Interface Padronizada: oferece uma experiência consistente com botões e ações uniformes, independentemente do modelo de documento fiscal.

Workflow de Estados

O diagrama abaixo ilustra os estados e transições padrão definidos no módulo base (a configuração pode ser estendida/sobrescrita por módulos filhos):

FSM state diagram

Table of contents

Usage

O fluxo operacional para emissão e gerenciamento de documentos fiscais (eletrônicos e não eletrônicos) segue as etapas abaixo.

  1. Validação (draft -> open)


  • O documento inicia no estado Rascunho (draft).

  • Ao clicar no botão Confirmar, o sistema executa validações de integridade, define data, comentário, numeração/sequência (quando aplicável) e demais preparações do documento.

  • O estado muda para Em Aberto (open), indicando que o documento está apto para o próximo passo.

  1. Transmissão (open -> sending -> resultado)


  • No estado Em Aberto, o botão Enviar fica disponível.

  • Ao enviar, o documento vai para o estado transitório Enviando (sending), e a camada de integração executa a comunicação com o fisco.

  • Possíveis resultados padrão:

    • Autorizado (authorized): autorização concluída com protocolo e XML de retorno.

    • Rejeitado (rejected): erros de validação retornados pelo fisco. O usuário corrige o documento e pode enviar novamente.

    • Denegado (denied): irregularidade fiscal. Em geral, representa um estado final para aquela numeração.

  • Observação: para documentos não eletrônicos (ou sem processador), o fluxo de envio pode finalizar diretamente em Autorizado conforme a implementação.

  1. Cancelamento (* -> cancel)


  • O estado Cancelado (cancel) pode ser atingido a partir de múltiplos estados no fluxo base (authorized, open, rejected, draft, sending).

  • Para documentos autorizados eletrônicos emitidos pela empresa, a ação de cancelar abre assistente próprio para coleta/processamento da justificativa.

  • Para documentos ainda não autorizados, o cancelamento pode ocorrer diretamente no fluxo local.

  1. Retorno para Rascunho (* -> draft)


  • O fluxo base permite retornar para Rascunho (draft) a partir de open, sending, rejected, cancel, denied e também de draft (idempotente).

  • Essa ação limpa informações transitórias de erro/relatório para permitir nova preparação do documento.

  1. Eventos e correções


  • Carta de Correção (CC-e): para documentos autorizados que suportam o evento.

  • Inutilização de Numeração: para faixas de numeração não utilizadas, conforme regras fiscais aplicáveis.

  1. Extensão do workflow por módulo fiscal


A FSM deste módulo é projetada para extensão. Módulos de tipos fiscais específicos podem sobrescrever get_state_machine_config() e callbacks relacionados para:

  • incluir estados adicionais;

  • alterar transições válidas;

  • personalizar regras de pré/pós-transição;

  • adaptar o fluxo ao comportamento dos webservices de cada documento.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Akretion

  • KMEE

Contributors

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainers:

renatonlima rvalyi mileo

This module is part of the OCA/l10n-brazil project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file odoo_addon_l10n_br_fiscal_edi-19.0.1.0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for odoo_addon_l10n_br_fiscal_edi-19.0.1.0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c09548de1c7fde943fc2a6e56fa62b1a26f62e188eb88acdaa272d68ffbb8022
MD5 b54b02873068c09d0354d8ec2e1a15e8
BLAKE2b-256 ea75e5707847921595d94f38b3228805e4b115bb42f4e7b8a91c74c19ece0d1b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

19.0.1.0.0.2 This release

1 file

18.0.3.0.1.1

1 file

18.0.3.0.1

1 file

18.0.3.0.0.1

1 file

18.0.3.0.0

1 file

18.0.2.0.1.1

1 file

18.0.2.0.1

1 file

18.0.2.0.0.2

1 file

18.0.2.0.0

1 file

18.0.1.0.0.5

1 file

18.0.1.0.0.4

1 file

17.0.3.1.1.1

1 file

17.0.3.1.1

1 file

17.0.3.1.0

1 file

17.0.3.0.0.1

1 file

17.0.3.0.0

1 file

17.0.2.0.1

1 file

17.0.2.0.0.2

1 file

17.0.2.0.0

1 file

17.0.1.1.0

1 file

17.0.1.0.0.3

1 file

17.0.1.0.0.2

1 file

16.0.2.1.1

1 file

16.0.2.1.0

1 file

16.0.2.0.0

1 file

16.0.1.9.1

1 file

16.0.1.9.0.1

1 file

16.0.1.9.0

1 file

16.0.1.8.0

1 file

16.0.1.7.0

1 file

16.0.1.6.0

1 file

16.0.1.5.3

1 file

16.0.1.5.2

1 file

16.0.1.5.1.1

1 file

16.0.1.5.1

1 file

16.0.1.5.0.1

1 file

16.0.1.5.0

1 file

16.0.1.4.2

1 file

16.0.1.4.1

1 file

16.0.1.4.0

1 file

16.0.1.3.0

1 file

16.0.1.2.0

1 file

16.0.1.1.4

1 file

16.0.1.1.3

1 file

16.0.1.1.2

1 file

16.0.1.1.1

1 file

16.0.1.1.0

1 file

16.0.1.0.1

1 file

16.0.1.0.0.2

1 file

15.0.1.4.0

1 file

15.0.1.3.0

1 file

15.0.1.2.0

1 file

15.0.1.1.1

1 file

15.0.1.1.0

1 file

15.0.1.0.0.2

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page