
“¿Cuánto tenemos realmente pendiente con ustedes?” Esta pregunta se plantea con regularidad en toda cartera de clientes, normalmente poco antes del cierre del trimestre, antes de la auditoría de las cuentas anuales o cuando el departamento de contabilidad del cliente prepara los pagos. Quien no la responde por sí mismo, la recibe por correo electrónico o por teléfono, y alguien tiene que exportar de la contabilidad una lista de partidas abiertas y enviarla. Con Odoo 19 Community esto no funciona por sí solo: el portal del cliente muestra las facturas individuales, pero no una lista de las partidas abiertas de toda la empresa, y mucho menos a una fecha elegida libremente.
Para ello hemos desarrollado el módulo Partidas abiertas en el portal del cliente (portal_open_items) para Odoo 19. Los clientes con acceso habilitado ven en el portal una lista de todas las facturas abiertas, notas de crédito y pagos aún no asignados de su empresa, pueden elegir una fecha de corte, descargar la lista como PDF y ver de un vistazo cómo está su moral de pago. El módulo es software libre bajo la licencia AGPL-3 y está en GitHub:
github.com/Alex0176/odoo-portal-open-items
Instalamos el módulo el 5 de noviembre de 2026 en nuestro sistema de producción. Allí la opción está desactivada por defecto y solo se activa previo acuerdo con cada cliente. La experiencia en producción es, por tanto, todavía breve; hemos realizado pruebas con trece pruebas automáticas y una base de datos de pruebas con clientes de ejemplo. Quien adopte el módulo debería leer con atención las secciones sobre el cálculo de la fecha de corte, sobre la moral de pago y sobre las limitaciones .
Contenido de este artículo
- El problema: la lista de partidas abiertas bajo demanda
- La solución en resumen
- Habilitación por contacto: la opción
- La lista en el portal del cliente
- Partidas abiertas a fecha de corte
- Exportación a PDF
- Moral de pago: la valoración de un vistazo
- ¿Quién puede ver qué? El modelo de acceso
- Implementación técnica
- Pruebas
- Instalación y configuración
- Limitaciones y avisos
- Preguntas frecuentes
- Asistencia de Biricon IT Services
El problema: la lista de partidas abiertas bajo demanda
Una lista de partidas abiertas muestra qué facturas de un cliente aún no están pagadas, cuáles de ellas están vencidas y a cuánto asciende el saldo. Para el proveedor es un instrumento de planificación de liquidez y de gestión de reclamaciones de cobro. Para el cliente es la base para planificar pagos, conciliar facturas con su propia contabilidad y aclarar dudas sin tener que abrir cada factura por separado. Ocasiones típicas:
- Cierre trimestral y anual: el departamento de contabilidad del cliente quiere saber qué deudas existían a 31.12. Se trata de una fecha de corte en el pasado.
- Conciliación: el cliente cree haber pagado una factura, nosotros la vemos todavía abierta. Una lista común con fecha, vencimiento e importe lo aclara más rápido que una cadena de correos.
- Remesas de pago: quien prepara pagos semanal o mensualmente necesita ver de un vistazo todas las facturas abiertas de un proveedor, con las vencidas en primer lugar.
- Varios interlocutores: en una empresa, una persona hace los pedidos y otra paga. Las partidas abiertas pertenecen a la empresa, no a una persona concreta.
Hasta ahora extraíamos estas listas manualmente de la contabilidad y las enviábamos por correo. Eso cuesta tiempo y, al final, es una instantánea que al día siguiente ya está desfasada. Es mejor una lista que el cliente abre por sí mismo en el portal en cualquier momento, siempre con la situación actual.
La solución en resumen
El módulo amplía el portal del cliente de Odoo con una página Partidas abiertas y un mosaico en Mi cuenta. El alcance funcional:
- Opción por contacto: “Mostrar lista de partidas abiertas en el portal”. Solo si está activada, el usuario del portal ve el mosaico y la página. Por defecto está desactivada.
- Toda la empresa: la lista contiene las partidas abiertas de todos los contactos de la empresa, no solo las del usuario que ha iniciado sesión.
- Fecha de corte: el cliente elige una fecha y ve qué estaba abierto ese día.
- Exportación a PDF: la lista en PDF con el diseño de documento de su empresa, con membrete, saldo y suma de las partidas vencidas.
- Moral de pago: proporción de facturas pagadas puntualmente, con un ligero retraso y tarde, la factura abierta más antigua y una valoración buena o mala, en el portal y en el PDF.
- Las partidas vencidas están marcadas en color y muestran los días transcurridos desde la fecha de vencimiento.
- Las notas de crédito y los saldos a favor figuran en la lista con importe negativo y reducen el saldo.
- Enlace: cada factura de la lista conduce a la vista de la factura en el portal.
- Multilingüe: la interfaz y el PDF siguen el idioma del usuario; se incluye la traducción al alemán.

