Conecta Odoo a un cuadro de mando financiero.
Qué te da Odoo de serie en reporting y qué se queda fuera, cómo se conecta por XML-RPC, qué modelos importan y las tres formas de montarlo con sus costes reales.
Odoo lleva bien la contabilidad. Registra asientos, emite facturas, cuadra impuestos y cierra el ejercicio. Pero cuando llega el momento de entender el negocio —no registrarlo— la mayoría de empresas acaba en el mismo sitio: exportando a Excel, montando gráficos a mano y repitiendo el proceso cada mes.
En esta guía vemos qué te da Odoo de serie en reporting financiero y qué se queda fuera, cómo se conecta por su API externa, qué datos necesita un cuadro de mando para sostenerse en el tiempo y las tres formas de montarlo, con sus costes reales — incluido el que casi nadie calcula.
En pocas palabras: El objetivo de conectar Odoo a un cuadro de mando es que dirección vea las mismas cifras contables en informes periódicos y pueda investigar diferencias. Las alternativas y detalles técnicos de abajo te ayudan a comparar coste, mantenimiento y responsabilidades con el proveedor, aunque no vayas a programar la integración.
Qué te da Odoo de serie (y qué se queda fuera)
Conviene ser justo: Odoo no es una herramienta pobre en informes. Trae balance de situación, cuenta de resultados, libro mayor, balance de sumas y saldos y un módulo de contabilidad con vistas configurables. Para cumplir con las obligaciones formales va sobrado.
El problema aparece cuando lo que necesitas no es un estado contable, sino una lectura de negocio. Ahí se notan los límites:
| Lo que necesitas | Odoo de serie | Qué falta |
|---|---|---|
| Balance y cuenta de resultados | Sí, completos | — |
| Ratios y KPIs calculados | Parcial: hay que construirlos | Fórmulas, referencias y semáforos |
| Comparativa contra presupuesto | Solo con el módulo de presupuestos | Desviaciones explicadas |
| Previsión de tesorería | Posición de caja actual | Proyección de cobros y pagos futuros |
| Informe presentable a un tercero | Exportaciones crudas | Narrativa y marca propia |
| Varias sociedades consolidadas | Multi-compañía nativo | Consolidación analítica lista para leer |
Cómo se conecta Odoo por fuera: la API XML-RPC
Odoo expone una API externa por XML-RPC que da acceso a prácticamente cualquier modelo de datos de la instancia. No es una API REST moderna —el protocolo tiene años— pero es estable, está documentada y funciona igual en Odoo Online, en Odoo.sh y en una instalación propia.
Llamas a /xmlrpc/2/common con el nombre de la base de datos, el usuario y una clave de API. Te devuelve un identificador de usuario que usarás en todas las llamadas siguientes.
Con ese identificador llamas a /xmlrpc/2/object indicando el modelo, el método de lectura y los filtros. Es el mismo mecanismo para contabilidad, contactos o productos.
Para un cuadro de mando interesan los asientos publicados de un rango de fechas. Filtrar en origen evita descargar histórico entero en cada sincronización.
Para un cuadro de mando financiero, los modelos que importan son pocos y siempre los mismos:
| Modelo | Qué contiene | Para qué lo usas |
|---|---|---|
account.move | Asientos y facturas | Ingresos, gastos, cuenta de resultados |
account.move.line | Apuntes de cada asiento | El detalle por cuenta contable |
account.account | Plan de cuentas | Mapear al PGC y agrupar por epígrafe |
res.partner | Clientes y proveedores | Ingresos por cliente, riesgo de cobro |
account.journal | Diarios, incluidos los de banco | Posición de tesorería |
product.product | Catálogo | Margen por producto o servicio |
Qué necesita un cuadro de mando para sostenerse
Sacar los datos es la parte fácil. Lo que decide si el cuadro de mando sirve o se abandona a los dos meses es qué haces con ellos. Tres cosas marcan la diferencia:
El mapeo merece un aviso aparte. En Odoo el plan de cuentas se personaliza con frecuencia —cuentas analíticas propias, desgloses por línea de negocio— y ese mapeo es tuyo y hay que mantenerlo cada vez que se abre una cuenta nueva. Es trabajo invisible que no aparece en ningún presupuesto inicial. Si quieres profundizar en qué indicadores incluir, tienes el detalle en indicadores financieros clave.
Tres formas de montarlo, con sus costes reales
| Enfoque | Puesta en marcha | Mantenimiento | Cuándo tiene sentido |
|---|---|---|---|
| Exportar a Excel | Inmediata | Alto: son horas cada mes | Una sociedad y pocos indicadores |
| Script propio + BI | Semanas de desarrollo | Alto: se rompe con cada cambio | Hay equipo técnico y necesidades muy específicas |
| Capa de análisis conectada | Minutos | Bajo: lo mantiene el proveedor | Quieres el resultado, no el proyecto |
El coste que casi nadie calcula es el segundo. Un script propio contra XML-RPC se escribe en unos días, pero luego hay que mantenerlo: cambios de versión de Odoo, campos que se renombran, un plan de cuentas que se amplía, la instancia que se migra. Ese mantenimiento no aparece en el presupuesto inicial y es donde se va el tiempo de verdad.
Las diferencias entre versiones que rompen integraciones
Odoo cambia nombres de campos entre versiones mayores, y una integración que funcionaba deja de hacerlo sin previo aviso. Estos son los cambios que más afectan a una lectura contable, comprobados sobre instalaciones reales de la 17, la 18 y la 19:
| Qué cambia | Antes | A partir de | Qué rompe |
|---|---|---|---|
| Tipo de cuenta contable | user_type_id (v16) | account_type (v17) | La clasificación del plan de cuentas: sin ella no puedes agrupar por epígrafe |
| Producto almacenable | type = 'product' | is_storable (v18) | El filtro de productos devuelve vacío o falla |
| Teléfono móvil del contacto | mobile | Eliminado en 18.2/19 | La lectura de contactos casca al pedir un campo inexistente |
Multimoneda: el error que descuadra los importes
Este merece una sección propia porque es silencioso: no da error, simplemente da cifras equivocadas. En account.move conviven dos familias de importes.
El caso real que lo ilustra: una factura de 3.100 USD aparece como 2.661,17 € en el importe convertido. Si tu informe suma el primero, tu cifra de negocio está inflada y no cuadrará nunca con la contabilidad.
account.move.line guarda el debe y el haber ya convertidos a la moneda de la compañía. Por eso una integración que lea solo asientos cuadra al céntimo aunque ignore el problema, y en cuanto añade documentos empieza a descuadrar. Es un clásico.Multi-sociedad: qué se filtra y qué se comparte
Odoo es multi-compañía de forma nativa, pero no todo pertenece a una sociedad concreta. Al leer datos hay que distinguir dos grupos, porque filtrar mal deja información fuera:
Límites de la API según dónde esté tu Odoo
| Alojamiento | Límite práctico | Qué implica |
|---|---|---|
| Odoo Online (SaaS) | En torno a 1 petición por segundo | Un sync grande necesita reintentos con espera; sin ellos, respuestas 429 a mitad |
| Odoo.sh | Sin límite práctico | La velocidad la marca tu instancia |
| Instalación propia | Sin límite práctico | Depende de tu servidor y de que el puerto sea accesible |
Si tu Odoo está en la nube de Odoo, cualquier integración que descargue histórico tiene que ir con reintentos y espera progresiva. Es la diferencia entre una sincronización que termina y una que se corta a la mitad dejando datos incompletos — y lo peor es que falla de forma intermitente, así que en pruebas con pocos datos parece funcionar.
Seguridad y permisos: qué exigir
Estás dando acceso a la contabilidad completa de tu empresa. Cuatro cosas que conviene verificar antes de conectar nada:
Cómo lo resuelve Numio
Numio se conecta a tu instancia de Odoo por XML-RPC, lee los modelos contables y los convierte en balance, cuenta de resultados, ratios y previsión de tesorería, actualizados solos. No se instala nada dentro de Odoo y la conexión es de solo lectura: Numio no escribe en tu contabilidad.
La parte que suele decidir la comparación es el mapeo contable: en lugar de construirlo tú, viene resuelto contra el PGC español, y la revisión contable te avisa de las cuentas que no encajan en ningún epígrafe. Y si trabajas con varias sociedades o llevas la contabilidad de terceros, cada una tiene su panel sin duplicar la configuración.
Si además usas otro ERP en parte de tu cartera, la misma capa lee de Holded — lo cuenta la guía de la API de Holded — así que no necesitas dos herramientas distintas para ver lo mismo.
Con la misma honestidad, hay cuatro cosas que pueden diferir por diseño y conviene saber de antemano:
| Diferencia | Por qué | Qué significa para ti |
|---|---|---|
| Solo asientos contabilizados | Los borradores de Odoo no se leen | Un asiento en borrador no aparece hasta que se contabiliza |
| Ventana temporal hasta hoy | No se traen asientos con fecha futura | Una previsión contabilizada a fecha futura se verá en Odoo y no en el informe |
| Importes en moneda de la compañía | Se usa el importe convertido | Una factura en dólares se ve en dólares en Odoo y en euros en el informe |
| Presentación según el PGC | Los epígrafes siguen el plan español | Las cifras coinciden; la estructura del informe puede verse distinta |
La cuarta tiene una consecuencia práctica que conviene anticipar: si una sociedad usa un plan de cuentas internacional en lugar del PGC español, sus documentos y su libro diario sincronizan igual, pero la cuenta de resultados española no clasifica esas cuentas. No es un fallo de la lectura: es que no hay correspondencia posible entre planes distintos.
Preguntas frecuentes
¿Funciona con Odoo Online, Odoo.sh y on-premise?
¿Hay que instalar algún módulo en Odoo?
¿Puede modificar mi contabilidad?
¿Y si mi plan de cuentas está personalizado?
¿Con qué frecuencia se actualizan los datos?
¿Puedo tener varias sociedades en el mismo panel?
Conclusión
Odoo guarda la contabilidad de tu empresa con todo el detalle. Lo que no hace —ni pretende hacer— es contarte qué significa. Esa lectura es una capa distinta, y montarla no exige cambiar de ERP: exige conectarse a él.
Si tu contabilidad ya vive en Odoo, tienes hecha la parte difícil. Lo que falta es la capa que la lee.
Tu contabilidad de Odoo, explicada
Numio se conecta a tu instancia en solo lectura y convierte tus asientos en balance, cuenta de resultados, ratios y previsión de tesorería, actualizados solos.
Prueba Numio 30 días gratisSin tarjeta y sin permanencia, desde 39€/mes. Con Odoo Online hace falta su plan Personalizado.
David González