DEV Community

LeoJulieta
LeoJulieta

Posted on

IA al rescate: Revolut y Mint AI transforman tu presupuesto

IA al rescate de tu bolsillo: cómo Revolut y Mint AI están redefiniendo el budgeting personal (abril 2024)


🎯 Introducción

¿Te imaginas que tu banco te avise al instante cuando una compra compromete tu objetivo de ahorro, o que te proponga cambiar una suscripción por una opción 20 % más barata sin que tengas que mover un dedo? Esa es la realidad que están creando Mint AI y la nueva capa de IA de Revolut.

En 2026 la combinación de inflación persistente, LLMs accesibles y las APIs de Open Banking permite construir asistentes financieros que analizan cada transacción en tiempo real, generan presupuestos automáticos y ofrecen recomendaciones proactivas en lenguaje natural. En este artículo tienes una guía práctica, paso a paso, para diseñar, desarrollar y lanzar tu propio asistente financiero basado en IA.


📋 Qué hace diferente a un asistente IA de un app de budgeting tradicional

Característica App tradicional Asistente IA
Análisis Agrupa gastos por categorías predefinidas. Interpreta el contexto (“cena con amigos”, “viaje de negocios”).
Recomendaciones Alertas estáticas (“has superado el límite”). Sugerencias proactivas (“cambia esta suscripción a X”).
Interacción Menús y formularios. Conversación en lenguaje natural (texto o voz).
Acciones Sólo visualiza datos. Ejecuta pagos, crea objetivos de ahorro, bloquea tarjetas.

🛠️ Arquitectura mínima (2026)

┌─────────────────────┐
│  Frontend (React / │
│  Flutter)           │
└───────▲───────▲─────┘
        │       │
        │       │   HTTPS/TLS 1.3
        │       │
┌───────▼───────▼─────┐
│  API Gateway (FastAPI│
│  + Auth (OAuth2) )   │
└───────▲───────▲─────┘
        │       │
        │       │
┌───────▼───────▼─────┐
│  Service de IA      │
│  - LLM (OpenAI/GPT‑4│
│    o modelo local) │
│  - Motor de reglas │
└───────▲───────▲─────┘
        │       │
        │       │
┌───────▼───────▼─────┐
│  Open Banking Hub   │
│  (Plaid / Tink)     │
└─────────────────────┘
Enter fullscreen mode Exit fullscreen mode
  • Frontend: UI conversacional + dashboard de métricas.
  • API Gateway: gestión de tokens OAuth2, rate‑limiting y auditoría.
  • Service de IA: llama a un LLM (p. ej. gpt-4o-mini) y a un motor de reglas para validar recomendaciones.
  • Open Banking Hub: conecta con los bancos y entrega transacciones en tiempo real.

💻 Código de ejemplo: obtener transacciones con Plaid (Python)

import plaid
from plaid.api import plaid_api
from plaid.model.products import Products
from plaid.model.country_code import CountryCode

client = plaid_api.PlaidApi(
    plaid.Configuration(
        host=plaid.Environment.Sandbox,
        api_key={"clientId": "TU_CLIENT_ID", "secret": "TU_SECRET"},
    )
)

# 1️⃣ Intercambio de token (OAuth2 ya gestionado en frontend)
exchange_resp = client.item_public_token_exchange(
    plaid.model.ItemPublicTokenExchangeRequest(public_token="PUBLIC_TOKEN")
)
access_token = exchange_resp["access_token"]

# 2️⃣ Obtener historial de los últimos 30 días
transactions_resp = client.transactions_get(
    plaid.model.TransactionsGetRequest(
        access_token=access_token,
        start_date="2024-03-01",
        end_date="2024-03-31",
        options=plaid.model.TransactionsGetRequestOptions(count=500),
    )
)

for tx in transactions_resp["transactions"]:
    print(f"{tx.date} | {tx.name} | {tx.amount:.2f} €")
Enter fullscreen mode Exit fullscreen mode

Node.js (Fastify + TrueLayer)