El mosaico aparece en la página de inicio Mi cuenta, junto a los pedidos y las facturas. Quien no tiene la opción, no lo ve.
Habilitación por contacto: la opción
Una lista de partidas abiertas muestra datos comerciales de toda una empresa. Por eso el módulo no la habilita para todos los usuarios del portal, sino solo donde usted lo desee expresamente. En el formulario del contacto, en la pestaña Sitio web, se encuentra la casilla “Mostrar lista de partidas abiertas en el portal”. Es visible para los usuarios con derechos de facturación (grupo account.group_account_invoice) y actúa únicamente sobre ese contacto.

Esto se ajusta a la práctica: en una empresa, la dirección o el departamento de contabilidad deben ver la lista, pero no un empleado que solo consulta tickets. La opción se aplica al contacto, pero las partidas mostradas pertenecen a toda la empresa. Active, por tanto, la opción en la persona que deba tener una visión general de la empresa.
La lista en el portal del cliente
Un clic en el mosaico abre /my/open-items. La página muestra el nombre de la empresa, la selección de la fecha de corte y la tabla con las partidas abiertas:

| Columna | Contenido |
|---|---|
| Documento | Número de documento de la factura o nota de crédito, con enlace a la vista de la factura en el portal; debajo, la referencia, si existe |
| Fecha | Fecha de factura o de contabilización, respectivamente |
| Vence el | Fecha de vencimiento; en las partidas vencidas, debajo, “vencida hace n días” en rojo |
| Importe | Importe original de la partida |
| Pendiente | Importe aún pendiente (tras pagos parciales) |
Debajo de la tabla figuran el saldo, es decir, la suma de todos los importes pendientes, y la suma de partidas vencidas. Las filas vencidas tienen un fondo de color para que se vean de inmediato al echar un vistazo. Las notas de crédito y los pagos que aún no están asignados a una factura aparecen con signo negativo y reducen el saldo; una nota bajo la tabla se lo explica al cliente. Si su empresa trabaja en varias monedas, el saldo se indica por moneda.
Partidas abiertas a fecha de corte
Encima de la tabla figura “Partidas abiertas a fecha de corte”, junto a un campo de fecha y el botón Mostrar. Con una fecha de corte en el pasado, la lista muestra lo que aún no estaba pagado ese día. Es exactamente el análisis que se necesita para cierres, auditorías y conciliaciones: “¿Qué deudas teníamos a 31.12. con este proveedor?”

Cómo se calcula la fecha de corte
Para cada partida se aplica: Pendiente a fecha de corte = importe de la factura menos todos los pagos que estaban conciliados hasta la fecha de corte inclusive. Una partida figura en la lista si ya estaba contabilizada en la fecha de corte y tenía entonces un resto pendiente. Una factura del 7 de septiembre por 1.250,50 €, pagada parcialmente con 500,00 € el 20 de octubre y liquidada en su totalidad el 5 de noviembre, figura por tanto en la lista con 750,50 € con fecha de corte 2 de noviembre y ya no aparece con fecha de corte 5 de noviembre.

