Saltar a contenido

US-004 — Verificación de número por enlace

Detalle de la historia

Historia

Como cliente registrado, quiero verificar un número de teléfono nuevo haciendo clic en un enlace que llegue a mi correo, para evitar que otra persona use mi identidad o mi cuenta sin mi autorización.

Persona de usuario

Aplica a todo cliente que haya registrado un número nuevo (sea en el primer registro por WhatsApp o al agregar un número adicional a una cuenta existente).

Contexto de negocio

WhatsApp, por sí solo, no garantiza que quien escribe desde un número sea su titular legítimo: alguien con acceso temporal a un teléfono podría contactar a FleteChat, darse de alta con datos de otra persona y pedirle acciones en nombre del titular. La verificación por correo cierra ese vector: quien controla el correo registrado es quien confirma que el número es suyo.

El mecanismo es un enlace único enviado al correo del cliente. Un solo clic marca el número como verificado y el enlace deja de servir. Simple para el cliente, robusto contra reuso.

Diálogo de referencia

Confirmación tras el clic

Agente (en WhatsApp, tras el clic en el enlace): Su número quedó verificado. Ya puedo ayudarle a completar operaciones sin restricciones.

Cliente pide reenvío del enlace

Cliente: No me llegó el correo de verificación.

Agente: Acabo de reenviarlo a maria@ejemplo.com. Le pido revisar también la carpeta de correo no deseado; el enlace llega en un correo con el asunto "Verificación de número — FleteChat".

Criterios de aceptación

Envío del enlace

  1. Al registrar un número nuevo (primera alta, cambio de teléfono activo del titular, o asociación de un colaborador), FleteChat envía un correo al correo registrado del titular con un enlace de verificación.
  2. El correo indica con claridad qué número se está verificando, por qué se le envía ese correo y qué hacer si no fue el cliente quien lo solicitó.
  3. El correo declara explícitamente el rol propuesto del número en la cuenta — "teléfono activo del titular", "teléfono adicional como titular" o "colaborador" — y el nombre declarado para ese contacto. Si el rol o el nombre no son los esperados, el correo incluye una opción para corregir antes de confirmar (lo que invalida el enlace y emite uno nuevo con los datos correctos).
  4. El asunto y el remitente del correo son consistentes con la marca y el estilo de FleteChat.

Validez del enlace

  1. El enlace es de un solo uso: una vez utilizado, no sirve para verificar nuevamente ni para ninguna otra acción.
  2. El enlace tiene una vigencia limitada (ver premisas); al expirar, el cliente puede pedir un enlace nuevo.
  3. Si el cliente hace clic en un enlace ya usado o expirado, el sistema informa con lenguaje claro y ofrece reenviar uno nuevo.

Confirmación en el chat

  1. Al hacer clic exitoso, el número queda marcado como verificado. Si la operación era un cambio de teléfono activo del titular o de un colaborador, el número anterior pasa a estado histórico y el nuevo queda como activo en el mismo evento (ver PR-232 en US-003). FleteChat notifica al contacto por WhatsApp que la verificación se completó.
  2. Cuando el evento es asociación de un colaborador, además de la confirmación al titular, FleteChat envía al colaborador una notificación de la confirmación, con opción de declinar la asociación; si el colaborador declina, la asociación se deshace y queda en audit log (ver PR-213 en US-003).
  3. Desde el momento de la verificación, el número puede usarse sin restricciones: cotizar, aprobar cotizaciones, completar embarques.

Reenvío del enlace

  1. El cliente puede pedir desde WhatsApp un reenvío del enlace en cualquier momento, mientras no haya sido verificado.
  2. FleteChat limita los reenvíos a un número razonable (ver premisas) para evitar abuso, y lo declara al cliente si se alcanza el límite.