import Fastify from 'fastify';
import { TruLayerClient } from '@truelayer/client';

const server = Fastify();
const tl = new TruLayerClient({
  clientId: process.env.TL_CLIENT_ID,
  clientSecret: process.env.TL_CLIENT_SECRET,
  sandbox: true,
});

server.get('/transactions', async (req, reply) => {
  const { access_token } = req.headers;          // token OAuth2 del usuario
  const data = await tl.accounts.getTransactions({
    accessToken: access_token,
    query: { from: '2024-03-01', to: '2024-03-31' },
  });
  return data.transactions.map(t => ({
    date: t.timestamp,
    merchant: t.merchant_name,
    amount: t.amount,
    currency: t.currency,
  }));
});

await server.listen({ port: 3000 });
Enter fullscreen mode Exit fullscreen mode

🤖 Llamada a un LLM para generar recomendación

import openai

openai.api_key = "TU_API_KEY"

def recomendar_ahorro(transaccion):
    prompt = f"""Eres un asistente financiero. Analiza la siguiente transacción y sugiere una acción de ahorro:
    - Descripción: {transaccion['name']}
    - Importe: {transaccion['amount']} €
    - Categoría sugerida: {transaccion.get('category','desconocida')}
    Responde solo con una frase corta y la acción (p. ej. "Cancela suscripción a X" o "Crea objetivo de ahorro de 100 €")."""
    resp = openai.ChatCompletion.create(
        model="gpt-4o-mini",
        messages=[{"role":"user","content":prompt}],
        temperature=0.2,
    )
    return resp.choices[0].message.content.strip()

# Ejemplo
tx = {"name":"Spotify Premium","amount":12.99}
print(recomendar_ahorro(tx))
Enter fullscreen mode Exit fullscreen mode

Salida esperada:

Cancela la suscripción a Spotify y cambia a la versión gratuita; ahorra 12,99 € al mes.


🔐 Seguridad y cumplimiento (GDPR + PCI‑DSS)

  1. Cifrado: AES‑256 en reposo (bases de datos) y TLS 1.3 en tránsito.
  2. Tokenización: nunca almacenes PAN; usa la tokenización que ofrece el proveedor Open Banking.
  3. Minimización: guarda únicamente transaction_id, date, amount, category y merchant.
  4. Anonimización: antes de enviar datos a un LLM externo, reemplaza nombres propios por placeholders ([COMERCIO]).
  5. Consentimiento: registra el consentimiento explícito (/consent endpoint) y permite revocarlo con un solo click.
  6. Auditoría: guarda logs inmutables de cada acceso a datos (CloudTrail, Elastic APM).

📊 Comparativa de costos (2024‑2026)

Concepto Opción A (OpenAI) Opción B (Modelo local) Comentario
LLM (tokens/mes) $0.0005 / 1 k $0 (infra‑estructura) Modelo local requiere GPU (≈ $0.30/h).
Open Banking (Plaid) $0.30 / usuario/mes $0.25 / usuario/mes (Tink) Los costos varían según volumen de llamadas.
Almacenamiento (AES‑256) $0.02 / GB/mes $0.01 / GB/mes S3 o bucket cifrado.
Total estimado (1000 usuarios) ≈ $350/mes ≈ $280/mes Ahorro del 20 % usando modelo local + Tink.

ROI rápido: Un usuario que ahorre solo 5 % de su ingreso mensual (≈ €200) genera un valor de vida del cliente (CLV) de > €2 400 en 12 meses, superando con creces los costos operativos.


📋 Checklist de lanzamiento

✅ Tarea
1 Registrar la empresa en el registro de actividades de tratamiento (GDPR).
2 Obtener certificación PCI‑DSS (SAQ D) o integrar un proveedor certificado.
3 Configurar OAuth2 con PKCE y almacenar tokens en vault.
4 Implementar pipeline de anonimización antes de enviar datos a LLM.
5 Test de carga: 10 000 transacciones/segundo → latencia < 200 ms.
6 Revisar políticas de retención

Herramienta mencionada: Groq Cloud

Top comments (0)