El vencimiento también se evalúa a la fecha de corte: una partida está vencida si su fecha de vencimiento es anterior a la fecha de corte y el resto es positivo. Los días transcurridos desde el vencimiento se cuentan hasta la fecha de corte, no hasta hoy. Una fecha de corte en el futuro se trata como hoy, igual que una fecha vacía o no válida en la barra de direcciones. Así, la lista no puede simular una previsión.
Qué significa aquí “fecha del pago”
Lo determinante es la fecha en que la factura y el pago se conciliaron entre sí en Odoo (la mayor de las dos fechas de contabilización), no la fecha de la factura. Es el caso habitual: el pago se contabiliza el día de su recepción y se asigna a la factura. Quien asigna los pagos solo varios días después, verá la factura como abierta durante más tiempo. La sección limitaciones profundiza en este punto.
Exportación a PDF
Mediante Descargar PDF, el módulo genera la lista como archivo PDF para la fecha de corte elegida. El botón Imprimir abre la misma lista en el cuadro de impresión del navegador. El PDF utiliza el diseño de documento de su empresa de Odoo (logotipo, dirección, pie de página según los ajustes) y el formato de papel europeo:

- Título con la fecha de corte: “Partidas abiertas a fecha de corte 02.11.2026”, incluso si la fecha de corte es hoy. Si no hay partidas abiertas, figura “No hay partidas abiertas.”
- Dirección del cliente en el campo de dirección del diseño de la empresa, para que la lista también tenga sentido una vez impresa.
- Partidas vencidas en negrita, para que destaquen también en la impresión en blanco y negro.
- Saldo y suma de partidas vencidas al final de la tabla, por moneda en caso de varias monedas.
- Nombre de archivo con empresa y fecha, por ejemplo
Open_items_Muster_Handels_GmbH_2026-11-02.pdf.
Moral de pago: la valoración de un vistazo
Desde la versión 19.0.1.1.0, encima de la tabla aparece una breve evaluación de lo puntual que es la empresa al pagar sus facturas. La misma evaluación figura en el PDF. Así el cliente ve por sí mismo dónde se encuentra y usted ya no tiene que explicárselo por separado.

- Verde: “El 47 % se pagó dentro del plazo de pago.” Se trata de facturas pagadas en la fecha de vencimiento o antes.
- Naranja: “El 29 % se pagó en la semana posterior al vencimiento del plazo de pago.” Son pagos realizados entre uno y siete días después del vencimiento.
- Rojo: “El 24 % se pagó más tarde, por término medio a los 39 días (25 días después del vencimiento del plazo de pago).” La primera cifra cuenta desde la fecha de la factura, la cifra entre paréntesis desde el vencimiento. La línea solo aparece si hay facturas de este tipo.
- “Las facturas llevan abiertas hasta 60 días.” Es la antigüedad de la factura más antigua que sigue abierta en la fecha de corte, contada desde la fecha de la factura.
Debajo figura la valoración de la moral de pago: buena o mala, y al final de la página, en el PDF al final de la hoja, la nota “Los clientes con mala moral de pago pasan a pago anticipado.” El PDF muestra las mismas líneas con el diseño de membrete:

Qué se cuenta
- Se valoran las facturas emitidas al cliente que están contabilizadas. Las notas de crédito y los borradores no cuentan. En el pago a plazos, cada plazo cuenta por separado.
- Período: las facturas de los últimos doce meses y todas las facturas que siguen abiertas, aunque sean más antiguas.
- El día de pago es la fecha de la última conciliación con un pago, igual que con la fecha de corte.
- Facturas abiertas: si una factura está vencida en la fecha de corte, cuenta como si se hubiera pagado en la fecha de corte, es decir, naranja o rojo. Una factura abierta que aún no ha vencido no se valora.
- Con una fecha de corte en el pasado rige la situación de ese día: los pagos posteriores a la fecha de corte todavía no cuentan.
- Si no hay nada que valorar, aparece “No hay facturas de los últimos 12 meses que valorar.” y no hay valoración.
¿Cuándo es “buena” la moral de pago?
La valoración es buena si al menos el 70 % de las facturas son verdes o naranjas (puntuales o con un retraso de una semana como máximo) y ninguna factura abierta lleva más de 30 días vencida. En caso contrario es mala. Los umbrales (7 días, 70 %, 30 días, 12 meses) figuran como constantes al principio de models/res_partner.py y se pueden ajustar allí.
Importante: el módulo no pasa a nadie a pago anticipado. La nota del pie de página es un texto fijo que muestra a los clientes con mala valoración lo que puede derivarse de ella. Si decide hacerlo, y cuándo, es cosa suya. Si la frase no le conviene, cámbiela en las dos plantillas (página del portal e informe) o en la traducción.
¿Quién puede ver qué? El modelo de acceso
Las partidas abiertas son datos sensibles; por eso el acceso era para nosotros más importante que cualquier función adicional. El modelo es deliberadamente sencillo:

