
“¿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 pendientes en el portal de clientes (portal_open_items) para Odoo 19. Los clientes con acceso habilitado pueden consultar en el portal un listado de todas las facturas pendientes, facturas rectificativas y pagos aún sin asignar de su empresa, elegir una fecha de corte y descargar el listado en PDF. El módulo es software libre bajo la licencia AGPL-3 y está disponible 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 a fecha de corte, sobre la moral de pago y las limitaciones leer.
Contenido de este artículo
- El problema: listados de partidas pendientes a petición del cliente
- La solución de un vistazo
- Acceso por contacto: la opción
- El listado en el portal de clientes
- Partidas pendientes 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 observaciones
- Preguntas frecuentes
- Asistencia de Biricon IT Services
El problema: listados de partidas pendientes a petición del cliente
Un listado de partidas pendientes muestra qué facturas de un cliente siguen sin pagarse, cuáles están vencidas y a cuánto asciende el saldo. Al proveedor le sirve para planificar la liquidez y gestionar las reclamaciones de pago. Al cliente le permite planificar pagos, conciliar las facturas con su propia contabilidad y resolver dudas sin tener que abrir cada factura por separado. Situaciones habituales:
- 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 que a nosotros nos sigue constando como pendiente. Un listado compartido con fecha, vencimiento e importe lo aclara más rápido que una cadena de correos.
- Remesas de pagos: quien prepara pagos semanales o mensuales necesita ver de un vistazo todas las facturas pendientes de un proveedor, con las vencidas al principio.
- Varios interlocutores: en una empresa, una persona hace los pedidos y otra los paga. Las partidas pendientes corresponden 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 de un vistazo
El módulo añade al portal de clientes de Odoo una página de Partidas pendientes y una tarjeta en Mi cuenta. Estas son sus funciones:
- Opción por contacto: «Mostrar listado de partidas pendientes en el portal». El usuario del portal solo ve la tarjeta y la página si esta opción está marcada. Está desactivada de forma predeterminada.
- Toda la empresa: el listado incluye las partidas pendientes 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 pendiente ese día.
- Exportación a PDF: el listado en PDF con el diseño de su empresa, membrete, saldo y total 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 se resaltan con un color e indican los días transcurridos desde su vencimiento.
- Las facturas rectificativas y los saldos a favor aparecen con importe negativo en el listado y reducen el saldo.
- Enlace: cada factura del listado enlaza con su vista en el portal.
- Multilingüe: la interfaz y el PDF se muestran en el idioma del usuario; se incluye una traducción al alemán.

La tarjeta aparece en la página de inicio de Mi cuenta, junto a los pedidos y las facturas. Quien no tenga activada la opción no la verá.
Acceso por contacto: la opción
Un listado de partidas pendientes muestra datos comerciales de toda una empresa. Por eso, el módulo solo habilita el acceso a los usuarios del portal que usted elija expresamente. En el formulario del contacto, dentro de Sitio web, se encuentra la casilla «Mostrar listado de partidas pendientes en el portal». Es visible para los usuarios con permisos de facturación (grupo account.group_account_invoice) y se aplica únicamente a ese contacto.

Esto responde a las necesidades habituales: en una empresa, la dirección o el departamento de contabilidad deben poder consultar el listado, mientras que un empleado que solo consulta incidencias no debería tener acceso. La opción se aplica al contacto, pero las partidas mostradas corresponden a toda la empresa. Por tanto, actívela para la persona que deba tener una visión global de la empresa.
El listado en el portal de clientes
Al hacer clic en la tarjeta se abre /my/open-items. La página muestra el nombre de la empresa, el selector de fecha de corte y la tabla de partidas pendientes:

