Cómo conectar Odoo con un cuadro de mando financiero

Guía 2026 · Integraciones

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 → cuadro de mando XML-RPC
ConexiónSolo lectura
SincronizaciónAutomática
Integraciones◷ 13 min de lecturaPublicado Actualizado Por

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 necesitasOdoo de serieQué falta
Balance y cuenta de resultadosSí, completos—
Ratios y KPIs calculadosParcial: hay que construirlosFórmulas, referencias y semáforos
Comparativa contra presupuestoSolo con el módulo de presupuestosDesviaciones explicadas
Previsión de tesoreríaPosición de caja actualProyección de cobros y pagos futuros
Informe presentable a un terceroExportaciones crudasNarrativa y marca propia
Varias sociedades consolidadasMulti-compañía nativoConsolidación analítica lista para leer
La diferencia de fondo Es la de siempre entre registrar e interpretar. El ERP es la fuente de la verdad contable; el cuadro de mando es la capa que la lee. No compiten: se complementan. Lo desarrollamos en cómo conectar tu ERP a un dashboard financiero.

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.

1
Autenticas contra el endpoint común

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.

2
Consultas los modelos que necesitas

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.

3
Filtras por periodo y estado

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:

ModeloQué contienePara qué lo usas
account.moveAsientos y facturasIngresos, gastos, cuenta de resultados
account.move.lineApuntes de cada asientoEl detalle por cuenta contable
account.accountPlan de cuentasMapear al PGC y agrupar por epígrafe
res.partnerClientes y proveedoresIngresos por cliente, riesgo de cobro
account.journalDiarios, incluidos los de bancoPosición de tesorería
product.productCatálogoMargen por producto o servicio
Un detalle que ahorra disgustos Genera una clave de API específica para la integración desde el perfil del usuario, en lugar de reutilizar la contraseña de una persona. Si esa persona se va o cambia su clave, la integración deja de funcionar en el peor momento — normalmente el día del cierre.

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:

Un mapeo contable explícito. Los apuntes vienen por cuenta, y una cuenta no es un epígrafe. Hasta que no decides que el grupo 70 es cifra de negocio y el 64 gastos de personal, no tienes cuenta de resultados: tienes una lista de números.
Comparables. Un margen del 32 % no dice nada solo. Dice mucho comparado con el 38 % del año pasado. Cualquier indicador necesita al menos el mismo periodo del ejercicio anterior.
Actualización automática. Un panel que alguien refresca a mano envejece y deja de mirarse. Es la causa número uno de abandono, muy por encima de la elección de herramienta.

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

EnfoquePuesta en marchaMantenimientoCuándo tiene sentido
Exportar a ExcelInmediataAlto: son horas cada mesUna sociedad y pocos indicadores
Script propio + BISemanas de desarrolloAlto: se rompe con cada cambioHay equipo técnico y necesidades muy específicas
Capa de análisis conectadaMinutosBajo: lo mantiene el proveedorQuieres 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.

Script propio
Control total
Puedes modelar exactamente lo que quieras, pero asumes el mantenimiento: versiones, campos, mapeos y la persona que lo entiende.
Capa conectada
Resultado inmediato
Renuncias a parte de la flexibilidad a cambio de que los estados, el mapeo y la actualización vengan resueltos y mantenidos.

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é cambiaAntesA partir deQué rompe
Tipo de cuenta contableuser_type_id (v16)account_type (v17)La clasificación del plan de cuentas: sin ella no puedes agrupar por epígrafe
Producto almacenabletype = 'product'is_storable (v18)El filtro de productos devuelve vacío o falla
Teléfono móvil del contactomobileEliminado en 18.2/19La lectura de contactos casca al pedir un campo inexistente
Cómo se sobrevive a esto No pidiendo los campos a ciegas. Antes de leer, se consulta a Odoo qué campos existen realmente en esa instancia y se piden solo esos. Es la diferencia entre una integración que aguanta una actualización y otra que hay que arreglar cada vez — y también lo que permite que funcione igual en Community que en Enterprise, sin asumir qué módulos hay instalados.

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.

