Cómo leer un mensaje del módulo
Cada mensaje se muestra con el texto en inglés tal como está en el módulo. Donde la tabla pone %s, en tu pantalla verás un valor concreto: la Partita IVA que ha fallado, el detalle de una transmisión fallida o el error de red. Copia ese valor antes de cerrar el aviso, porque es el dato con el que vas a buscar qué corregir.
Los mensajes se agrupan en cuatro temas: la Partita IVA de la compañía y de los contactos, la transmisión al SDI, el registro de auditoría y el orden de los pasos con facturas y liquidaciones. Si antes quieres ver qué menús y registros maneja el módulo, lo tienes en cómo funciona Italian Digital VAT por dentro.
Tabla de mensajes de Italian Digital VAT
| Mensaje | Cuándo sale | Qué hacer |
|---|---|---|
Company PIVA "%s" is invalid per Italian algorithm | La Partita IVA de tu compañía no pasa la comprobación con el algoritmo italiano; en lugar de %s sale el número revisado. | Corrige la Partita IVA de la compañía y repite la acción. |
Partner PIVA "%s" is invalid per Italian algorithm | La Partita IVA del contacto no pasa esa misma comprobación. | Corrige la Partita IVA del contacto. |
Company must have Partita IVA configured | La compañía no tiene Partita IVA. | Configúrala en la compañía. |
Partner must have Partita IVA or address | El contacto no tiene ni Partita IVA ni dirección. | Añade al menos una de las dos. |
Invoice must be in "XML Generated" state to transmit | Intentas transmitir una factura que no está en el estado XML Generated. | Genera primero el XML y transmite después. |
Company SDI API endpoint not configured | Falta el endpoint de la API del SDI en la compañía. | Rellénalo en la compañía. |
Company SDI API key not configured | Falta la clave de la API del SDI en la compañía. | Rellénala en la compañía. |
No FatturaPA XML generated | No hay XML FatturaPA generado. | Genera el XML FatturaPA antes de seguir. |
SDI rate limit reached. Will retry in next cycle. | Se ha alcanzado el límite de envíos del SDI. | Espera: el mensaje indica que se reintentará en el siguiente ciclo. |
SDI transmission failed: %s - %s | La transmisión al SDI ha fallado; los dos %s llevan el detalle. | Copia esos dos valores y revisa con ellos la factura o la configuración. |
SDI network error: %s | Error de red al comunicar con el SDI. | Revisa la conexión y vuelve a intentarlo. |
Audit log entries are immutable | Intentas modificar una entrada del registro de auditoría. | No se puede: el módulo no deja cambiarlas. |
Audit log entries cannot be deleted (10-year retention) | Intentas borrar una entrada de auditoría. | No se puede: el mensaje indica una conservación de 10 años. |
No settlements linked | No hay liquidaciones vinculadas. | Vincula las liquidaciones y repite la acción. |
Invoice must be validated before submission. | Intentas enviar una factura sin validar. | Valida la factura y envíala después. |
Invoice must be submitted before reconciliation. | Intentas conciliar una factura que no se ha enviado. | Envíala primero y concilia después. |
Partita IVA de la compañía y de los contactos
El módulo comprueba la Partita IVA con el algoritmo italiano, según dice el propio mensaje, y distingue dos casos: la de tu compañía (Company PIVA) y la del contacto (Partner PIVA). Fíjate en cuál de los dos sale, porque el número que aparece entre comillas en lugar de %s es el que tienes que revisar. Compáralo con el documento donde tienes registrada esa Partita IVA, corrígelo en la ficha que corresponda y vuelve a lanzar lo que estabas haciendo.
Los otros dos mensajes del grupo hablan de datos que faltan. Company must have Partita IVA configured pide que la compañía tenga Partita IVA. Partner must have Partita IVA or address es menos estricto: al contacto le basta con una de las dos cosas, la Partita IVA o la dirección.
Transmisión al SDI: configuración, estado y red
Antes de transmitir, el módulo pide tres cosas que puedes revisar por tu cuenta. La primera, que la factura esté en el estado XML Generated; si no, sale Invoice must be in "XML Generated" state to transmit. La segunda, que exista el XML FatturaPA; si no, No FatturaPA XML generated. La tercera, que la compañía tenga configurados el endpoint y la clave de la API del SDI; cada uno tiene su propio mensaje, así que sabrás cuál de los dos falta.

Con todo eso en orden, durante la transmisión pueden salir otros tres mensajes. SDI rate limit reached. Will retry in next cycle. avisa de que se ha llegado al límite de envíos y de que se reintentará en el siguiente ciclo: espera a ese ciclo antes de volver a mirar la factura. SDI transmission failed: %s - %s trae dos valores con el detalle del fallo; guárdalos, porque sin ellos no sabrás qué corregir. SDI network error: %s señala un problema de red, y el valor que acompaña al mensaje te dice cuál.
Auditoría, liquidaciones y orden de los pasos
Dos mensajes no tienen solución dentro del módulo porque describen su comportamiento. Audit log entries are immutable sale si intentas modificar una entrada del registro de auditoría, y Audit log entries cannot be deleted (10-year retention) si intentas borrarla. El módulo guarda esas entradas y el segundo mensaje habla de una conservación de 10 años; tómalo como lo que hace la app, no como una indicación legal.

El resto del grupo marca un orden. Invoice must be validated before submission. y Invoice must be submitted before reconciliation. dejan claro que una factura se valida, después se envía y después se concilia. Si te sale uno de los dos, mira en qué punto está la factura y completa el paso anterior. No settlements linked aparece cuando la acción necesita liquidaciones vinculadas y no las hay.

Lipe Xml y Attachment, aún sin datos.
Cómo te ayuda FlexigoTech
En FlexigoTech implantamos Odoo 17, 18, 19 y 20 y desarrollamos conectores e integraciones a medida, así que podemos revisar contigo la configuración de la compañía, los contactos y el flujo de facturas si uno de estos mensajes se repite. La app cuesta 9 € por versión de Odoo, pago único y sin IVA, para 17, 18, 19 y 20, y el servicio local cuesta 29 €/mes o 290 €/año sin IVA. Sin suscripción, o con el servicio suspendido, se para lo que da la suscripción, pero los datos se quedan en tu Odoo. Tienes todos los detalles en la página del módulo y en la ficha de Odoo Apps.
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_italian_digital_vat_compliance 20.0 (348b3182): models/account_move.py
- Código del módulo: flexigo_italian_digital_vat_compliance 20.0 (348b3182): models/italian_vat_audit_log.py
- Código del módulo: flexigo_italian_digital_vat_compliance 20.0 (348b3182): models/italian_vat_lipe.py
- Código del módulo: flexigo_italian_digital_vat_compliance 20.0 (348b3182): models/vat_invoice.py
- apps.odoo.com/apps/modules/20.0/flexigo_italian_digital_vat_compliance
- apps.odoo.com/apps/modules/17.0/flexigo_italian_digital_vat_compliance
- apps.odoo.com/apps/modules/18.0/flexigo_italian_digital_vat_compliance
- apps.odoo.com/apps/modules/19.0/flexigo_italian_digital_vat_compliance
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
