OdooWiki OCA HUB

Common EDI fiscal features

l10n_br_fiscal_edi folder_open OCA/l10n-brazil open_in_new
Localisation Licencia: AGPL-3

Este módulo proporciona la infraestructura base para el Intercambio Electrónico de Datos (EDI) de documentos fiscales brasileños en Odoo.

Implementa una Máquina de Estados Finitos (FSM - Finite State Machine) para gestionar el ciclo de vida de los documentos fiscales electrónicos (NF-e, NFC-e, NFS-e, CT-e, MDF-e, etc.), garantizando integridad, consistencia y trazabilidad de las transiciones de estado.

Características Principales

  • Máquina de Estados (FSM): control riguroso de las transiciones de estado (por ejemplo, de draft a open, luego a sending y finalmente a authorized, rejected o denied), con bloqueo de movimientos inválidos.
  • Configuración extensible por documento: la FSM base se define en el método get_state_machine_config() y puede ser sobrescrita por módulos específicos de documento fiscal para ajustar estados, transiciones y callbacks.
  • Gestión de Eventos: arquitectura para soportar eventos fiscales vinculados al documento, como Cancelación, Carta de Corrección Electrónica (CC-e) e Inutilización de Numeración.
  • Abstracción de Protocolo: separa la lógica de negocio de la lógica de comunicación. Módulos específicos (como l10n_br_nfe o l10n_br_nfse) heredan de este módulo para implementar la integración con webservices (SEFAZ/Prefeituras), mientras que l10n_br_fiscal_edi orquesta el flujo.
  • Interfaz Estandarizada: ofrece una experiencia consistente con botones y acciones uniformes, independientemente del modelo de documento fiscal.

Flujo de Estados

El diagrama a continuación ilustra los estados y transiciones predeterminados definidos en el módulo base (la configuración puede ser extendida/sobrescrita por módulos hijos):

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 19.0

Añade un ciclo de vida controlado para los documentos fiscales electrónicos brasileños (NF-e, NFC-e, CT-e, MDF-e, NFS-e), con botones para confirmar, enviar, cancelar, corregir e invalidar números, además de un registro de eventos fiscales y archivos XML/PDF.

Este módulo da a los documentos fiscales electrónicos brasileños un flujo de estados estricto y paso a paso: borrador, confirmado (abierto), enviando, autorizado, rechazado, denegado, cancelado e invalidado. Cada cambio de estado solo se permite desde el estado anterior correcto, de modo que los usuarios no pueden saltarse pasos ni hacer retroceder un documento por error.

En un documento fiscal dispone de botones para confirmar, enviar, devolver a borrador, cancelar, crear una carta de corrección e invalidar un número. La cancelación de un documento autorizado abre un asistente de cancelación; las correcciones y la invalidación de número también abren sus propios asistentes. Una corrección solo se ofrece para documentos autorizados emitidos por su propia compañía, y la invalidación de número solo para documentos de la compañía rechazados o denegados.

Cada intercambio con la autoridad fiscal se almacena como un evento fiscal, con su tipo de servicio, estado, mensaje de respuesta, número de protocolo y fecha, y los archivos XML de solicitud y respuesta. Los eventos se pueden imprimir mediante un informe dedicado. El formulario del documento muestra los protocolos de autorización, cancelación e invalidación, los archivos XML y cualquier error de validación XML.

Reglas de negocio: se requiere un emisor para los documentos electrónicos; una clave de acceso debe ser válida y única por compañía; una justificación debe tener al menos 15 caracteres; un documento cuyo XML falló la validación no se puede enviar; y un documento ya tratado como cancelado para SPED no puede volver a borrador. Una acción de comprobación de estado consulta a la autoridad fiscal sobre los documentos seleccionados en pequeños lotes e informa de lo que cambió.

Los nuevos menús 'Fiscal Event' e 'Invalidate Number' aparecen bajo el menú de documentos fiscales, y el panel de operaciones fiscales cuenta los documentos confirmados pero no enviados, enviando y rechazados como aún por confirmar.

Depende de

Menús que añade

