1. Mapa de datos
Datos de cuenta
- Tabla
profiles: email, nombre, rol, idioma, moneda. - Datos sensibles opcionales (fecha de nacimiento, género, peso, altura) guardados cifrados a nivel de columna.
Datos generados
receipts,receipt_items— recibos escaneados y sus líneas de producto.user_scanned_products— historial de códigos de barras escaneados.budgets,budget_categories— presupuestos definidos por ti.groups,group_members— composición de tus grupos para divisiones de gastos.
Datos técnicos
user_app_events— eventos in-app (solo si consientes).usage_tracking,user_monthly_usage— uso de cupo (fotos, tokens) para facturación interna.
2. Aislamiento por usuario (RLS)
Toda tabla con datos personales tiene políticas Row-Level Security: las consultas se filtran automáticamente por auth.uid(). Esto significa que aunque alguien obtuviera un token JWT válido, solo podría leer y escribir sus propios datos. Las únicas consultas “globales” que existen son sobre catálogos compartidos (productos, supermercados) que no contienen PII.
3. Transferencias internacionales
Por defecto, todos los datos se almacenan en regiones de Supabase ubicadas en la Unión Europea. Para los servicios externos:
- Mistral AI (OCR) — UE, sin entrenamiento sobre tus datos (Data Processing Addendum).
- Stripe (pagos) — datos de pago tratados bajo cláusulas contractuales tipo de la Comisión Europea (Decisión 2021/914).
- Apple / Google (autenticación) — únicamente metadatos mínimos: email y permisos OAuth.
4. Tu derecho de acceso y portabilidad
Puedes solicitar una copia completa de tus datos en formato JSON con la siguiente acción en la app (Ajustes → Privacidad → Descargar mis datos) o por email a privacy@eatmyfinance.com. Atendemos la solicitud en un máximo de 30 días.
5. Eliminación de cuenta
Desde Ajustes → Eliminar cuenta. El borrado es hard delete:
- Inmediatamente: cierre de sesión global y anonimización del perfil.
- En las siguientes 24 horas: borrado de recibos, productos escaneados, presupuestos y eventos analíticos.
- En 7 días: borrado de imágenes en el bucket de almacenamiento.
- Conservamos hasta 5 años los registros estrictamente necesarios para obligaciones fiscales (facturas Stripe), sin contenido personal adicional.
6. Encargados de tratamiento (contratos firmados)
- Supabase Inc. — DPA estándar.
- Mistral AI SAS — DPA con cláusulas reforzadas de no entrenamiento.
- Stripe Inc. — DPA + cláusulas contractuales tipo.
7. Brechas de seguridad
En caso de incidente que afecte a datos personales, notificaremos a la AEPD en un máximo de 72 horas y, si el riesgo es alto, también a los usuarios afectados, conforme al art. 33-34 RGPD.
8. Delegado de Protección de Datos
Aún no tenemos obligación de designar un DPO por volumen de datos. Cuando alcancemos el umbral lo nombraremos y lo comunicaremos aquí. Mientras tanto, el contacto único para protección de datos es privacy@eatmyfinance.com.
