Qué cubre el módulo según su README
El README organiza las funciones en requisitos numerados (FR) y en secciones con letra. El núcleo son estos requisitos:
- Generación del XML SAF-T v1.03 (FR-001): crea los ficheros a partir de los datos contables de Odoo.
- Validación contra el esquema XSD (FR-002): el módulo comprueba el fichero contra el esquema de la autoridad tributaria portuguesa.
- Envío directo al portal ATCUD (FR-003): con lógica de reintento automático.
- Errores y excepciones (FR-004): registro detallado de errores y mensajes pensados para el usuario.
- Interfaz de configuración (FR-005): gestión de credenciales, correo y ajustes de envío.
Alrededor de ese núcleo, el README describe estas otras piezas:
- Multiempresa: seguimiento de los envíos por empresa, con trazas de auditoría separadas.
- RGPD (sección C): menciona
10-year mandatory retention overridey un flujo DSAR con plantillas de respuesta legal. - Notificaciones por correo (sección D): guía sobre DKIM/SPF/DMARC y confirmaciones de envío.
- Estadísticas anuales (sección E): exportación y envío del informe anual.
- Observabilidad (sección F): logs en JSON, métricas de Prometheus e integración con Sentry.
- Protección antiabuso (sección G): limitación de peticiones, campos trampa (honeypot) y CAPTCHA en formularios públicos.
- Ficheros grandes (sección H): subida por trozos con análisis antivirus.
- Chatter (sección I): conversación en los envíos, con confidencialidad.
- Rendimiento (sección J): seguimiento del SLO p99.
- DSAR (sección K): seguimiento de la base legal y automatización de respuestas.
- Idiomas (sección L): interfaces multilingües.

Qué hace el módulo y qué pones tú
Para decidir, separa lo que el README atribuye al módulo de lo que tienes que aportar tú. Esta tabla junta las dos cosas con lo que dice la documentación.
| Necesidad | Lo hace el módulo (README) | Lo preparas tú (README) |
|---|---|---|
| Generar el fichero SAF-T | Genera XML SAF-T v1.03 con los datos contables de Odoo | Elegir empresa y período en Generate SAF-T Files |
| Validar el fichero | Valida contra el esquema XSD de la autoridad tributaria portuguesa | Pulsar Generate SAF-T; después el sistema valida |
| Enviar a ATCUD | Envío directo al portal con reintento automático | URL del endpoint ATCUD, credenciales y certificado digital si ATCUD lo pide |
| Saber qué ha fallado | Registro detallado de errores y mensajes para el usuario | Revisar los errores registrados |
| Confirmaciones por correo | Confirmaciones de envío y guía DKIM/SPF/DMARC | Outgoing Mail Server con credenciales SMTP, remitente y dirección para confirmaciones |
| Varias empresas | Seguimiento por empresa con trazas de auditoría separadas | Credenciales de envío ATCUD en los ajustes de la empresa |
| Informe anual | Exportación y envío de estadísticas anuales | No lo detalla el README |
| Formularios públicos | Limitación de peticiones, honeypot y CAPTCHA | Configurar la limitación de peticiones y la prevención de abusos |
La columna de la derecha es la que te dice si puedes arrancar ya. La URL y las credenciales del endpoint ATCUD y el servidor de correo saliente forman parte de los pasos de configuración que describe el README. Si te falta alguno, consíguelo antes de instalar.

Si te pasa esto, te conviene
- Llevas la contabilidad de una empresa portuguesa en Odoo y quieres sacar el SAF-T desde ahí: el módulo cubre generar, validar y enviar el fichero (FR-001 a FR-003).
- Tienes varias sociedades en la misma base de datos: el README habla de soporte multiempresa con trazas de auditoría separadas por empresa.
- Aún no tienes acceso a ATCUD: pide antes la URL del endpoint y las credenciales, porque los ajustes del módulo las solicitan, igual que el certificado digital si ATCUD lo exige.
- Tu equipo técnico quiere vigilar el servicio: el README menciona logs en JSON, métricas de Prometheus, Sentry y seguimiento del SLO p99.
- Trabajáis en varios idiomas: el README incluye interfaces multilingües (sección L).
- Necesitas algo que no aparece en la lista de funciones: no lo des por hecho. Pregúntalo antes de comprar o valora un desarrollo a medida.
Si quieres ver qué menús añade y cómo recorre un registro sus estados, lo explicamos en cómo funciona Portugal SAF-T (PT) File Checks por dentro.