Invalidate NumberFiscal Event
Modelos y campos (8)
  • l10n_br_fiscal.event · modelo nuevotype (Service), state (Status), origin (Source Document), message, response (Response Message), sequence, file_path, company_id (Company), partner_id (Partner), write_date, create_date, document_id (Fiscal Document), environment, status_code, display_name (name), justification, protocol_date, document_number, file_request_id (XML), protocol_number, document_type_id (Fiscal Document Type), file_response_id (XML Response), document_serie_id, lot_receipt_number, invalidate_number_id (Invalidate Number)
  • l10n_br_fiscal.document · amplía un modelo existenteissuer, event_ids (Events), state_edoc, cancel_date (Cancel Protocol Date), status_code, status_name, send_file_id (Send Document File XML), cancel_reason, cancel_file_id (Cancel File XML), file_report_id (Document Report), cancel_event_id (Cancel Event), invalidate_date (Invalidate Protocol Date), is_edoc_printed (Is Printed?), document_version (Version), correction_reason, xml_error_message (XML validation errors), authorization_date (Authorization Protocol Date), invalidate_file_id (Invalidate File XML), status_description, invalidate_event_id (Invalidate Event), correction_event_ids (Correction Events), authorization_file_id (Authorization File XML), authorization_event_id (Authorization Event), authorization_protocol (Authorization Protocol Number), cancel_protocol_number (Cancel Protocol Protocol), invalidate_protocol_number (Invalidate Protocol Number)
  • l10n_br_fiscal.document.related · amplía un modelo existente
  • l10n_br_fiscal.base.wizard.mixin · amplía un modelo existenteevent_id (Fiscal Event)
  • l10n_br_fiscal.invalidate.number · amplía un modelo existenteevent_ids (Events), send_file_id (Send Document File XML), authorization_date (Authorization Date), authorization_file_id (Authorization File XML), authorization_event_id (Authorization Event), authorization_protocol (Authorization Protocol)
  • l10n_br_fiscal.document.cancel.wizard · modelo nuevo
  • l10n_br_fiscal.invalidate.number.wizard · modelo nuevo
  • l10n_br_fiscal.document.correction.wizard · modelo nuevo

Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. El módulo es muy grande y solo se ha leído una parte del código. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 6 confirmadas, 3 sin información de 9 versiones.

Fuentes · Odoo 19.0

Confirmado el 2026-11-03 en la rama 19.0 de OCA/l10n-brazil.

terminal Instalación y uso

Documentación de OCA · Odoo 19.0

El flujo operativo para la emisión y gestión de documentos fiscales (electrónicos y no electrónicos) sigue las etapas que se indican a continuación.

  • Validación (draft -> open)
  • El documento inicia en el estado Borrador (draft).
  • Al hacer clic en el botón Confirmar, el sistema ejecuta validaciones de integridad, define fecha, comentario, numeración/secuencia (cuando corresponda) y demás preparaciones del documento.
  • El estado cambia a Abierto (open), lo que indica que el documento está apto para el siguiente paso.
  • Transmisión (open -> sending -> resultado)
  • En el estado Abierto, el botón Enviar queda disponible.
  • Al enviar, el documento pasa al estado transitorio Enviando (sending), y la capa de integración ejecuta la comunicación con el fisco.
  • Posibles resultados estándar:
  • Autorizado (authorized): autorización completada con protocolo y XML de retorno.
  • Rechazado (rejected): errores de validación devueltos por el fisco. El usuario corrige el documento y puede enviarlo nuevamente.
  • Denegado (denied): irregularidad fiscal. En general, representa un estado final para esa numeración.
  • Observación: para documentos no electrónicos (o sin procesador), el flujo de envío puede finalizar directamente en Autorizado según la implementación.
  • Cancelación (* -> cancel)
  • El estado Cancelado (cancel) puede alcanzarse desde múltiples estados en el flujo base (authorized, open, rejected, draft, sending).
  • Para documentos autorizados electrónicos emitidos por la empresa, la acción de cancelar abre un asistente propio para la recolección/procesamiento de la justificación.
  • Para documentos aún no autorizados, la cancelación puede ocurrir directamente en el flujo local.
  • Retorno a Borrador (* -> draft)
  • El flujo base permite retornar a Borrador (draft) desde open, sending, rejected, cancel, denied y también desde draft (idempotente).
  • Esta acción limpia información transitoria de error/informe para permitir una nueva preparación del documento.
  • Eventos y correcciones
  • Carta de Corrección (CC-e): para documentos autorizados que soportan el evento.
  • Inutilización de Numeración: para rangos de numeración no utilizados, conforme a las reglas fiscales aplicables.
  • Extensión del workflow por módulo fiscal

La FSM de este módulo está diseñada para su extensión. Los módulos de tipos fiscales específicos pueden sobrescribir get_state_machine_config() y los callbacks relacionados para:

  • incluir estados adicionales;
  • alterar transiciones válidas;
  • personalizar reglas de pre/post-transición;
  • adaptar el flujo al comportamiento de los webservices de cada documento.

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.