RF30: Usuario invierte en broker
Descripción
Como usuario autenticado, quiero ser dirigido a un broker asociado para invertir en un instrumento que me interesa, para ejecutar la inversión a través de un intermediario regulado.
Finnova no ejecuta ni custodia la inversión en este flujo: redirige al broker externo (vía deep link/OAuth) y registra la intención. La ejecución, KYC y custodia son responsabilidad del broker regulado.
| Campo | Valor |
|---|---|
| Módulo | Investments Module |
| Actor | Usuario autenticado |
| Endpoint | POST /investments/broker-intent (registra intención + devuelve enlace) |
| Precondiciones | Sesión activa; instrumento seleccionado |
| Prioridad | Baja (post-MVP) |
| Etapa | MBI 3 |
| Requisitos relacionados | RF29, RF31 |
Reglas de negocio
- RN-30.1 — Finnova solo registra la intención y redirige; la operación se ejecuta en el broker.
- RN-30.2 — Se muestra un descargo de responsabilidad y se informa que se sale de Finnova hacia un tercero.
- RN-30.3 — No se transmiten al broker más datos personales que los estrictamente necesarios y consentidos.
- RN-30.4 — Se registra la intención para seguimiento y métricas, sin asumir que la inversión se concretó.
Validaciones de entrada
| Campo | Reglas | Mensaje de error |
|---|---|---|
instrumentId | Obligatorio. Instrumento válido del catálogo. | "Selecciona un instrumento válido." |
brokerId | Obligatorio. Broker asociado válido. | "Selecciona un broker válido." |
consent | Obligatorio. Acepta salir hacia el tercero. | "Debes aceptar continuar con el broker." |
Criterios de aceptación
Escenario 1: Redirección al broker exitosa
Dado que selecciono un instrumento y un broker asociado y acepto el descargo,
Cuando confirmo,
Entonces el sistema registra mi intención de inversión,
Y me redirige al broker (deep link/OAuth) con 200/201,
Y se me informa que la operación se completa fuera de Finnova.
Escenario 2: Instrumento o broker inválidos
Dado que envío un instrumento o broker no válido,
Cuando el backend valida,
Entonces responde 400 con el mensaje correspondiente.
Escenario 3: Consentimiento no otorgado
Dado que no acepto continuar hacia el tercero, Cuando intento confirmar, Entonces la acción se bloquea con "Debes aceptar continuar con el broker".
Escenario 4: Minimización de datos (privacidad)
Dado que se redirige al broker, Cuando se construye el enlace/payload, Entonces solo se comparten los datos mínimos consentidos.
Criterios no funcionales
- La intención se registra de forma idempotente.
- Comunicación TLS 1.2+; el broker es responsable de la ejecución y KYC.