Edge cases

  • Cliente no recibe el correo. FleteChat ofrece reenviarlo, sugiere revisar la carpeta de correo no deseado y, si el cliente insiste en no recibirlo, ofrece handoff para verificar la dirección de correo o revisar rebotes.
  • Cliente hace clic dos veces. El primer clic verifica; el segundo muestra un mensaje claro de enlace ya usado.
  • Cliente hace clic después de que el enlace expiró. El sistema muestra mensaje de expiración y ofrece un botón o instrucción para solicitar uno nuevo.
  • Cliente escribe al mismo tiempo que hace clic. El sistema procesa el clic; FleteChat detecta que el número acaba de verificarse y ajusta su respuesta en consecuencia.
  • Cliente hace clic desde un dispositivo distinto al que usa WhatsApp. El sistema no requiere que el clic venga de un dispositivo específico; la verificación es independiente del dispositivo.

Tamaño, prioridad y tipo

  • Tamaño: S
  • Prioridad: P0 — sin verificación, el registro por WhatsApp queda expuesto a suplantación.
  • Tipo: feature

Premisas

La historia está redactada bajo las siguientes premisas. Si alguna cambia, la historia debe revisarse y ajustarse en consecuencia. Todas deben ser confirmadas por el cliente antes de cerrar la historia.

  • PR-027 — Vigencia del enlace. El enlace de verificación es válido por 2 horas desde su emisión (valor configurable desde parámetros globales, ver US-046). Pasado ese plazo, el cliente debe solicitar uno nuevo; el reenvío está permitido sin fricción dentro del tope de PR-028.
  • PR-028 — Reenvíos máximos. El cliente puede pedir hasta 5 reenvíos del enlace por cada número a verificar en una ventana de 24 horas. Cada reenvío invalida los enlaces emitidos previamente. Superado el tope, FleteChat ofrece handoff a un asesor. Valor del tope y de la ventana configurables.
  • PR-029 — Canal único de verificación. La verificación de un número se hace solo por correo electrónico; no se ofrecen canales alternativos (SMS, llamada) en v1.0.
  • PR-233 — Política de reasignación de número entre clientes. Definida en US-003. El número que fue activo del cliente A y se desactivó puede ser registrado por el cliente B; la verificación por correo de B (esta historia) es la única garantía. No hay cooldown ni bloqueo. El flujo de envío del enlace no se altera por el hecho de que el número haya estado asociado a otra cuenta antes.

Refinamiento y Definition of Ready

Notas

Fecha Participantes Acuerdo / Nota
2026-04-17 Kaeus Versión inicial.
2026-04-20 Kaeus PR-027 reducida de 24h a 2h (configurable). El enlace de verificación es sensible (fija el dueño de un número): una ventana larga ampliaba la exposición frente a interceptación. El reenvío sin fricción dentro del tope de PR-028 compensa la fricción. PR-028 reescrita para incorporar invalidación en cascada y ventana de conteo.
2026-05-27 Kaeus v2.0 — Refinamientos derivados del feedback de Zeverium consolidado en docs/spec/customer-feedback/impact-analysis-2026-05.md. AC 3 nuevo (correo declara rol propuesto + nombre + opción de corregir antes de confirmar; comentarios #2 y #5 del 2026-05-26). AC 8 ampliado para cubrir cambio de teléfono activo con transición automática a histórico (decisión 2026-05-26 sobre traslado de historial). AC 9 nuevo: notificación al colaborador de la confirmación con opción de declinar (comentario #5). Premisa PR-233 incorporada por referencia (política de reasignación libre, §7.1=c respondida 2026-05-27).
2026-05-27 Kaeus v2.0 (sweep PR-245) — Aplicación de PR-245 (definida en US-035): "handoff humano" pasa a "handoff a un asesor" en PR-028 (superado el tope de reenvíos). Filename y title se mantienen.

Checklist

  • ✅ Historia escrita en formato Como / Quiero / Para
  • ✅ Persona de usuario identificada
  • ✅ Contexto de negocio documentado
  • ✅ Criterios de aceptación observables y pass/fail
  • ✅ Edge cases relevantes listados
  • ✅ Tamaño y prioridad asignados
  • ⬜ Premisas PR-027 a PR-029 y PR-233 (referenciada) confirmadas por el cliente
  • ⬜ Reglas de negocio aplicables aprobadas
  • ⬜ Requerimientos funcionales aplicables aprobados
  • ⬜ Historia aprobada formalmente por el cliente