Visor genérico in-app (ruta /legal/{doc}) que resuelve los links hoy muertos de Perfil, Privacidad y el footer de Bienvenida (A1): Términos y condiciones y Política de Tratamiento de Datos. Contenido verbatim del vault 05-documentos-publicos/. Header con título, versión y fecha de vigencia visibles. Solo lectura — la aceptación ocurre en registro, nunca aquí. Disponible pre-auth (lo exige A1).
/legal/{doc}GET /v1/legal/{doc}verbatim del vaultversión + vigencia visiblessolo lectura · sin aceptación
Layout anotado · TyC abierto
Documento largo → tipografía de lectura (14px / 1.7), TOC colapsable arriba, secciones numeradas. El fragmento mostrado es real del vault; el resto se representa con placeholder — el visor renderiza el documento completo.
título + versión + vigencia
TOC colapsable
tipografía de lectura · 1.7
contenido verbatim · vault
9:41
Términos y condiciones
v3.2 · A partir de su publicación en la Plataforma.
Contenido · 21 secciones
1Objeto y alcance
2Definiciones
3Naturaleza del servicio
4Riesgos de los criptoactivos
…18. PQRS y canales de atención
§4Riesgos de los criptoactivos
Los criptoactivos no son moneda de curso legal en Colombia, no cuentan con el respaldo del Banco de la República ni de ninguna autoridad estatal, y su valor puede fluctuar significativamente en periodos cortos de tiempo.
MICAPI S.A.S. actúa como contraparte directa en las operaciones de compra y venta, y no garantiza rentabilidad ni valorización alguna de los criptoactivos adquiridos…
[ resto del documento — verbatim del vault 05-documentos-publicos/tyc-v3.2.md ]
Composición
Header de documentoTítulo del doc + línea mono versión y fecha de vigencia — siempre visibles, también al hacer scroll (app bar sticky con blur §4.12).
TOC colapsableCard excepción (contenido heterogéneo §4.7b): lista numerada de secciones, tap → scroll a la sección. Colapsado por defecto en docs cortos, expandido en TyC (21 secciones).
Tipografía de lecturaBody 14px / line-height 1.7 (relaxed) — único lugar del sistema que usa el token relaxed. Ancho completo, sin justificar.
Verbatim · sin resumenEl cliente renderiza el markdown del vault tal cual. Prohibido parafrasear, resumir o "simplificar" el texto legal en este visor.
Sin aceptaciónNo hay checkbox ni CTA "Acepto". El mismo visor se embebe en registro, donde la aceptación vive fuera del documento.
Política de datos · y estados
El mismo visor sirve la Política de Tratamiento de Datos — solo cambian título, versión y contenido. Estados: cargando (skeleton de párrafos), error con reintento, offline con caché.
Política de datos
9:41
Política de tratamiento de datos
v2.1 · A partir de su publicación en la Plataforma.
§13Derechos del titular
Como titular de tus datos personales, puedes conocer, actualizar, rectificar y suprimir tu información, así como revocar la autorización otorgada, conforme a la Ley 1581 de 2012.
Las consultas se responden en un plazo máximo de diez (10) días hábiles y los reclamos en quince (15) días hábiles…
[ verbatim del vault 05-documentos-publicos/politica-datos-v2.1.md ]
Cargando
9:41
Términos y condiciones
Error de carga
9:41
Términos y condiciones
No pudimos cargar el documento
Revisa tu conexión e intenta de nuevo.
Reglas de estado
Caché con vigenciaLa última versión leída se cachea. Offline: se muestra la cacheada con banner "Versión guardada — puede no ser la vigente". Nunca un documento en blanco pre-auth.
Skeleton de lecturaBloques de párrafo, no filas de lista. La versión también es skeleton — no se inventa mientras carga.
Sin estado vacíoUn doc legal publicado nunca está "vacío": solo hay con-datos, cargando y error.
Verbatim o nada. El contenido viene del vault 05-documentos-publicos/ firmado por legal. La app no edita, resume ni reordena. Si el fetch trae una versión distinta a la cacheada, se muestra la nueva y se actualiza la línea de vigencia — el usuario siempre sabe qué versión está leyendo y desde cuándo rige.
Dark · 360dp
Dark · TyC
9:41
Términos y condiciones
v3.2 · A partir de su publicación en la Plataforma.
§4Riesgos de los criptoactivos
Los criptoactivos no son moneda de curso legal en Colombia, no cuentan con el respaldo del Banco de la República ni de ninguna autoridad estatal, y su valor puede fluctuar significativamente en periodos cortos de tiempo.
MICAPI S.A.S. actúa como contraparte directa en las operaciones de compra y venta, y no garantiza rentabilidad ni valorización alguna…
[ verbatim del vault ]
Notas de implementación · Flutter
Render markdown + caché versionada
Endpoint
GET /v1/legal/{doc} con doc ∈ {terms, privacy} → {version, effective_date, markdown}. ETag para revalidación barata.
Render
flutter_markdown con stylesheet propio del visor (body 14/1.7, h2 15/700 con número de sección). Links internos del doc → anclas de sección; externos → navegador.
Pre-auth
Ruta pública — sin guard de sesión. A1, registro, Perfil y Privacidad apuntan aquí con context.push('/legal/terms').
Caché
hive por doc: {version, effective_date, markdown, fetched_at}. Offline → render cacheado + banner. El TOC se genera parseando los headings — no viaja aparte.
Accesibilidad
Texto seleccionable y compatible con el escalado de fuente del sistema (hasta 200% sin pérdida). El TOC es navegable con TalkBack como lista de links.
Registro · reuso
En el flujo de registro, este mismo widget se abre como sheet a pantalla completa desde el checkbox de aceptación — el checkbox queda fuera del visor.