La tabla
| Versión de Odoo | Envío a KSeF | De dónde sale el FA(3) que se valida | Revalidación en la nube |
|---|---|---|---|
| 17 | No hay módulo nativo: se envía fuera de Odoo | Se sube hecho, generado fuera | No hay envío nativo que revalidar |
| 18 | l10n_pl_edi | El que genera o ya envió l10n_pl_edi | Sí, cada hora |
| 19 | l10n_pl_edi, con certificado KSeF en la empresa | El que genera o ya envió l10n_pl_edi | Sí, cada hora |
| 20 | l10n_pl_edi | El que genera o ya envió l10n_pl_edi | Sí, cada hora |
El módulo de FlexigoTech está publicado para las cuatro versiones. En ninguna envía a KSeF: valida y prepara.

Una nota práctica: la versión del módulo no cambia lo que se valida. Los campos FA(3), los códigos de error y la política legal son los mismos en las cuatro ramas, así que una empresa con dos bases en versiones distintas ve los mismos avisos en las dos.
Si estás en Odoo 17
En 17 no hay envío nativo, así que el flujo tiene un paso más: la factura se emite en Odoo, el FA(3) se genera con otra herramienta y se sube a la factura para validarlo. El validador de migración, en Migration › Run Validator, ayuda a encontrar los huecos de tus datos maestros antes de dar el salto.
Es una buena razón para planificar la subida de versión: con 18 o superior, la validación trabaja sobre lo que Odoo genera, sin ficheros que muevas tú.
Si estás en 18, 19 o 20
El flujo es directo. l10n_pl_edi genera y envía el FA(3), y el módulo lo valida en FlexigoTech Cloud con un informe firmado. Lo que ya se envió se vuelve a validar cada hora, y cada factura muestra su estado: válida, no válida, sin validar o caducada.
En 19 hemos comprobado en el código de Odoo que la autenticación nativa usa un certificado KSeF guardado en la empresa y renueva los tokens con una tarea programada.

El validador de migración, en cualquier versión
Si vienes de otro programa o de una versión anterior, el validador de migración revisa tus datos antes de empezar a emitir en KSeF. Se lanza desde Migration › Run Validator y cada pasada queda guardada en Validation Runs, para comparar una con otra. Lo útil es pasarlo dos veces: una al principio, para ver la lista de huecos, y otra justo antes del cambio, para confirmar que no queda ninguno. Y Operations › Compliance Export saca lo validado cuando lo pide tu asesor.
Qué compras en cada caso
Lo mismo en las cuatro versiones: el módulo, con un pago único de 9 € por versión de Odoo, y el Servicio local de FlexigoTech Cloud desde 29 € al mes, sin IVA, que es donde corre la validación. Si cambias de versión, depende de dónde lo compraste: con la suscripción, el módulo para las versiones nuevas va incluido si lo compraste en flexigotech.com; en Odoo Apps, cada versión se compra allí.
Las validaciones de un FA(3) no dependen de la versión de Odoo: dependen del esquema. Lo que cambia es quién genera el fichero.
Sigue leyendo
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas
Fuentes
- github.com/odoo/odoo/tree/18.0/addons/l10n_pl_edi
- Código del módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati (cbca26e): models/account_move.py
- Código del módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati (cbca26e): models/ksef_session.py
- Código del módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati (cbca26e): models/ksef_cloud.py
- github.com/odoo/odoo/blob/19.0/addons/l10n_pl_edi/models/res_company.py
- Código del módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): data/ksef_cron.xml
- Código del módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): views/ksef_menus.xml
- Código del módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/account_move.py
- apps.odoo.com/apps/modules/20.0/flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati
- Código del módulo: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): __manifest__.py
- flexigotech.com/precios.html
