PausadoProductos y APIsSistemas a medida

Motor de cobranzaCuotas que se cobran por WhatsApp y QR

Motor de cobranza recurrente para negocios que cobran en cuotas —colegios, lotizadoras, gimnasios, clínicas—: cronograma y mora, recordatorio por WhatsApp, un portal con QR interoperable y el saldo que baja solo cuando el pago entra.

Busco algo como esto
Motor de cobranza: Prototipo: la cartera ordenada por atraso, con datos de demostración
pruebas en verde en integración continua
300
tablas aisladas por cliente con Row Level Security
11
recordatorios como máximo, y solo entre las 8 y las 20 h
4
días del primer commit al motor completo
3

El problema

Muchos negocios viven de cobrar en cuotas: la pensión del colegio, la cuota del lote, la mensualidad del gimnasio, el tratamiento en partes de una clínica. Y casi todos cobran igual: una hoja de cálculo, un recordatorio escrito a mano por WhatsApp y un comprobante de Yape que alguien revisa en la noche para descontar del saldo.

Lo que construí

Un motor de cobranza que hace el recorrido completo:

  1. Alta del deudor, con su cronograma de cuotas y su regla de mora.
  2. Recordatorio por WhatsApp, con un enlace propio.
  3. Un portal donde el deudor entra con su DNI y un código, sin crear cuenta, y ve su estado de cuenta.
  4. Un QR interoperable, que se paga con Yape, Plin o la app de cualquier banco.
  5. El saldo baja solo cuando el pago se confirma.

Del otro lado, un panel con la cartera ordenada por atraso, la ficha de cada deudor y el historial de recordatorios.

Cómo está hecho

Un monorepo en TypeScript: la API en NestJS, el panel y el portal en Next.js, y PostgreSQL con Prisma.

El dinero no se redondea, se reparte. Todo se calcula en céntimos enteros: cuando una deuda no se divide exacta entre las cuotas, el residuo va a la última, nunca se pierde. La mora corre sobre el saldo, con interés simple, y cada pago se imputa en orden: primero la mora, luego el interés y al final el capital.

  • El aislamiento entre clientes lo impone la base de datos, no el código: Row Level Security con tres roles. Un error en una consulta no puede mostrar la cartera de otro negocio.
  • El QR sigue el estándar EMVCo, con su código de verificación, y el aviso de pago llega por un webhook firmado e idempotente: el mismo aviso dos veces no descuenta dos veces.
  • Los recordatorios prefieren callar. Uno por barrido, cuatro como máximo y solo entre las 8 y las 20 horas, como pide el Código de Protección al Consumidor.
  • La API se niega a arrancar si detecta secretos de desarrollo en producción.

Estado hoy

Pausado. El motor funciona de punta a punta en local, con 300 pruebas en verde, pero no está desplegado: falta conectar un proveedor de pagos real, el monitoreo de errores y el comprobante electrónico, que llegaría por Comprobia. No tiene clientes.

Las pantallas de esta página son un prototipo de diseño con datos de demostración: siguen los estados, las reglas de mora y de avisos y los textos del código real, pero el negocio, las personas y los montos son inventados.

Lo que aprendí

Que en cobranza el error caro no es técnico: es cobrar mal. Un céntimo que se pierde en el redondeo o un recordatorio a las once de la noche cuestan más confianza que cualquier caída del servidor. Por eso las reglas de dinero y de contacto tienen más pruebas que todo lo demás.

4 capturas · toca una para verla en grande

Cuéntame qué quieres resolver. Te respondo en 24–48 h con una primera idea de cómo lo construiría, y si no soy la persona indicada, te lo digo.

Victor Llerena, desarrollador fullstack, con los brazos cruzados, de cerca

Proyectos relacionados

Demo funcional

Sistemas a medida · Web y ecommerce · Apps móviles

Happy Day

Admisión, pensiones, comunicados y aula virtual de un jardín infantil, con una app para padres y docentes.

Para: Educación inicial · Cajamarca

  • TypeScript
  • Turborepo
  • Next.js 16
  • React 19
Ver el caso
En producción

Web y ecommerce

Ark Gamer Store

Catálogo de cómputo que se publica solo desde las listas de los proveedores, con «Arma tu PC» en 3D y el carrito directo a WhatsApp.

Para: Ecommerce de cómputo · Cajamarca

  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind CSS 4
Ver el caso