- Solo con la opción activada. Sin la casilla marcada en el contacto no hay mosaico, y una llamada a
/my/open-itemsredirige a Mi cuenta. - Siempre la propia empresa. La empresa se determina a partir del usuario que ha iniciado sesión, no a partir de un parámetro en la dirección. No hay forma de solicitar una empresa ajena a través de la barra de direcciones.
- La misma comprobación en el PDF. Odoo ofrece, por principio, los informes PDF también a través de una dirección general. Por eso el módulo vuelve a comprobar en el propio informe: solo los usuarios con permiso de contabilidad o los usuarios del portal con la opción activada para su propia empresa obtienen un PDF; todos los demás reciben un error de acceso.
- Solo partidas contabilizadas. Los borradores y los documentos cancelados nunca aparecen.
- Solo los ámbitos contables propios: solo se tienen en cuenta los asientos de las empresas a las que el usuario tiene acceso.
Implementación técnica
El módulo solo depende de account y portal, es decir, de componentes de Odoo Community. Añade un único campo al contacto y, por lo demás, consta de un controlador, una clase de informe y plantillas.
| Componente | Función |
|---|---|
Campo portal_open_items en res.partner | Opción booleana “Mostrar lista de partidas abiertas en el portal”, no copiable, desactivada por defecto. |
_open_items_data() | Busca las líneas de cuentas a cobrar contabilizadas y aún no conciliadas de la empresa y calcula para cada línea el resto, el vencimiento y los días. Devuelve las líneas, los totales por moneda y la fecha de corte. |
_payment_morale() | Evalúa las facturas de los últimos doce meses y todas las facturas abiertas a la fecha de corte: proporciones de pagos puntuales, con hasta siete días de retraso y posteriores, duración media, factura abierta más antigua y la valoración buena o mala. |
_open_items_residual() | Resto de una línea a la fecha de corte: importe menos todas las conciliaciones parciales con fecha hasta la fecha de corte, en la moneda de la factura. |
Controlador /my/open-items | Muestra la página, evalúa la fecha de corte (vacía, no válida o en el futuro = hoy) y redirige a Mi cuenta si no hay opción activada. |
Controlador /my/open-items/pdf | Genera el PDF con la misma fecha de corte y lo entrega con nombre de archivo. |
Informe report_open_items | Plantilla QWeb en el diseño de la empresa (web.external_layout) con comprobación propia de la autorización. |
| Plantillas del portal | Mosaico en Mi cuenta, migas de pan, página con formulario de fecha y tabla. |
| Formulario de contacto | Opción en la pestaña Sitio web, visible solo para el grupo account.group_account_invoice. |
| Traducción | Se incluyen el alemán (de.po) y la plantilla (.pot). |
Las partidas abiertas se leen de las líneas de asiento, no de las facturas. Esto es importante: solo así aparecen también las notas de crédito y los pagos aún no asignados, y solo así puede reconstruirse la situación de un día anterior a partir de las conciliaciones (account.partial.reconcile). La consulta se ejecuta para toda la empresa (commercial_partner_id) con derechos elevados; la comprobación de si el usuario puede verlas se realiza antes.
Pruebas
El módulo incluye trece pruebas automáticas que en nuestro sistema se ejecutan en verde:
- acceso solo con la opción activada, de lo contrario redirección a Mi cuenta,
- la lista contiene las partidas de toda la empresa, pero nunca las de otra,
- la opción se aplica por contacto, no a todos los usuarios de la empresa,
- las notas de crédito figuran en la lista con importe negativo y reducen el saldo,
- fecha de corte: una factura pagada más tarde figura en la lista antes de esa fecha, pero no después,
- página con una fecha futura y con una fecha no válida,
- la dirección del PDF entrega un archivo PDF,
- informe como HTML y comprobación de acceso en el informe,
- importe abierto a la fecha de corte tras pagos parciales anteriores y posteriores a la fecha de corte,
- moral de pago: clasificación en puntual, hasta una semana de retraso y posterior, con los valores medios, también para una fecha de corte en el pasado,
- moral de pago con facturas abiertas y la valoración buena o mala,
- moral de pago sin facturas y nunca con datos de otra empresa,
- moral de pago en la página del portal y en el PDF.
Además, hemos recorrido la página en el navegador en una base de datos de pruebas con clientes de ejemplo; las imágenes de este artículo proceden de allí. Todos los nombres, números de documento e importes que aparecen son completamente ficticios.
Instalación y configuración
git clone https://github.com/Alex0176/odoo-portal-open-items.git
ln -s /pfad/odoo-portal-open-items/portal_open_items /pfad/addons/
odoo-bin -c odoo.conf -d <datenbank> -i portal_open_items --stop-after-init
Las dependencias son account y portal. Tras la instalación hay que reiniciar el servicio de Odoo, porque el módulo contiene código Python. Quien opere un sistema de producción debe instalar primero el módulo en una copia de la base de datos. Después:
- abrir el contacto que debe ver la lista (persona con acceso al portal),
- marcar en el formulario la casilla Mostrar lista de partidas abiertas en el portal y guardar,
- iniciar sesión en el portal como ese usuario o comprobarlo junto con el cliente: mosaico, lista, fecha de corte y PDF.
Antes de la habilitación, compruebe los ajustes de remitente y de diseño de su empresa, ya que el PDF toma el logotipo, la dirección y el pie de página del diseño de documento. El módulo no envía correos electrónicos por sí mismo ni genera notificaciones.
Limitaciones y avisos
- Situación actual de los documentos contabilizados. La fecha de corte se calcula sobre la base de los asientos tal como figuran ahora en el sistema. Si después de la fecha de corte se canceló una factura o se devolvió a borrador, la lista no la muestra. No es una instantánea inalterable “tal como se imprimió entonces”.
- Los pagos cuentan desde el día de la conciliación. Si un pago se asigna solo varios días después de la recepción de una factura, esta figura como abierta en la lista hasta entonces. Quien desee análisis de fecha de corte rigurosos debería asignar los pagos con prontitud. En Odoo Community no se incluye una conciliación bancaria con facturas; para ello utilizamos nuestro módulo Bank-Statement-Matcher.
- La moral de pago es tan buena como su conciliación. Se cuenta cuándo se asignó un pago a una factura. Los pagos que llevan mucho tiempo sin conciliar hacen que un cliente parezca peor de lo que es. Compruebe la valoración de sus clientes antes de extraer conclusiones de ella.
- La valoración es visible para el cliente. Quien tiene la opción ve también el resultado y la nota sobre el pago anticipado. El módulo no modifica en ello las condiciones de pago.
- Solo cuentas a cobrar. El módulo muestra lo que el cliente le debe a usted, no sus deudas con el cliente.
- Sin niveles de reclamación ni enlace de pago en la lista. El cliente puede abrir una factura desde la lista y pagarla allí, según lo que su portal permita en otros casos.
- PDF y funcionamiento multiproceso. Para generar informes PDF, Odoo llama internamente a su propia dirección web. Si su sistema funciona con un solo proceso de trabajo, esto puede provocar un bloqueo. Ello afecta a todos los informes PDF del portal, no solo a este módulo. Compruebe el botón de PDF una vez tras la instalación en condiciones reales.
- Probado solo con Odoo 19.0 Community. No lo hemos comprobado con otras versiones.
- No sustituye a la gestión de reclamaciones ni al extracto de cuenta. La lista no sustituye ni un extracto de cuenta contable ni sus procesos de reclamación; solo hace transparente la situación.
Preguntas frecuentes
¿Qué es una lista de partidas abiertas?
Un listado de todas las facturas que aún no están pagadas o lo están solo parcialmente, con fecha de factura, vencimiento e importe pendiente. También se denomina “facturas pendientes”, “cuenta del cliente” o “balance de saldos”, aunque un balance de saldos, en sentido estricto, se refiere a los saldos de todas las cuentas.
¿Por qué el portal de Odoo no muestra de serie una lista de partidas abiertas?
El portal muestra pedidos, facturas y pagos por separado, con estado y filtros. Una lista global de la empresa con saldo y un análisis a fecha de corte no forman parte del alcance de la edición Community, por lo que hemos podido comprobar. Para eso está pensado el módulo.
¿Ven la lista todos los usuarios del portal de una empresa?
No. Solo los contactos con la opción activada. Sin embargo, la lista mostrada abarca toda la empresa, no solo las facturas de ese contacto.
¿Puedo elegir una fecha de corte del pasado, por ejemplo el 31.12. del año anterior?
Sí, cualquier fecha hasta hoy. La lista muestra entonces las partidas que ese día estaban contabilizadas y aún no pagadas. Tenga en cuenta las notas sobre el cálculo: lo determinante es el día de la conciliación del pago.
¿Se admite una fecha de corte en el futuro?
No. Las fechas futuras se tratan como hoy, para que la lista no muestre una situación que todavía no existe.
¿Aparecen en la lista las notas de crédito y los anticipos?
Sí. Las notas de crédito y los pagos que aún no están asignados a una factura figuran en la lista con importe negativo y reducen el saldo. Una nota bajo la tabla se lo explica al cliente.
¿Cómo se detectan las partidas vencidas?
Una partida está vencida si su fecha de vencimiento es anterior a la fecha de corte y todavía queda pendiente un resto positivo. Los días transcurridos desde el vencimiento se cuentan hasta la fecha de corte.
¿Existe el PDF también en otros idiomas?
Sí, la interfaz y el PDF siguen el idioma del usuario. Se incluye la traducción al alemán; para otros idiomas basta con un archivo .po o con la traducción a través de la interfaz de Odoo.
¿Puede un cliente ver la lista de otra empresa si cambia la dirección?
No. La empresa se deduce siempre del usuario que ha iniciado sesión. La dirección solo contiene la fecha de corte. También la dirección de informes PDF de Odoo se vuelve a comprobar en el propio informe.
¿Cómo se calcula la moral de pago?
A partir de las facturas de cliente contabilizadas de los últimos doce meses y de todas las facturas abiertas. Para cada factura cuenta cuántos días después del vencimiento se pagó: como máximo el día del vencimiento (verde), hasta siete días después (naranja) o más tarde (rojo). La valoración es buena con al menos un 70 % en verde o naranja y ninguna factura abierta con más de 30 días de vencimiento. Los detalles figuran en la sección moral de pago.
¿Pasa el módulo a pago anticipado a los clientes con mala moral de pago?
No. Solo muestra la valoración y la nota. Las condiciones de pago, el pago anticipado y los bloqueos siguen siendo decisión suya y su proceso en Odoo.
¿Envía el módulo correos electrónicos o reclamaciones?
No. Solo proporciona la página y el PDF. No genera mensajes, notificaciones ni actividades.
¿Funciona el módulo con Odoo Enterprise?
Solo depende de account y portal, que existen en ambas ediciones. Solo lo hemos probado en la edición Community de Odoo 19.
¿Bajo qué licencia se publica el módulo?
Bajo la AGPL-3. Usted puede utilizarlo, modificarlo y distribuirlo si cumple las condiciones de la licencia. Los errores y las propuestas de mejora son bienvenidos como issue en el repositorio de GitHub .
Asistencia de Biricon IT Services
Atendemos instalaciones de Odoo para pequeñas y medianas empresas: desde la implantación, pasando por adaptaciones y migraciones, hasta la operación continua. Si desea poner a disposición de sus clientes en el portal partidas abiertas, facturas y tickets, ampliar la contabilidad en Odoo Community o llevar un módulo con seguridad a su instancia de producción, estaremos encantados de ayudarle. Otros desarrollos propios: Archivar una empresa junto con sus usuarios del portal, Registro mercantil y verificación de direcciones para clientes austriacos, Números de documento a partir de prefijo, año y contador y Conjuntos de productos en el presupuesto como sección.
Póngase en contacto con nosotros
Actualizado: 6 de noviembre de 2026. Versión del módulo 19.0.1.1.1. Cambios desde la primera versión del 5 de noviembre: moral de pago (19.0.1.1.0) y corrección del importe abierto a la fecha de corte tras pagos parciales (19.0.1.1.1). Todos los nombres, números de documento e importes de las imágenes son ficticios.