# Política de privacidad de Presupuesto Fecha de entrada en vigor: 19 de julio de 2026 English version: `/privacy` El estado de aprobación de esta revisión exacta se registra en docs/LEGAL_PRODUCT_RELEASE_APPROVAL.json. Titular designado para la aprobación de producto/legal: Cecil Teran. La autoridad de aprobación es el registro de resúmenes criptográficos exactos indicado arriba, no este nombre por sí solo. Presupuesto es una app beta de finanzas personales para revisar estados de cuenta bancarios subidos, cerrar meses financieros y entender el gasto del hogar. Esta política explica qué maneja la beta y cómo contactarnos sobre tus datos. ## Quiénes somos Presupuesto es desarrollada y operada por Presupuesto Apps, un desarrollador individual con sede en Ecuador. El punto de contacto de privacidad es el contacto de soporte publicado en `/support`; úsalo para preguntas de privacidad y para solicitudes de exportación o eliminación. Presupuesto Apps opera desde Ecuador y trata los datos personales tomando en cuenta la Ley Orgánica de Protección de Datos Personales (LOPDP) del Ecuador; si usas la beta desde otro lugar de América Latina o desde España, también puedes tener derechos adicionales bajo tu ley local de protección de datos. Las solicitudes de eliminación verificadas que se hacen a través del contacto de soporte se completan dentro de 15 días. ## Qué recopilamos Cuando usas la beta, Presupuesto puede procesar: - detalles de cuenta y de espacio de trabajo, como tu identidad de inicio de sesión, nombre para mostrar, nombre del hogar/negocio, rol, invitaciones, metadatos de sesión, configuración del ciclo de reporte, calendarios de fuentes de ingreso, etiquetas/tipos/últimos cuatro dígitos de cuentas financieras, metas de ahorro, revisiones de transferencias y estado de la lista de configuración - detalles de estados de cuenta y transacciones de los archivos que subes, incluyendo fechas, descripciones, beneficiarios, categorías, montos y totales derivados - solo si la versión candidata de carga durable sujeta a una puerta separada se despliega y habilita más adelante, una copia temporal de recuperación de los bytes del estado de cuenta cifrada por el servidor, estado limitado de fragmentos y sesión de carga, una huella SHA-256 del contenido del estado de cuenta, evidencia de la versión exacta de almacenamiento y prueba de eliminación/ausencia; esta versión candidata no recibe tráfico de usuarios de la beta alojada actualmente - evidencia normalizada del historial anual y plantillas de mapeo de estados de cuenta confirmadas por el usuario que se conservan después de una importación; una vista previa limitada del mapeador puede mostrarte celdas de origen, pero no se conserva - evidencia financiera analizada y durable usada para verificar compatibilidad y calidad de datos, incluyendo paquetes de modelo validados duplicados, vínculos revisados entre registros de cuenta/fuente/ciclo/transacción/ categoría, y comparaciones de identidad, categoría, cobertura, correcciones, totales, exclusiones, transferencias y preparación - solo si la versión candidata de gobernanza se despliega y habilita más adelante, prueba minimizada de gobernanza de propiedad y consentimiento de eliminación, incluidas las solicitudes y decisiones de transferencia de propietario, las solicitudes de eliminación de espacios de trabajo y el consentimiento de cada persona requerida, las solicitudes de eliminación de datos en poder de un proveedor y el consentimiento de cada titular de datos afectado, además de referencias opacas de actores/titulares, generaciones vigentes de membresía, referencias de autoridad, estados de ciclo de vida, marcas de tiempo y resúmenes criptográficos - historial de cierre de mes, incluyendo recibos, insights, totales por categoría, totales diarios de flujo de caja, eventos de auditoría y filas de transacciones exportadas - comentarios de la beta que envías dentro de la app, más un contexto limitado de la app que nos ayuda a entender el problema - metadatos de seguridad, como verificadores de sesión con hash, etiquetas generales del cliente y conteos agregados de Firebase App Check - si das tu consentimiento por separado, telemetría de demanda sobre formatos de estados de cuenta limitada estrictamente como se describe en Telemetría de demanda opcional ## Cómo usamos los datos Usamos estos datos para: - crear vistas previas a partir de los estados de cuenta subidos - ayudarte a revisar transacciones inciertas antes de cerrar un mes - guardar el historial de cierre de mes de tu hogar - preparar historial anual normalizado y permitirte reutilizar un mapeo que confirmaste - soportar los flujos de exportación, eliminación, comentarios y administración de cuenta - proteger el servicio contra sesiones reutilizadas y solicitudes de apps no verificadas - mejorar el producto beta con base en comentarios y señales de confiabilidad ## Sin venta ni uso publicitario Presupuesto no vende datos personales. Presupuesto no usa datos personales para publicidad ni comparte datos personales para anuncios. ## Archivos de estados de cuenta El flujo de historial anual de la prueba cerrada está disponible únicamente para una cohorte de Google Play autorizada en el servidor, limitada en el tiempo y con un máximo de 20 miembros, y solo para cuentas financieras clasificadas como `PRIVATE`. Las cuentas compartidas y conjuntas están fuera de este perfil. Cada estado de cuenta está limitado a 5 MiB y 2.500 transacciones analizadas. El perfil vence el 31 de octubre de 2026 salvo que se revise y renueve por separado, y Presupuesto puede desactivarlo antes. Los bytes crudos del estado de cuenta viajan mediante TLS y se procesan de forma transitoria en la memoria de la solicitud y en el manejo ordinario de la plataforma de alojamiento. Presupuesto no crea intencionalmente una copia durable del estado de cuenta original. Cuando compartes un estado de cuenta desde otra app de Android, el permiso original de la URI de contenido es transitorio; Presupuesto no conserva ese permiso de URI como fuente del documento después de la transferencia. Dentro de un espacio de trabajo compartido, el trabajo transitorio del estado de cuenta y los controles de su ejecución de importación están disponibles solo para la persona que lo subió. Antes de recibir el archivo, Presupuesto registra los identificadores canónicos y un resumen criptográfico de las cuentas `PRIVATE` activas de esa persona que en ese momento son elegibles para importación. Una importación posterior puede seleccionar una o varias cuentas solo de ese conjunto, y el acceso se comprueba de nuevo antes de crear o publicar por primera vez el historial normalizado. Para limitar abusos, Presupuesto registra referencias opacas de usuario/espacio, ventanas de tiempo, intentos aceptados y la cantidad de bytes del cuerpo recibidos realmente; esos contadores no contienen valores del estado de cuenta ni celdas de vista previa. Antes del análisis, el proceso de prueba cerrada realiza validaciones estructurales y solo de datos, y rechaza contenido activo, estructuras de archivo inseguras, fórmulas, vínculos externos y archivos fuera de límites fijos de recursos. El análisis se ejecuta en un entorno Linux restringido sin red ni creación de procesos. Esto no es un análisis antivirus convencional, no ofrece certificación antivirus y no puede reducir a cero el riesgo de abrir un estado de cuenta no confiable. Los controles estrictos también pueden rechazar una exportación bancaria legítima. El mapeador universal puede devolver una vista previa estructural pequeña y limitada al usuario autenticado que subió el archivo. Esa vista previa no se conserva y nunca se usa como telemetría. Si confirmas una importación o un mapeo, la evidencia normalizada del historial anual, las filas preparadas y las versiones de las plantillas de mapeo se conservan como datos del producto, según se describe abajo. No son otra copia de los bytes originales CSV, XLSX, OFX o QFX. Esta vía separada de prueba cerrada no habilita el almacenamiento durable de artefactos crudos de WP-210 ni una conexión API con un banco o proveedor. ### Versión candidata de carga durable sujeta a una puerta separada Presupuesto tiene una versión candidata v27-v28 de carga durable, desactivada de forma predeterminada, para recuperar una carga interrumpida sin pedirle al usuario de Android que vuelva a elegir el mismo archivo. Su esquema aditivo puede estar instalado en el backend alojado v28, pero la versión protegida de Android deja desactivada la carga reanudable y la beta alojada no la enruta ni habilita. Los controles de Google Cloud etiquetados para pruebas en `us-east4` incluyen un bucket de custodia vacío, claves y un worker de Fase 2 aprovisionado cuya puerta de ejecución es `false`; no reciben estados de cuenta de la beta ni tráfico de la aplicación. Si esa versión candidata se aprueba y habilita por separado, Android enviará fragmentos en texto claro seleccionados por el usuario únicamente a Presupuesto mediante TLS, no directamente a Google Cloud Storage. El servidor cifrará cada fragmento con una clave AES-256-GCM propia de la carga, protegida por Google Cloud KMS, y enviará solo el texto cifrado a un bucket privado y con versiones de Google Cloud Storage. La URI de la sesión de carga del proveedor y el material de claves permanecerán en el servidor y cifrados en reposo; la app recibirá solo un estado de recuperación opaco y limitado. La versión candidata acepta como máximo 25 MiB y nunca usa el objeto temporal de recuperación como fuente del analizador. Después de completar la generación exacta en el almacenamiento, Presupuesto debe verificar cada bloque cifrado y la identidad completa del estado de cuenta, sellar un artefacto cifrado independiente y con versión exacta para su procesamiento, eliminar la generación temporal de recuperación y comprobar su ausencia antes de iniciar el trabajo de importación aplazado. Una cancelación, caducidad, eliminación de cuenta/espacio, autoridad obsoleta, respuesta ambigua del proveedor o ausencia no verificada hace que el proceso falle de forma cerrada y deja la limpieza pendiente en vez de publicar datos financieros. La sesión temporal de recuperación debe cancelarse y limpiarse con verificación antes de siete días. El artefacto de procesamiento sellado por separado sigue el plazo aplicable más corto: dentro de 24 horas después de la publicación o de un fallo/rechazo/cancelación terminal, después de siete días esperando el mapeo, de inmediato al eliminar el usuario y nunca después de 30 días. La ejecución antimalware y de análisis de archivos para producción permanece desactivada. El worker de Fase 2 etiquetado para pruebas no puede ejecutar mientras su puerta sea `false`. La divulgación vigente del analizador estructural de la prueba cerrada sigue describiendo el comportamiento visible hasta que existan pruebas de activación gestionada, eliminación, recuperación y lanzamiento en Play. Esta versión candidata no crea ninguna conexión API con un banco o proveedor. Para validar el formato de Produbanco, Presupuesto acepta una muestra de un tester únicamente con su consentimiento explícito y mediante el flujo restringido de evidencia; no se usan estados de cuenta de clientes publicados en internet, correo, chat, analítica, registros ni Git. Cualquier ejemplo que se conserve en el repositorio debe ser sintético y reemplazar cada nombre, cuenta/referencia, monto, fecha, saldo y descripción después de una revisión de privacidad. Hasta completar esa validación, Produbanco se mantiene solo como guía y elegir el banco no demuestra el formato del estado de cuenta. No envíes estados de cuenta bancarios, contraseñas, tokens de sesión ni exportaciones completas de cuenta por correo electrónico. ## Telemetría de demanda opcional La telemetría de demanda sobre formatos de estados de cuenta es opcional y está desactivada de forma predeterminada. Presupuesto la registra solo después de que aceptas la versión vigente del consentimiento. Rechazarla o retirar el consentimiento no bloquea la vista previa, el mapeo, las plantillas ni la importación. El contrato de telemetría acepta solo una lista exacta: referencias limitadas de país e institución, una categoría de formato, una huella HMAC con clave derivada del esquema normalizado, el resultado del mapeador y conteos de problemas por rangos. No contiene nombres de archivos, encabezados crudos ni normalizados, filas, valores, descripciones, datos o identificadores de cuentas financieras, resúmenes del contenido del estado de cuenta ni inventario de apps instaladas. Android comprueba localmente un paquete bancario de una lista exacta y su certificado de firma cuando ofrece abrir la app del banco; no enumera ni informa las apps instaladas del usuario. Los eventos no agregados con consentimiento se conservan por un máximo de 90 días. Los agregados para operadores se crean solo para grupos que representan al menos cinco espacios de trabajo distintos (`k >= 5`) y se conservan por un máximo de 13 meses. Retirar el consentimiento elimina los eventos no agregados de ese usuario; un agregado ya creado que cumple el umbral permanece hasta que venza su plazo de 13 meses. La exportación de cuenta incluye el estado del consentimiento y los eventos no agregados del solicitante, además de las plantillas de mapeo del espacio de trabajo. ## Exportación a Google Sheets La sincronización/archivo con Google Sheets es opcional. Si está habilitada para tu hogar, Presupuesto escribe los datos aprobados del cierre de mes en la hoja de cálculo de Google configurada. Las credenciales de Google se mantienen en el backend y no se envían a la app de Android. Las exportaciones a Google Sheets son destinos de exportación separados del usuario o del hogar. Eliminar los datos del hogar en Presupuesto elimina los datos del hogar almacenados por la app, pero no elimina una copia en Google Sheets que tú controlas. Elimina esa hoja o deja de compartirla por separado si ya no quieres conservarla. ## Retención Presupuesto conserva los recibos de cierre de mes, las transacciones cerradas normalizadas, la evidencia normalizada del historial anual, las filas preparadas, las versiones de plantillas de mapeo, los comentarios, los metadatos del hogar, los eventos de auditoría y la evidencia analizada durable de compatibilidad/calidad de datos descrita arriba hasta que el propietario del hogar elimina los datos del hogar. Los comentarios de la beta que escribiste en un espacio de trabajo también se eliminan antes cuando eliminas tu cuenta: la eliminación de cuenta abandona cada espacio de trabajo que no te pertenece y elimina los comentarios que escribiste ahí. No existe una manera independiente de salir de un espacio de trabajo sin eliminar tu cuenta, como se describe en Eliminación de cuenta. Una reversión operativa puede desactivar esa evidencia sin borrarla, y la limpieza rutinaria basada en tiempo no la elimina. Las vistas previas de importación sin cerrar y las cargas de reintento de importaciones cerradas se eliminan tras ventanas de retención cortas configuradas. Las sesiones expiradas o revocadas, las invitaciones y los registros de protección contra repetición de autenticación se eliminan mediante la limpieza de mantenimiento. Después de una eliminación, Presupuesto elimina la evidencia financiera y de modelo analizada durable del espacio de trabajo y conserva un marcador mínimo de eliminación que contiene el ID del espacio de trabajo/hogar y la fecha y hora de eliminación. No contiene registros financieros, miembros, comentarios, sesiones, invitaciones ni datos de configuración. Este marcador se conserva para evitar que el ID del espacio de trabajo eliminado se recree y vuelva a conectar datos que deben permanecer eliminados. Si la limpieza local no puede terminar de inmediato, un registro mínimo de reintento del operador permanece solo hasta que la limpieza tiene éxito. Si ya se había registrado una obligación de limpieza con un proveedor, su evidencia resumida de obligación e intentos — identidades de espacio de trabajo/conexión, referencias de consentimiento/titular, referencias de ruta/institución, referencias en forma de resumen criptográfico y registros de ciclo de vida/prueba, sin credenciales ni tokens crudos del proveedor — se conserva indefinidamente como evidencia de seguridad y auditoría, incluso después de que esa limpieza se completa. En la beta actual no existen conexiones de proveedores en producción, por lo que esos registros aún no pueden originarse de actividad real de usuarios. El componente v21 de gobernanza de propiedad/eliminación también conserva permanentemente sus registros minimizados de prueba: la intención y decisión de transferencia de propietario, la intención de eliminar el espacio y los consentimientos individuales, y la intención de eliminar datos en poder de un proveedor con el consentimiento de cada titular. Estos registros usan identidades opacas, generaciones, referencias de autoridad, estados, marcas de tiempo y resúmenes criptográficos; no conservan el motivo ni el texto de idempotencia proporcionado por el solicitante, el documento completo de alcance, credenciales del proveedor ni contenido de estados de cuenta. Estos registros de gobernanza son independientes de la vía de tráfico de carga durable, que sigue desactivada. La versión candidata v27-v28 de carga durable programaría la cancelación y limpieza verificada, antes de siete días, del texto cifrado de recuperación en Google Cloud Storage, y conservaría un artefacto de procesamiento cifrado e independiente bajo los plazos de 24 horas/siete días/inmediato/30 días indicados arriba. Si no se puede verificar la limpieza del almacenamiento, el acceso y la publicación permanecen bloqueados y la limpieza sigue reintentándose en vez de tratar el plazo como prueba de eliminación. Sus registros de control en PostgreSQL contienen estado limitado de carga, autoridad, versión de almacenamiento, verificación y limpieza. Las filas de fragmentos, claves protegidas, nonces y la URI cifrada de la sesión del proveedor se eliminan tras verificar la limpieza de la etapa temporal. El recibo terminal de la carga, incluida su huella de contenido, tamaño/tipo limitados, identidades opacas, observaciones de la versión de almacenamiento y resúmenes de limpieza/ausencia, se conserva por un máximo de 30 días después de la activación, cancelación o caducidad, y luego se elimina únicamente después de comprobaciones de consistencia que fallan de forma cerrada. Los recibos cancelados/caducados eliminan de inmediato los ID directos de espacio/usuario; la limpieza gobernada puede continuar con el resumen criptográfico de su autoridad. Ningún estado de cuenta de usuarios de la beta alojada ha entrado en esta vía, y la Fase 1 por sí sola no es un despliegue de custodia en producción. ## Eliminación de cuenta Puedes eliminar tu cuenta completa de Presupuesto: - En la app: Cuenta → Configuración → Datos y privacidad → Eliminar mi cuenta. La app primero muestra un plan de eliminación por espacio de trabajo y exige un texto de confirmación exacto antes de eliminar cualquier cosa. - En la web: https://presupuesto-api-ru6e.onrender.com/delete-account describe los mismos pasos y la vía de solicitud externa (envía un correo al contacto de soporte desde la dirección de la cuenta de Google con la que inicias sesión; las solicitudes se verifican contra tu identidad de inicio de sesión y se completan dentro de 15 días). Qué sucede por espacio de trabajo: - Un espacio de trabajo de tu propiedad sin otros miembros activos se elimina por completo, como se describe en Exportación y eliminación. - En el backend v28, un espacio de trabajo de tu propiedad que aún tenga otros miembros activos, o que contenga cuentas compartidas/conjuntas, se elimina solo cuando los requisitos de consentimiento autenticado descritos abajo estén completos y vigentes. Sin ese consentimiento exacto, la eliminación permanece bloqueada. - Un espacio de trabajo donde eres miembro o visualizador se abandona, no se elimina: tu acceso, tus sesiones y tus invitaciones pendientes para ese espacio de trabajo terminan, y los comentarios de la beta que escribiste ahí se eliminan, pero los datos propios del hogar (meses cerrados, transacciones, historial de auditoría) permanecen con el hogar. El componente de gobernanza v21 del backend v28 implementa las siguientes vías independientemente de la puerta desactivada de tráfico de carga durable: - El único propietario vigente del espacio de trabajo puede solicitar una transferencia a otro miembro activo. La persona destinataria debe aceptar por separado mientras ambas generaciones de membresía sigan vigentes; la aceptación convierte al propietario anterior en miembro y a la persona destinataria en propietaria dentro de una sola transacción. - Para un espacio con varios miembros activos o cuentas compartidas/conjuntas, el propietario vigente puede solicitar la eliminación, pero cada miembro activo y cada persona requerida vinculada a una cuenta compartida/conjunta debe consentir por separado. Presupuesto vuelve a comprobar la membresía, las cuentas, los titulares y los permisos vigentes inmediatamente antes de la eliminación, y consume el consentimiento en la misma transacción que la eliminación. Un consentimiento ausente, retirado, obsoleto, ambiguo o sin representación válida hace que la operación falle de forma cerrada. - Si una futura conexión con un proveedor afecta a más de un titular de datos, la eliminación de datos en poder del proveedor requiere una decisión vigente y separada de cada titular afectado mediante un representante autorizado. El hecho de que una persona represente a varios titulares no combina esas decisiones. El enrutamiento hacia proveedores sigue deshabilitado, por lo que esto no afirma que exista una eliminación saliente ni una conexión bancaria activa. La aprobación de esta divulgación no despliega ni habilita la versión candidata de gobernanza. Hasta que exista evidencia de despliegue, los bloqueos actuales de la beta alojada descritos arriba siguen siendo el comportamiento visible. Después de procesar tus espacios de trabajo, se revocan todas tus sesiones restantes. Si nada más hace referencia a tu cuenta, el registro de la cuenta también se elimina. Si evidencia de auditoría retenida en un hogar que abandonaste todavía hace referencia a tu cuenta — lo cual siempre ocurre después de salir de un espacio de trabajo compartido — Presupuesto conserva un registro mínimo de cuenta como una referencia derivada opaca: su nombre para mostrar se reemplaza por "Cuenta eliminada" y no contiene nombre ni correo electrónico. Iniciar sesión de nuevo con la misma cuenta de Google volvería a asociar esa referencia contigo. El backend de Presupuesto no puede eliminar tu registro de inicio de sesión de Google/Firebase: después de que el backend confirma la eliminación, la app elimina tu usuario de Firebase Authentication desde el dispositivo, pidiéndote iniciar sesión de nuevo primero si Firebase requiere un inicio de sesión reciente. Si ese paso final falla, la app cierra tu sesión, y también puedes retirar el acceso de Presupuesto desde la configuración de tu cuenta de Google. Para las solicitudes de eliminación hechas por correo, el operador elimina manualmente el registro de Firebase Authentication desde la consola de Firebase como parte del cumplimiento. Eliminar tu cuenta no impide que la misma cuenta de Google inicie sesión de nuevo más adelante. Iniciar sesión de nuevo crea el mismo ID de cuenta derivado con una cuenta vacía; los espacios de trabajo eliminados no pueden recrearse ni reconectarse, pero una referencia opaca retenida como la descrita arriba volvería a asociarse. ## Exportación y eliminación Los usuarios con sesión iniciada pueden solicitar una exportación filtrada por acceso del espacio de trabajo activo, incluyendo sus datos de configuración/dominio y la evidencia analizada elegible de compatibilidad/calidad de datos, el historial anual normalizado, las versiones de plantillas de mapeo y la telemetría opcional no agregada del solicitante, sin tokens crudos, bytes del estado de cuenta original ni registros de espacios de trabajo hermanos. En el componente de gobernanza v21 de la versión candidata sujeta a una puerta separada, la exportación previa a la eliminación también incluye el grafo completo y minimizado de prueba de gobernanza de propiedad/ eliminación: sus ocho registros de intenciones, consentimientos y decisiones, con identidades opacas y resúmenes criptográficos en vez del motivo/texto de idempotencia del solicitante o un documento completo del alcance vigente. Los propietarios de hogar/negocio pueden eliminar el espacio de trabajo activo tras una confirmación exacta. La eliminación remueve los datos de configuración/dominio, cuenta, invitaciones, comentarios, importaciones, cierre de mes, transacciones y auditoría de ese espacio de trabajo, incluyendo la evidencia normalizada del historial anual, las plantillas de mapeo, los consentimientos de telemetría y los eventos no agregados, y preserva los demás espacios de trabajo. Los agregados de telemetría ya creados con `k >= 5` vencen según el límite de 13 meses en lugar de convertirse en registros de exportación por usuario. Los usuarios con sesión iniciada también pueden eliminar su cuenta completa, como se describe en Eliminación de cuenta. No existe una operación independiente para salir de un espacio de trabajo: salir de un espacio de trabajo que no te pertenece ocurre solo como parte de la eliminación de tu cuenta. Esa salida elimina los comentarios que escribiste ahí, mientras que los datos propios del hogar permanecen con el hogar. Los registros que se conservan permanentemente de forma intencional después de una eliminación son: - el marcador mínimo de eliminación (ID del espacio de trabajo/hogar y fecha y hora de eliminación) descrito arriba; - la evidencia ya registrada de obligación e intentos de limpieza con un proveedor, conservada indefinidamente como evidencia de seguridad y auditoría como se describe en Retención; - los ocho registros minimizados de prueba de gobernanza de propiedad y eliminación: intenciones y decisiones de transferencia de propietario; intenciones de eliminación del espacio, consentimientos individuales y decisiones terminales; e intenciones de eliminación de datos en poder del proveedor, consentimientos por titular y decisiones terminales. Conservan solo identidades opacas, generaciones, referencias de autoridad, estados, marcas de tiempo y resúmenes criptográficos necesarios para probar la decisión, no texto del solicitante, documentos completos de alcance, credenciales del proveedor ni registros financieros; - si alguna vez existió un artefacto cifrado de estado de cuenta para el espacio de trabajo, el registro mínimo de limpieza del artefacto externo: la obligación de limpieza, su historial de intentos y la prueba de ausencia verificada, que contienen solo identidades opacas o en forma de resumen criptográfico del localizador de almacenamiento y del manifiesto seguro, además de motivos, estados y marcas de tiempo — nunca un nombre de archivo, material de claves, contenido cifrado o en claro, ni valores del estado de cuenta. La beta alojada actual no envía ningún estado de cuenta de usuario a custodia durable; el bucket de Fase 1 etiquetado para pruebas está vacío y solo ha contenido pruebas de infraestructura no secretas ya eliminadas, por lo que estos registros aún no pueden originarse de actividad real de usuarios; y - la referencia de cuenta opaca mínima que se conserva cuando evidencia de auditoría retenida en otro hogar todavía hace referencia a una cuenta eliminada, con su nombre para mostrar reemplazado por "Cuenta eliminada". Los registros temporales de limpieza se consumen cuando su trabajo termina. Los datos eliminados del hogar pueden permanecer recuperables por un periodo corto dentro de la ventana de respaldo o restauración del proveedor de base de datos alojada. Si Presupuesto alguna vez restaura la base de datos desde un respaldo después de una solicitud de eliminación, volveremos a aplicar las solicitudes de eliminación afectadas antes de devolver el servicio a los usuarios de la beta. ## Seguridad Presupuesto almacena verificadores de tokens de sesión en lugar de tokens de sesión crudos para las sesiones nuevas. Android envía una huella estable de instalación para que el backend pueda rechazar un token de sesión copiado que se use desde otra instalación de la app. Firebase App Check puede usarse para verificar que las solicitudes provienen de la app real de Android. Firebase Authentication recopila direcciones IP y detalles del agente de usuario con las solicitudes de inicio de sesión como parte de su propósito de seguridad y prevención de abuso; Google conserva esos registros durante algunas semanas. Nuestros proveedores de alojamiento también mantienen registros de solicitudes de infraestructura de corta duración que incluyen direcciones IP. Presupuesto no usa direcciones IP para inferir ni recopilar tu ubicación. ## Proveedores de servicio La beta alojada puede usar Firebase para el inicio de sesión y la atestación de la app, Render para el alojamiento del backend, Neon para el almacenamiento en PostgreSQL, GitHub Actions para la automatización de mantenimiento/compilación, y Google Sheets para exportaciones opcionales. Se ha aprovisionado por separado un plano de control de Google Cloud y un worker de Fase 2 con ejecución desactivada, etiquetados para pruebas en `us-east4`, para la versión candidata de carga durable desactivada de forma predeterminada. Su bucket de Cloud Storage, claves de Cloud KMS, Artifact Registry, versión del secreto de base de datos e identidad de worker no reciben actualmente datos de usuarios de la beta ni tráfico de la aplicación. Google Cloud Storage y Cloud KMS se convierten en proveedores que tratan datos de estados de cuenta solo después de que la versión candidata se despliegue y habilite por separado y se vuelvan a comprobar estas divulgaciones contra ese lanzamiento exacto. Estos proveedores pueden tratar datos fuera del Ecuador, incluso en Estados Unidos, donde la beta alojada y el plano de control etiquetado para pruebas en `us-east4` usan infraestructura. Todo ese tratamiento se limita a operar los servicios descritos en esta política. Un proveedor o una región nuevos deben revisarse y esta política debe actualizarse antes de que reciban datos de usuarios de Presupuesto. ## Contacto Para preguntas de privacidad, ayuda con exportación/eliminación o soporte de la beta, usa el contacto de soporte que se muestra en `/support`. Esta política puede cambiar a medida que la beta evoluciona. Actualizaremos esta página cuando el producto o la infraestructura alojada cambien de forma sustancial.