Ir al contenido

Conectar Banco

Conecta una cuenta bancaria real mediante Open Banking (TrueLayer) para sincronizar transacciones automáticamente.

  1. Haz clic en “Conectar banco” en la pantalla de Configuración > Bancos
  2. Se abre popup OAuth con lista de bancos disponibles en tu país
  3. Selecciona tu banco (ej: Santander, BBVA, CaixaBank)
  4. Autoriza el acceso con tus credenciales bancarias
  5. Se cierra popup y aparece confirmación con número de cuentas importadas
  6. Configura sincronización en wizard de 3 pasos:
    • Rango histórico: 30 días, 90 días, 1 año o todo
    • Frecuencia: cada 6h, diaria, semanal o manual
    • Confirmación y primera sincronización

✅ Cuentas bancarias con IBAN y saldos ✅ Transacciones históricas según rango seleccionado ✅ Saldos actuales y disponibles ✅ Nombres de comercios en transacciones

ErrorCausaSolución
”Has alcanzado el límite de 1 conexión”Plan Free solo permite 1 bancoActualizar a Basic (3 bancos) o Premium (ilimitadas)
“No se pudo abrir ventana de autenticación”Bloqueador de popups activoPermitir popups para Factux en navegador
”El tiempo de espera ha expirado”Popup OAuth tardó >5 minutosReintentar conexión y completar rápidamente
”Token revoked”Revocaste acceso desde tu bancoVolver a conectar banco desde cero
Detalles de implementación

Hook: useBankConnection Edge Function: truelayer-authgenerate_auth_link y exchange_code

Flujo OAuth:

  1. Frontend llama initiateConnection() en hook
  2. Hook verifica límite con useBankConnectionLimit
  3. Edge function genera URL OAuth con scopes: info, accounts, balance, transactions, offline_access
  4. Popup abre URL de TrueLayer (sandbox o producción según TRUELAYER_ENVIRONMENT)
  5. Usuario autoriza, TrueLayer redirige con ?code=XXX&state=YYY
  6. Popup llama exchange_code pasando código OAuth
  7. Edge function intercambia código por access/refresh tokens
  8. Tokens se encriptan y guardan vía RPC update_bank_connection_tokens
  9. Conexión queda en estado active
  10. Popup envía mensaje postMessage al opener y se cierra
  11. Frontend muestra BankConnectionWizard

Seguridad:

  • Tokens OAuth encriptados en PostgreSQL con algoritmo AES-256
  • State parameter para prevenir CSRF
  • RLS policies impiden acceso cross-business
  • Refresh automático de tokens próximos a expirar