Distribuciones Ribeira, el hilo del caso
Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.
Distribuciones Ribeira es una empresa inventada que factura en Portugal desde Odoo 18 y que lleva una segunda sociedad en la misma base de datos. Marta, su responsable de administración, tiene que dejar listo Portugal SAF-T (PT) File Checks. El caso no lleva cifras: lo que interesa es qué pantallas abre, qué campos mira y qué estados va encontrando.
El módulo está publicado en Odoo Apps para 17.0, 18.0, 19.0 y 20.0, así que Marta elige la ficha de su versión. Cuesta 9 € por versión de Odoo, pago único y sin IVA, en las cuatro versiones, y como trae servicio local de FlexigoTech Cloud se suma la suscripción de 29 €/mes o 290 €/año sin IVA (Pro: 58 €/mes o 580 €/año).
Primer día: el formulario de configuración ATCUD
Al crear una configuración ATCUD nueva desde Invoicing, Marta se encuentra un formulario dividido en secciones: información de empresa, ATCUD, correo y notificaciones, y subida. Solo aparece rellena la URL del endpoint; el resto está vacío.

Lo que hace Marta es recorrer el formulario sección por sección, de arriba abajo, incluida la parte que no cabe en pantalla. Que la URL del endpoint ya aparezca escrita no le dice nada del resto, así que no da la configuración por completa hasta haberla revisado entera.
Los campos que Marta mira con lupa
Antes de generar nada, Marta repasa los campos del módulo que le afectan. Estos son los que identifica:
company_id: aparece en varios modelos del módulo como relación conres.company. Con dos sociedades en la misma base de datos, Marta comprueba qué empresa lleva cada registro.schema_url, con la etiquetaSAF-T Schema URL: según la descripción del campo, es la URL de la que se obtiene el esquema XSD del SAF-T portugués.export_file_csv: un adjunto (ir.attachment) descrito comoExported CSV format.transaction_count, con la etiquetaTransaction Count: el número de transacciones incluidas en el SAF-T.name, con la etiquetaRequest ID.submission_id: relación consaft.submission, descrita comoRelated SAF-T submission if applicable.
Marta no le da a estos campos más función que la que dice su nombre o su descripción. Si necesitas saber cómo se encadenan por dentro, está explicado en cómo funciona el módulo por dentro.
Los estados que puede tener cada registro
El segundo día, Marta aprende los valores de estado que define el módulo. Son cuatro juegos distintos, y conviene no mezclarlos:
- Campo
stateconDraft,ExportedySubmitted. - Campo
statusconDraft,Processing,ApprovedyDenied. - Campo
stateconDraft,Generated,Validated,Validation FailedySubmitted. Son los que se ven en la listaGenerate SAF-T Files. - Campo
stateconDraft,Validated,Submitted,Accepted,Rejected,ATCUD UnreachableyError.
De esta lista, Marta apunta los valores que quiere tener controlados cada día: Validation Failed, Denied, Rejected, ATCUD Unreachable y Error. No da por hecho el motivo de ninguno; cuando aparece uno, busca el texto exacto del aviso en la guía de mensajes de error del módulo.
La primera semana: qué revisa cada mañana
Con la configuración hecha, la primera semana Marta abre cada mañana las mismas pantallas en el mismo orden. El recorrido es este:

Draft, Generated, Validated, Validation Failed y Submitted, con tamaño y transacciones a cero.- En
Invoicing › Annual SAF-T Statisticsmira las columnasCompany,Year,Total Documents,Total ValueyState, y comprueba que cada fila corresponde a la sociedad que espera. - En
SAF-T Error Logslee la fecha, el tipo de error, la severidad y el mensaje de cada registro, y se fija en cuáles siguen con la casilla de resuelto sin marcar. - En
Generate SAF-T Filesrevisa el estado de cada período, de inicio a fin, junto al tamaño de archivo y las transacciones.
En su base de datos, con dos sociedades, la columna Company es la primera que Marta mira. La misma lista tiene botón New y buscador:

Qué se aprende del caso de Ribeira
- El formulario ATCUD nuevo aparece casi vacío, solo con la URL del endpoint: revísalo sección por sección, incluida la parte que no cabe en pantalla, antes de darlo por completo.
company_idestá en varios modelos. Si tienes más de una sociedad, revisa la empresa de cada registro antes de mirar nada más.- Hay cuatro juegos de estados distintos. Aprende en qué lista ves cada uno y cuáles quieres vigilar.
- Las tres listas del recorrido (estadísticas anuales, registros de errores y generación de ficheros) son la rutina de Marta en su primera semana.
Cómo te ayuda FlexigoTech
FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida, así que podemos preparar contigo la configuración ATCUD y las sociedades. Si compras el módulo en su página de flexigotech.com, con la suscripción va incluido el módulo para las versiones nuevas de Odoo; en el Odoo App Store, en cambio, cada versión se compra allí (ficha en Odoo Apps). Sin suscripción, o con el servicio suspendido, se para lo que da la suscripción, y los datos se quedan en tu Odoo. Si todavía dudas de si te encaja, revisa antes qué cubre y qué hace falta antes de instalarlo.
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): models/saft_annual_statistics.py
- Código del módulo: flexigo_portugal_saf_t_accounting_atcud_submission_tool 20.0 (6935c20f): models/saft_config.py
- Código del módulo: flexigo_portugal_saf_t_accounting_atcud_submission_tool 20.0 (6935c20f): models/saft_dsar_request.py
- Código del módulo: flexigo_portugal_saf_t_accounting_atcud_submission_tool 20.0 (6935c20f): models/saft_error_log.py
- Código del módulo: flexigo_portugal_saf_t_accounting_atcud_submission_tool 20.0 (6935c20f): models/saft_exporter.py
- Código del módulo: flexigo_portugal_saf_t_accounting_atcud_submission_tool 20.0 (6935c20f): models/saft_submission.py
- 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
