Hoy el consultorio le dice al doctor «tu identidad se está verificando». No es cierto: lo único que se comprueba es que un número de MPPS exista en SACS. Nadie confirma que la persona detrás de la cuenta sea la dueña de esa licencia. Esta propuesta diseña la verificación que falta —documento y biometría— como el primer acto de confianza del onboarding: un rito con foco, una card que muta sola y un permiso que se abre.
El SacsVerificationBanner aparece sobre la lista de setup mientras
isVerified sea falso. Su copy habla de identidad; su comprobación habla de un número.
La brecha entre las dos frases es exactamente el agujero que cierra esta propuesta.
Un banner ámbar, un booleano, una sola historia. Los colores no son de la paleta de Amedi:
son #FFFBEB y #78350F, heredados de un default.
SACS responde «ese MPPS existe y el nombre calza».
Nadie preguntó nunca «¿y tú eres esa persona?»
Un médico podría registrarse hoy con la licencia de un colega y pasar la verificación completa. En una plataforma donde un paciente elige a quién le confía su salud, ese hueco no es un detalle técnico: es la promesa central del producto.
SACS y MetaMap comprueban cosas distintas, tardan tiempos distintos y piden cosas distintas al
doctor. Meterlas en el mismo isVerified obliga a la interfaz a mentir en una de las dos.
| licencia · SACS | identidad · MetaMap | |
|---|---|---|
| qué prueba | el MPPS existe y es tuyo | tú eres quien dices ser |
| qué pide | nada, ya lo escribió al registrarse | su cédula y su cara |
| cuánto tarda | ~6 horas | ~2 minutos |
| quién controla | nadie, es una cola externa | el doctor, por completo |
| si falla | se reintenta solo, luego revisión manual | puede reintentar al momento |
| en la interfaz | un estado que informa | una card que invita a actuar |
La consecuencia de diseño: la licencia se reporta, la identidad se ofrece. Nunca comparten componente.
Vive en el Setup Hub, sobre la lista de tareas. Siempre la misma anatomía —marca, título, subtítulo, datos, acciones— para que el doctor nunca tenga que reaprender dónde mirar. Lo único que cambia es el tono.
Falta el estado 07 —en proceso, mientras el modal de MetaMap está abierto— porque literalmente no se ve: la card queda detrás del overlay del proveedor.
El SDK de MetaMap abre su propio modal, con su cámara y su marca — eso no lo controlamos. Lo que sí es nuestro es la antesala, y es donde se gana o se pierde la confianza. Sale del hub a pantalla completa, sobre noche, sin navegación ni distracciones: una sola pregunta a la vez.
Esto es lo que nos deja poner tu nombre frente a un paciente y responder por él. Lo haces una sola vez.
Dos minutos · funciona igual desde el teléfono
«Tengo mi cédula a mano» en vez de «Continuar»: el botón dice qué se necesita para que el siguiente paso no falle. Ahora no siempre existe — el rito bloquea publicar el perfil, no usar el consultorio.
Cuando el modal de MetaMap cierra, el doctor vuelve al hub y sigue configurando su perfil. La verificación se resuelve por detrás: siete chequeos independientes que llegan como eventos en unos quince segundos. No le pedimos su atención para algo que no requiere su atención.
Tu perfil todavía no es visible. Se publica cuando termines de verificarte.
Llega el veredicto mientras el doctor está en otra cosa. Nada lo interrumpe. La card muta donde está —de gris que respira a menta que asienta, con su nombre real leído del documento— y abajo, el botón que llevaba todo el onboarding apagado se enciende.
El candado desaparece y el botón toma el petroleo de las acciones reales. Es la única transición del onboarding donde algo se desbloquea en lugar de solo completarse — por eso es el momento, y por eso no necesita adornos.
El sello aparece también del lado del paciente. Verificar no es una tarea administrativa que el doctor hace para Amedi: es lo que lo distingue frente a quien lo está eligiendo.
El proveedor nos devuelve el nombre y el número leídos de la cédula. Casi siempre difieren de lo que el doctor escribió al registrarse —acentos, un segundo nombre, el orden de los apellidos—. Tratar todas las diferencias igual sería absurdo: una es ortografía, otra es otra persona.
Se verifica igual: la identidad ya está probada. Lo único abierto es cómo quiere aparecer.
Cae en la cola de revisión que ya existe en el admin. La interfaz del doctor no acusa ni insinúa fraude: describe lo que pasa y quién lo resuelve.
Un flujo de verificación pide cosas incómodas —la cédula, la cara— y cualquier ambigüedad se lee como riesgo. Las etiquetas nombran la consecuencia, nunca la mecánica: «Empezar» y no «Subir documento», «Tengo mi cédula a mano» y no «Continuar».
La menta es el único color que llega a AA sobre noche con texto oscuro encima. La salida siempre está presente y siempre es discreta.
El petroleo es la única acción primaria. El bloqueado conserva su candado y su etiqueta: se ve qué se gana, no solo que está apagado.
--duration-base con --ease-out: se nota que algo cambió sin robar la atención de lo que el doctor estaba haciendo.prefers-reduced-motion, y en su lugar el estado se comunica solo con color y copy.--menta-deep: este flujo se puede completar entero con teclado.Se corrió una verificación completa contra la cuenta real de Amedi y llegaron 10 eventos firmados. De ahí salieron tres certezas que normalmente costarían semanas de descubrir: el plan gratuito alcanza; el veredicto viene dentro del webhook, sin necesidad de llamar de vuelta a la API; y los datos del documento llegan inline — que es lo único que hace posible el cruce de nombres de la sección 07.
x-signature = HMAC-SHA256(rawBody) en hex, sin prefijo. El proveedor no lo documenta: se descubrió probando, y se confirmó en los 10 eventos.provider y externalId en DoctorVerification, para que licencia e identidad convivan en el ciclo de vida que ya existe — reintentos, revisión manual, rechazo.Doctor.isVerified pasa a ser un gate derivado: verde solo cuando ambos proveedores están en verde. Hoy es un booleano suelto que nadie sabe qué significa.metadata con el doctorId. Sin ese metadata no hay forma de saber de quién es la verificación — se comprobó en el spike.