2026 · APP MÓVIL · IA

Balboa Finance

Convierte estados de cuenta y recibos en gastos categorizados, confirmados con un toque.

Asistente financiero personal. Ingesta estados de tarjeta de crédito desde Gmail, captura recibos físicos con Claude Vision, categoriza en 11 grupos de gasto fijos, y presenta transacciones pendientes para confirmación con un toque antes de que se persista cualquier dato.

Pone a prueba esta idea

Por qué importa

  • Reemplaza un prototipo frágil de n8n con un riesgo de doble escritura — la reescritura eliminó ese punto de falla antes de que llegara al registro permanente
  • Cero categorización manual por transacción — Claude clasifica, el usuario confirma con un toque; el ciclo completo de revisión toma menos de 5 segundos
  • La captura de recibos físicos cierra la brecha que las herramientas basadas en estados de cuenta no cubren — en Panamá, una parte significativa del gasto cotidiano (restaurantes, mercados locales, transporte) nunca aparece en un estado bancario

Qué hace

  • Un cron horario en GitHub Actions revisa Gmail en busca de estados PDF de tarjetas de crédito y extrae las transacciones con pdf-parse
  • La pantalla de cámara captura recibos físicos — Claude Vision lee comercio, monto, fecha y sugiere una categoría
  • Cada transacción extraída llega a una bandeja de Pendientes: revisar, editar o rechazar antes de que se escriba cualquier dato
  • Un toque confirma la transacción y la persiste en la base de datos
  • La pestaña de Chat responde preguntas de gasto en lenguaje natural — "¿cuánto gasté en restaurantes este mes?" — con respuestas en streaming
  • Análisis semanal y por ciclo de facturación: gasto por categoría, principales comercios y variación entre períodos
  • 11 categorías de gasto fijas (Supermercado, Restaurante, Transporte, Salud, Entretenimiento, Ropa, Hogar, Educacion, Servicios, Viajes, Otro) — Claude clasifica, el usuario confirma

Arquitectura

  • Monorepo Expo: la app móvil (React Native + NativeWind + Expo Router v4) y la API (Next.js 15 en Vercel) comparten tipos mediante un paquete workspace `packages/shared`
  • Supabase almacena el estado operativo — transacciones pendientes, log de deduplicación, comercios aprendidos, ciclos de facturación
  • GitHub Actions ejecuta el cron horario de Gmail — el cron secret puede encolar transacciones pero no puede escribir en la base de datos; solo el endpoint de confirmación autenticado con DEVICE_TOKEN puede hacerlo
  • Claude Sonnet 4.6 gestiona el OCR de recibos (visión) y las consultas conversacionales (streaming); las 11 categorías se inyectan como los únicos valores de clasificación válidos para que Claude no pueda inventar categorías nuevas
  • Reemplaza un prototipo frágil de n8n: cada integración tiene un SDK de Node de primera clase; n8n añadía complejidad, no capacidad, y tenía un riesgo de doble escritura que no se podía revertir silenciosamente

Filosofía

  • El invariante de confirmación es el primer principio: cero escrituras en el registro permanente sin un toque explícito del usuario. El cron, el clasificador, el OCR — ninguno puede tocarlo
  • Los recibos físicos importan en Panamá más que en casi cualquier otro lugar — buena parte del gasto cotidiano nunca llega a un estado de cuenta bancario
Hecho con
  • Expo
  • React Native
  • Next.js
  • Claude API
  • Notion API
  • Supabase
  • Gmail API