| Columna | Contenido |
|---|---|
| Documento | Número de documento de la factura o factura rectificativa, con enlace a la vista de la factura en el portal; debajo, la referencia, si existe |
| Fecha | Fecha de factura o de contabilización |
| Vencimiento | Fecha de vencimiento; en las partidas vencidas, debajo aparece «n días de retraso» en rojo |
| Importe | Importe original de la partida |
| Pendiente | Importe aún pendiente (tras los pagos parciales) |
Debajo de la tabla aparecen el saldo, es decir, la suma de todos los importes pendientes, y el total de las partidas vencidas. Las filas vencidas tienen un fondo de color para identificarlas de un vistazo. Las facturas rectificativas y los pagos que aún no se han asignado a ninguna factura aparecen con signo negativo y reducen el saldo; una nota debajo de la tabla se lo explica al cliente. Si su empresa trabaja con varias divisas, el saldo se muestra por separado para cada una.
Partidas pendientes 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 lo siguiente: importe pendiente a fecha de corte = importe de la factura menos todos los pagos conciliados hasta la fecha de corte inclusive. Una partida figura en el listado si ya estaba contabilizada en la fecha de corte y aún tenía un importe pendiente. Por ejemplo, una factura del 7 de septiembre por 1.250,50 €, con un pago parcial de 500,00 € el 20 de octubre y el resto abonado el 5 de noviembre, aparece en el listado con 750,50 € si la fecha de corte es el 2 de noviembre, y deja de aparecer si es el 5 de noviembre.

El retraso en el pago también se evalúa a fecha de corte: una partida está vencida si su fecha de vencimiento es anterior a la fecha de corte y el importe restante es positivo. Los días de retraso se cuentan hasta la fecha de corte, no hasta hoy. Si se introduce una fecha de corte futura, se utiliza la fecha de hoy; lo mismo ocurre si la fecha está vacía o no es válida en la barra de direcciones. Así, el listado no da una falsa impresión de previsión.
Qué significa aquí «fecha de pago»
La fecha que se toma como referencia es aquella en la que la factura y el pago se conciliaron entre sí en Odoo (la más reciente de las dos fechas de contabilización), no la fecha de la factura. Lo habitual es contabilizar el pago el día en que se recibe y asignarlo a la factura. Si los pagos se asignan varios días después, la factura seguirá apareciendo como pendiente durante más tiempo. El apartado limitaciones lo explica con más detalle.
Exportación a PDF
Con Descargar PDF, el módulo genera el listado en formato PDF para la fecha de corte seleccionada. El botón Imprimir abre el mismo listado en el cuadro de diálogo de impresión del navegador. El PDF utiliza el diseño de documentos de su empresa en Odoo (logotipo, dirección y pie de página definidos en los ajustes) y el formato de papel europeo:

- Título con fecha de corte: «Partidas pendientes a fecha de corte 02.11.2026», incluso si la fecha de corte es hoy. Si no hay partidas pendientes, aparece «No hay partidas pendientes».
- Dirección del cliente en el bloque de dirección del diseño corporativo, para que el listado también quede correctamente identificado al imprimirlo.
- Partidas vencidas en negrita para que también destaquen al imprimir en blanco y negro.
- Saldo y total de las partidas vencidas al final de la tabla, desglosados por divisa si hay varias.
- Nombre del archivo con la empresa y la 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 pendientes son datos sensibles, por lo que dimos prioridad al control de acceso frente a cualquier función adicional. El modelo es deliberadamente sencillo:

- Solo con la opción activada. Si la casilla del contacto no está marcada, no aparece la tarjeta y el acceso 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 de un parámetro de la dirección. No es posible solicitar los datos de otra empresa desde la barra de direcciones.
- La misma comprobación para el PDF. Odoo también ofrece los informes PDF a través de una dirección genérica. Por eso, el módulo vuelve a comprobar los permisos en el propio informe: solo obtienen un PDF los usuarios con permisos de contabilidad o los usuarios del portal con la opción activada para su propia empresa; los demás reciben un error de acceso.
- Solo partidas contabilizadas. Los borradores y los documentos cancelados nunca aparecen.
- Solo las sociedades contables accesibles: únicamente 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, ambos 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 la lista de partidas pendientes en el portal», que no se copia al duplicar y está desactivada por defecto. |
_open_items_data() | Busca los apuntes de cuentas por cobrar de la empresa que estén contabilizados y pendientes de conciliación, y calcula para cada uno el importe pendiente, si está vencido y los días de retraso. Devuelve los apuntes, 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() | Importe pendiente de un apunte a la fecha de corte: importe menos todas las conciliaciones parciales con fecha igual o anterior a la fecha de corte, en la moneda de la factura. |
Controlador /my/open-items | Muestra la página, interpreta la fecha de corte (vacía, no válida o futura = hoy) y redirige a Mi cuenta si la opción no está activada. |
Controlador /my/open-items/pdf | Genera el PDF con la misma fecha de corte y lo entrega con un nombre de archivo. |
Informe report_open_items | Plantilla QWeb con el diseño de la empresa (web.external_layout) y su propia comprobación de permisos. |
| Plantillas del portal | Tarjeta en Mi cuenta, ruta de navegación y página con formulario de fecha y tabla. |
| Formulario de contacto | Opción en la sección Sitio web, visible solo para el grupo account.group_account_invoice. |
| Traducción | Se incluyen la traducción al alemán (de.po) y la plantilla (.pot). |
Las partidas pendientes se obtienen de los apuntes contables, no de las facturas. Esto es importante: solo así aparecen también los abonos y los pagos aún sin asignar, y solo así se puede reconstruir la situación de una fecha anterior a partir de las conciliaciones (account.partial.reconcile). La consulta abarca toda la empresa (commercial_partner_id) y se ejecuta con permisos elevados, tras comprobar que el usuario está autorizado para ver los datos.
Pruebas
El módulo incluye ocho pruebas automáticas que se superan correctamente en nuestro entorno:
- acceso solo con la opción activada; en caso contrario, redirección a Mi cuenta,
- la lista incluye las partidas de toda la empresa, pero nunca las de otra,
- la opción se aplica a cada contacto, no a todos los usuarios de la empresa,
- los abonos aparecen en la lista con un importe negativo y reducen el saldo,
- fecha de corte: una factura pagada posteriormente aparece en la lista si la fecha es anterior al pago y deja de aparecer si es posterior,
- página con una fecha futura y con una fecha no válida,
- la dirección del PDF devuelve un archivo PDF,
- informe en HTML y comprobación de acceso en el propio 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, probamos la página en el navegador con clientes de ejemplo en una base de datos de pruebas; las imágenes de este artículo proceden de ella. Todos los nombres, números de documento e importes que aparecen son 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. Si utiliza un sistema en producción, instale primero el módulo en una copia de la base de datos. A continuación:
- abra el contacto que deba ver la lista (una persona con acceso al portal),
- marque la casilla Mostrar la lista de partidas pendientes en el portal en el formulario y guarde los cambios,
- inicie sesión en el portal con ese usuario o revise junto con el cliente la tarjeta, la lista, la fecha de corte y el PDF.
Antes de habilitar el acceso, revise la configuración del remitente y del 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 los documentos. El módulo no envía correos electrónicos ni genera notificaciones.
Limitaciones y observaciones
- Estado actual de los documentos contabilizados. El cálculo a la fecha de corte se basa en los asientos tal como figuran actualmente en el sistema. Si una factura se canceló o se restableció a borrador después de la fecha de corte, no aparecerá en la lista. No se trata de una instantánea inalterable «tal como se imprimió en aquel momento».
- Los pagos cuentan desde el día de la conciliación. Si un pago se asigna a una factura varios días después de recibirse, la factura seguirá figurando como pendiente en la lista hasta entonces. Para obtener informes precisos a una fecha de corte, conviene asignar los pagos cuanto antes. Odoo Community no incluye la conciliación de movimientos bancarios 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 por cobrar. El módulo muestra lo que el cliente le debe, no las deudas que usted tenga con el cliente.
- Sin niveles de reclamación de pago ni enlaces de pago en la lista. El cliente puede abrir una factura desde la lista y pagarla allí, según las opciones que ofrezca su portal.
- PDF y funcionamiento con varios procesos. Para generar informes PDF, Odoo accede internamente a su propia dirección web. Si el sistema funciona con un solo proceso de trabajo, puede bloquearse. Esto afecta a todos los informes PDF del portal, no solo a este módulo. Tras la instalación, pruebe el botón de PDF en condiciones reales.
- Probado únicamente con Odoo 19.0 Community. No lo hemos probado con otras versiones.
- No sustituye a la gestión de cobros ni al extracto de cuenta. La lista no reemplaza un extracto contable ni sus procesos de reclamación de pagos; simplemente permite consultar la situación.
Preguntas frecuentes
¿Qué es una lista de partidas abiertas?
Es una relación de todas las facturas que aún no se han pagado o solo se han pagado parcialmente, con la fecha de factura, el vencimiento y el importe pendiente. También se denomina «facturas pendientes», «cuenta del cliente» o «listado de saldos», aunque, en sentido estricto, un listado de saldos recoge los saldos de todas las cuentas.
¿Por qué el portal de Odoo no incluye de serie una lista de partidas pendientes?
El portal muestra los pedidos, las facturas y los pagos por separado, con estados y filtros. Por lo que hemos podido comprobar, la edición Community no incluye una lista global de la empresa con saldo ni un informe a una fecha de corte. Para eso está pensado el módulo.
¿Todos los usuarios del portal de una empresa pueden ver la lista?
No. Solo los contactos que tengan 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 mostrará las partidas que estaban contabilizadas y pendientes de pago en esa fecha. Tenga en cuenta las indicaciones sobre el cálculo: la fecha determinante es la de conciliación del pago.
¿Se admite una fecha de corte futura?
No. Las fechas futuras se interpretan como la fecha de hoy para evitar que la lista muestre una situación que aún no existe.
¿Aparecen los abonos y los anticipos en la lista?
Sí. Los abonos y los pagos que aún no se han asignado a ninguna factura aparecen en la lista con un importe negativo y reducen el saldo. Una nota debajo de la tabla se lo explica al cliente.
¿Cómo se identifican las partidas vencidas?
Una partida está vencida si su fecha de vencimiento es anterior a la fecha de corte y aún tiene un importe pendiente positivo. Los días de retraso se cuentan hasta la fecha de corte.
¿Está disponible el PDF en otros idiomas?
Sí, la interfaz y el PDF utilizan el idioma del usuario. Se incluye la traducción al alemán; para otros idiomas, basta con añadir un archivo .po o traducir desde la interfaz de Odoo.
¿Puede un cliente ver la lista de otra empresa si modifica la dirección?
No. La empresa se determina siempre a partir del usuario que ha iniciado sesión. La dirección solo contiene la fecha de corte. El acceso mediante la dirección del informe PDF de Odoo también se comprueba de nuevo 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.
¿El módulo envía correos electrónicos o recordatorios de pago?
No. Solo ofrece 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, disponibles en ambas ediciones. Solo lo hemos probado en la edición Community de Odoo 19.
¿Con qué licencia se distribuye el módulo?
Con la licencia AGPL-3. Puede utilizarlo, modificarlo y distribuirlo siempre que cumpla las condiciones de la licencia. Los informes de errores y las sugerencias de mejora pueden enviarse como incidencias en el repositorio de GitHub son bienvenidos.
Asistencia de Biricon IT Services
Gestionamos instalaciones de Odoo para pequeñas y medianas empresas: desde la implantación hasta el funcionamiento diario, pasando por personalizaciones y migraciones. Si desea ofrecer a sus clientes partidas pendientes, facturas y tickets en el portal, ampliar la contabilidad de Odoo Community o incorporar un módulo de forma segura a su entorno 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 de Austria, Numeración de documentos con prefijo, año y contador y Conjuntos de productos como sección en el presupuesto.
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.