amount_total
Moneda del documento
Lo que pone en la factura. Si emitiste en dólares, aquí verás dólares — y si sumas facturas de varias monedas, el total no significa nada.
amount_total_signed
Moneda de la compañía
El mismo importe convertido a la divisa de la sociedad. Es el que hay que usar para cualquier estado financiero.

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.

Por qué el libro diario sí cuadra desde el principio Porque 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:

Se filtra por sociedad. Libro diario, facturas y tesorería. Cada apunte pertenece a una compañía y hay que acotar la consulta para no mezclar cifras de sociedades distintas.
Puede ser compartido. Contactos, productos y proyectos suelen tener la sociedad vacía porque se usan en todo el grupo. Si les aplicas el mismo filtro, desaparecen.
El contexto manda. Odoo acota la lectura mediante las compañías permitidas en el contexto de la petición. Es el mecanismo correcto: filtrar solo por campo deja fuera lo compartido.

Límites de la API según dónde esté tu Odoo

AlojamientoLímite prácticoQué implica
Odoo Online (SaaS)En torno a 1 petición por segundoUn sync grande necesita reintentos con espera; sin ellos, respuestas 429 a mitad
Odoo.shSin límite prácticoLa velocidad la marca tu instancia
Instalación propiaSin límite prácticoDepende 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:

Solo lectura. La herramienta de análisis no tiene ningún motivo para escribir en tu contabilidad. Un usuario con permisos de lectura sobre contabilidad es suficiente.
Usuario dedicado. Crea un usuario específico para la integración, no reutilices el de una persona. Así puedes revocarlo sin afectar a nadie.
Clave revocable. Debe poder desactivarse desde Odoo en cualquier momento sin tocar la instancia.
Cifrado en tránsito y en reposo. La conexión por HTTPS y los datos cifrados donde se almacenen. Si el proveedor no lo especifica, pregúntalo.

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.

Verificado al céntimo, no «debería cuadrar» Antes de dar por buena la integración contrastamos cuenta a cuenta contra Odoo en varias sociedades reales: libro diario, balance de sumas y saldos, saldo de cada cuenta, Balance de Situación (Activo = Pasivo + Patrimonio Neto) y Cuenta de Resultados. Cero discrepancias y cero cuentas huérfanas. Un informe financiero que no cuadra al céntimo con el ERP no sirve para nada, así que es la única prueba que cuenta.

Con la misma honestidad, hay cuatro cosas que pueden diferir por diseño y conviene saber de antemano:

DiferenciaPor quéQué significa para ti
Solo asientos contabilizadosLos borradores de Odoo no se leenUn asiento en borrador no aparece hasta que se contabiliza
Ventana temporal hasta hoyNo se traen asientos con fecha futuraUna previsión contabilizada a fecha futura se verá en Odoo y no en el informe
Importes en moneda de la compañíaSe usa el importe convertidoUna factura en dólares se ve en dólares en Odoo y en euros en el informe
Presentación según el PGCLos epígrafes siguen el plan españolLas 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?
Sí. La API XML-RPC es la misma en los tres casos; lo único que cambia es la URL de la instancia y, en on-premise, que el puerto sea accesible desde fuera.
¿Hay que instalar algún módulo en Odoo?
No. La API externa viene activada de serie y basta con un usuario con permisos de lectura sobre contabilidad.
¿Puede modificar mi contabilidad?
No, si la conexión es de solo lectura. Es lo que conviene exigir a cualquier herramienta de análisis: leer todo, escribir nada.
¿Y si mi plan de cuentas está personalizado?
Es lo habitual en Odoo. Lo que hay que revisar es el mapeo de cuentas a epígrafes; una vez ajustado, el resto funciona igual.
¿Con qué frecuencia se actualizan los datos?
Lo razonable es una sincronización diaria. Para finanzas, el tiempo real aporta poco: lo que importa es que el dato esté al día sin que nadie lo refresque a mano.
¿Puedo tener varias sociedades en el mismo panel?
Sí. Odoo es multi-compañía de forma nativa y cada sociedad puede consolidarse por separado o en conjunto, según lo que necesites leer.

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 gratis

Sin tarjeta y sin permanencia, desde 39€/mes. Con Odoo Online hace falta su plan Personalizado.

Scroll al inicio