Qué tener listo antes de instalarlo
En el servidor
- Odoo instalado: los pasos de instalación del README empiezan por
Ensure you have Odoo 19 installed, mientras que en Odoo Apps el módulo está publicado para 17.0, 18.0, 19.0 y 20.0. Mira la ficha de la versión que usas. - Paquetes de Python: el README tiene un paso
Install required Python packages. Revisa la lista en el README del módulo antes de instalar. - Directorio de addons: copiar el módulo al directorio de addons de Odoo.
- Instalación: en Odoo,
Apps, buscarPortugal SAF-Ty pulsarInstall.
En Odoo
- Correo: en
Settings → General Settings, secciónEmails, configurarOutgoing Mail Servercon tus credenciales SMTP y la dirección del remitente. - Ajustes SAF-T: en
Accounting → Configuration → SAF-T Accounting → Settings, el NIF (Número de Identificação Fiscal), la URL del endpoint ATCUD con sus credenciales y el certificado digital si ATCUD lo pide. - Ajustes de la empresa: credenciales de envío ATCUD, dirección de correo para las confirmaciones de envío y la limitación de peticiones y prevención de abusos.
En las capturas, las listas del módulo aparecen bajo Invoicing, mientras que el README escribe las rutas con Accounting. Si no encuentras un menú, búscalo en los dos.
El recorrido completo de ajustes y campos está en la puesta en marcha de Portugal SAF-T (PT) File Checks.
Versiones de Odoo y precio
En Odoo Apps cuesta 9 € por versión de Odoo, pago único, sin IVA, para 17.0, 18.0, 19.0 y 20.0. Es un módulo con servicio local de FlexigoTech Cloud, que cuesta 29 €/mes o 290 €/año sin IVA (Pro: 58 €/mes o 580 €/año).
Con la suscripción, el módulo para las versiones nuevas de Odoo va incluido si lo compraste en flexigotech.com; en el Odoo App Store, cada versión de Odoo se compra allí. Sin suscripción, o con el servicio suspendido, se para lo que da la suscripción y los datos se quedan en tu Odoo.
Cómo probarlo con un período antes de decidir
El README describe así la generación de un fichero; puedes seguirlo con un período para verlo funcionar con tus datos:
- Ve a
Accounting → SAF-T Accounting → Generate SAF-T Files. - Pulsa
Createpara empezar una generación nueva. - Elige la empresa y el período.
- Pulsa el botón
Generate SAF-T. - El sistema valida el fichero contra el esquema XSD.
Si la validación o el envío fallan, en los mensajes de error de Portugal SAF-T (PT) File Checks tienes cuándo sale cada uno y qué hacer.
Dónde te ayuda FlexigoTech
Implantamos Odoo 17, 18, 19 y 20 y desarrollamos conectores e integraciones a medida. Si el módulo cubre casi todo lo que necesitas pero te falta una pieza, o quieres ayuda para dejar listos el correo, el NIF y el acceso a ATCUD, cuéntanoslo desde la página del módulo. También puedes revisar la ficha en Odoo Apps de tu versión.
Sigue leyendo
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: flexigo_portugal_saf_t_accounting_atcud_submission_tool 20.0 (6935c20f): README.rst
- apps.odoo.com/apps/modules/20.0/flexigo_portugal_saf_t_accounting_atcud_submission_tool
- apps.odoo.com/apps/modules/17.0/flexigo_portugal_saf_t_accounting_atcud_submission_tool
- apps.odoo.com/apps/modules/18.0/flexigo_portugal_saf_t_accounting_atcud_submission_tool
- apps.odoo.com/apps/modules/19.0/flexigo_portugal_saf_t_accounting_atcud_submission_tool
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
