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 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

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), 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-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.