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.0Añ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 sus archivos XML.
Este módulo da a los documentos fiscales electrónicos brasileños un flujo de estados estricto y paso a paso para que no puedan saltar a un estado no válido. Un documento pasa de borrador a confirmado, luego a enviando, luego a autorizado, rechazado o denegado, y puede ser cancelado o invalidado. Cada cambio se comprueba, y un movimiento no válido se bloquea con un mensaje de error.
En la pantalla del documento fiscal los usuarios disponen de botones para confirmar, enviar, volver a borrador, cancelar, crear una carta de corrección e invalidar un número. Cancelar un documento autorizado abre un asistente de cancelación; las correcciones y la invalidación de números abren sus propios asistentes. Una acción "Comprobar estado" consulta a la autoridad fiscal sobre los documentos seleccionados en pequeños lotes y muestra una notificación que resume qué cambió, qué permaneció igual y qué falló.
Cada intercambio con la autoridad fiscal se almacena como un evento fiscal, con su tipo (autorización, cancelación, carta de corrección, consulta, etc.), mensaje de respuesta, número de protocolo y fecha, y los archivos XML de solicitud y respuesta. Los eventos se pueden imprimir como un informe. El documento también mantiene enlaces a sus eventos de autorización, cancelación e invalidación y a sus archivos XML, y los usuarios pueden abrir el XML o el informe PDF en una nueva pestaña.
Reglas de negocio: el emisor es obligatorio para los documentos electrónicos; una clave de acceso de documento debe ser válida y única por compañía y emisor; las justificaciones de corrección necesitan al menos 15 caracteres; un documento ya registrado como cancelado para SPED no puede volver a borrador; y un documento cuyo XML falló la validación de esquema no se puede transmitir.
Los nuevos menús "Evento fiscal" e "Invalidar número" aparecen bajo el menú de documentos fiscales. El panel de operaciones fiscales cuenta los documentos confirmados pero no enviados, enviando y rechazados como aún por confirmar, y los denegados como cancelados.
Depende de
Lo necesitan otros módulos
Menús que añade
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), original_xml_file_id (Original XML File), 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-03Estado de confirmación: 6 confirmadas, 3 sin información de 9 versiones.
Fuentes · Odoo 17.0
Confirmado el 2026-11-03 en la rama 17.0 de OCA/l10n-brazil.
terminal Instalación y uso
Documentación de OCA · Odoo 19.0El 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) desdeopen,sending,rejected,cancel,deniedy también desdedraft(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.
Las instrucciones de instalación, el paquete de distribución, las dependencias y los pasos de configuración no se muestran porque todavía no se han verificado en la documentación del módulo para ninguna versión.
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.