Reemplace la contraseña de un solo uso por SMS. Haga de una selfie el segundo factor.
Mejore los flujos sensibles con una coincidencia facial de menos de 2 segundos con el retrato registrado. Resistente al phishing. A prueba de intercambio de SIM. $0.10 por autenticación. 500 verificaciones gratuitas cada mes.
Con la confianza de más de 2.000 organizaciones en todo el mundo.
Resistente al phishing · A prueba de intercambio de SIM
Sin código para suplantar. Sin SIM para intercambiar.
El segundo factor es el rostro del usuario, comparado 1:1 con el retrato
que registró al inscribirse. La prueba de vida bloquea el ataque de impresión / reproducción / máscara /
Red Generativa Antagónica (GAN) en el mismo fotograma. Veredicto en menos de 2 segundos
en Android de nivel básico. $0.10 por autenticación. 500 verificaciones
gratuitas cada mes.
Cómo funciona
Desde el registro hasta el usuario verificado en cuatro pasos.
Paso 01
Crear el flujo de trabajo
Elija las comprobaciones que desee: identificación, prueba de vida, coincidencia facial, sanciones, dirección, edad, teléfono, correo electrónico, preguntas personalizadas. Arrástrelas a un flujo en el panel de control o publique el mismo flujo en nuestra API. Ramifique en condiciones, realice pruebas A/B, no se requiere código.
Paso 02
Integrar
Incorpore de forma nativa con nuestro SDK para Web, iOS, Android, React Native o Flutter. Redirija a una página alojada. O simplemente envíe a su usuario un enlace, por correo electrónico, SMS, WhatsApp, en cualquier lugar. Elija lo que se adapte a su pila.
Paso 03
El usuario pasa por el flujo
Didit aloja la cámara, las señales de iluminación, la transferencia móvil y la accesibilidad. Mientras el usuario está en el flujo, puntuamos más de 200 señales de fraude en tiempo real y verificamos cada campo con fuentes de datos autorizadas. Resultado en menos de dos segundos.
Paso 04
Usted recibe los resultados
Los webhooks firmados en tiempo real mantienen su base de datos sincronizada en el momento en que un usuario es aprobado, rechazado o enviado a revisión. Consulte la API bajo demanda. O abra la consola para inspeccionar cada sesión, cada señal y gestionar los casos a su manera.
Sustituto para SMS OTP · Vinculado al usuario, no a un código
Seis capacidades. $0.10 por autenticación.
Un flujo de trabajo adaptativo, un veredicto firmado, la misma forma de devolución de llamada que su flujo OAuth existente. Sin dependencia del operador, sin superficie SS7, sin exposición a intercambio de SIM.
Abra una llamada a la API de Sesiones, redirija al usuario a la interfaz de usuario alojada, capture un fotograma pasivo. Prueba de vida + Coincidencia facial 1:1 + el webhook firmado se devuelve en los mismos dos segundos. Sin instalación de aplicación, sin SDK, sin ruta de operador.
Interfaz de usuario alojada en una URL de sesión única, no se requiere aplicación.
02 · Coincidencia facial 1:1
Coincide la selfie en vivo con el retrato registrado.
El retrato capturado durante la sesión KYC original del usuario es la plantilla. Cada autenticación posterior compara la nueva selfie con ella y devuelve una similarity_score (0-1). Ajuste el umbral de aprobación automática por flujo de trabajo. $0.05 por llamada de Coincidencia facial independiente; $0.10 cuando se combina con Prueba de vida.
Compara la selfie en vivo con el retrato registrado.
$0.05 / match
Inscrito
Similitud
0.96
Coincidir
En vivo
Vinculado al usuario, no a un código.Ajustar umbral por flujo de trabajo
03 · Derrota la superficie de ataque de SMS
Intercambio de SIM. Phishing de OTP. Smishing. SS7. Todo bloqueado.
Los cuatro ataques sobre los que advierten el Buró Federal de Investigaciones (FBI) de los Estados Unidos y el Centro Nacional de Ciberseguridad (NCSC) del Reino Unido para las contraseñas de un solo uso por SMS —intercambio de SIM, phishing de OTP, kits de smishing, intercepción de operador—, todos derrotan a los SMS. Ninguno de ellos funciona contra una selfie en vivo comparada con el retrato registrado. La Alianza FIDO enumera el reconocimiento facial en el dispositivo como resistente al phishing.
FIDO Alliance clasifica el "face-on-device" como resistente al phishing.
04 · Autenticación reforzada donde importa
Activar solo en las superficies que lo justifiquen.
Inicio de sesión desde un nuevo dispositivo, transferencia por encima de su umbral de riesgo, cambio de contraseña/configuración, recuperación de cuenta. Combínelo con el Análisis de Dispositivo + IP para que una nueva autenticación en un dispositivo completamente nuevo + un Protocolo de Internet (IP) completamente nuevo se intensifique automáticamente. Mismo flujo, disparadores más inteligentes.
Inicio de sesión desde un nuevo dispositivoForzar la reautenticación antes de la concesión
Transferencia de gran valorPor encima de su umbral de riesgo
Cambio de contraseña / configuraciónBloquear el relleno de credenciales
Recuperación de cuentaDetener la toma de control por intercambio de SIM
Adaptativo: solo cuando el riesgo lo justifique.~2s por verificación
05 · Una carga útil firmada
Reemplazo directo para su devolución de llamada OTP existente.
El webhook entrega el estado, similarity_score, método y el encabezado X-Signature-V2 para la verificación del Código de Autenticación de Mensajes Basado en Hash (HMAC) SHA-256. Misma forma de devolución de llamada, mismo patrón de redirección. La mayoría de los equipos cambian los SMS por el reconocimiento facial en un fin de semana.
Reemplazo directo para su devolución de llamada OTP existente.
06 · Más barato que los SMS
$0.10 per auth, no carrier fees, no minimums.
El costo de un SMS de contraseña de un solo uso de Nivel 1 en los Estados Unidos oscila entre $0.05 y $0.30 por envío, dependiendo del operador, y usted paga incluso si el usuario nunca recibe el código. La autenticación biométrica de Didit cuesta $0.10 fijos con 500 verificaciones gratuitas cada mes. Sin dependencia del operador, sin tarifa por país, sin mínimos de contrato.
Úselo solo cuando sea propietario del proceso de captura. Flujos del navegador = sesión alojada.documentación →
Integración lista para el agente
Reemplace la OTP por SMS en una sola solicitud.
Pegue en Claude Code, Cursor, Codex, Devin, Aider o Replit Agent. Rellene su pila. El agente aprovisiona Didit, construye el flujo de trabajo de autenticación biométrica, intercambia su devolución de llamada OTP existente y se envía en un fin de semana.
didit-integration-prompt.md
You are integrating Didit's Biometric 2FA into <my_stack>. Replace SMS one-time-password (OTP) on sensitive flows — login from a new device, large-value transfer, settings change, account recovery — with a sub-2-second face match against the user's enrolled portrait. Cheaper than SMS. Phishing-resistant. SIM-swap-proof.
1. Enrol the user's portrait ONCE at sign-up via the standard Know Your Customer (KYC) session.
2. On every sensitive action, open a Biometric Authentication session that runs Passive Liveness + Face Match 1:1 against the stored portrait. Verdict in sub-2-seconds.
Pricing (public):
- Biometric Authentication: $0.10 per authentication (Sessions API)
- Standalone Face Match 1:1: $0.05 per match (server-to-server)
- First 500 verifications free every month, forever
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60s, no card).
- Webhook endpoint with Hash-based Message Authentication Code (HMAC) SHA-256 verification using the X-Signature-V2 header.
- The user has previously enrolled — either via a full KYC session (recommended; the portrait is stored automatically and never leaves Didit) or via a portrait you supply on each re-auth.
- A workflow_id from the Workflow Builder. The workflow MUST contain LIVENESS, and the session must be opened with workflow_type = "biometric_authentication" (or use a workflow that has FACE_MATCH and pass a portrait_image at session creation).
STEP 1 — Enrolment (one-time, at user sign-up)
Run a standard KYC session at sign-up. Didit stores the portrait (the face captured during the liveness step) as the user's enrolled template, bound to vendor_data.
POST https://verification.didit.me/v3/session/
Body:
{
"workflow_id": "<your KYC workflow>",
"vendor_data": "<your user id>"
}
No additional code — once the user passes KYC, their enrolled portrait is ready for every future re-auth.
STEP 2 — Re-authentication (on every sensitive action)
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<your biometric_authentication workflow>",
"workflow_type": "biometric_authentication",
"vendor_data": "<the same user id used at enrolment>",
"callback": "https://<your-app>/2fa/callback",
"metadata": {
"reason": "<login_new_device | high_value_txn | settings_change | account_recovery>",
"amount": "<optional, for large-value transfers>"
},
"portrait_image": "<base64 JPEG of the user's enrolment selfie, ≤ 1 MB — REQUIRED when the workflow has FACE_MATCH active; OMIT for liveness-only mode>"
}
Response: 201 Created with the hosted session_url. Redirect the user to it. The hosted UI:
- Opens the front camera
- Captures one passive frame
- Runs Liveness + Face Match 1:1 against the user's enrolled portrait
- Returns the verdict in sub-2-seconds
STEP 3 — Read the signed verdict on the webhook
Body (excerpted for a passing re-auth):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": { "status": "Approved", "method": "PASSIVE", "score": 96 },
"face": {
"status": "Approved",
"similarity_score": 0.96
}
}
Verify X-Signature-V2 BEFORE trusting the body — HMAC SHA-256 of the raw bytes with your webhook secret.
Session status enum (exact case): Approved | Declined | In Review | Resubmitted | Expired | Not Finished | Kyc Expired | Abandoned.
Branch your application:
Approved → execute the action (sign in, release the transfer, save settings).
Declined → block the action, re-prompt with a higher-friction recovery path (support contact / KYC re-do).
In Review → hold; route to your operations queue.
Not Finished → user abandoned the capture; safe to re-prompt or fall back.
STEP 4 — Alternate path (server-to-server, when you already have the selfie)
If you already captured the selfie locally (native mobile SDK, in-app camera):
POST https://verification.didit.me/v3/face-match/
Headers:
x-api-key: <your api key>
Body (multipart/form-data):
image_a <the live selfie>
image_b <the enrolled portrait>
Response: similarity_score (0-1), status (Approved | Declined | In Review).
Use the standalone path only when you trust your client-side capture pipeline. For browser flows or any surface where the SDK is not embedded, always prefer the hosted session — Didit's liveness check is harder to defeat than a raw camera grab.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
- Always verify X-Signature-V2 on every payload.
CONSTRAINTS
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: LIVENESS, FACE_MATCH, ID_VERIFICATION, AML, IP_ANALYSIS, AGE_ESTIMATION.
- Method enum is UPPERCASE: PASSIVE, FLASHING, ACTIVE_3D.
- Auth header is x-api-key (lowercase, hyphenated).
- Webhook signature header is X-Signature-V2 (NOT X-Signature).
- Status casing matches exactly: Approved, Declined, In Review, Expired, Not Finished, Resubmitted, Kyc Expired, Abandoned.
- The biometric template is irreversible (a one-way hash) and stored on Didit's infrastructure. You never receive the raw template. Standard data-subject-deletion rules apply.
PRO TIPS
- Pair Biometric 2FA with Device & IP Analysis (bundled into the 200+ fraud-signal stack). A re-auth that originates from a brand-new device + a brand-new IP should always step up to face.
- For the strongest possible surface, swap method PASSIVE for ACTIVE_3D — a short motion challenge — on transfers above your operational risk threshold.
Read the docs:
- https://docs.didit.me/core-technology/biometric-auth/overview
- https://docs.didit.me/sessions-api/create-session
- https://docs.didit.me/integration/webhooks
Start free at https://business.didit.me — sandbox key in 60 seconds, 500 verifications free every month, no credit card.
¿Necesita más contexto? Consulte la documentación completa del módulo.docs.didit.me →
Cumplimiento por diseño
Abre un nuevo país con un clic. Nosotros hacemos el trabajo duro.
Abrimos las filiales locales, aseguramos las licencias, realizamos las pruebas de penetración, obtenemos las certificaciones y nos alineamos con cada nueva regulación. Para enviar verificaciones en un nuevo país, activa un interruptor. Más de 220 países en vivo, auditados y probados trimestralmente — el único proveedor de identidad que un gobierno de un estado miembro de la UE ha calificado formalmente como más seguro que la verificación en persona.
Por autenticación, tarifa plana. La OTP por SMS varía de $0.05 a $0.30 en EE. UU.
<0s
Reautenticación de extremo a extremo en Android de nivel básico: desde la captura hasta el webhook firmado.
0
Dependencias del operador, superficie de intercambio de SIM o vectores de ataque SS7.
0
Verificaciones gratuitas cada mes, para siempre.
Tres niveles, una lista de precios
Empiece gratis. Pague por uso. Escale a Enterprise.
500 verificaciones gratuitas cada mes, para siempre. Pago por uso para producción. Contratos personalizados, residencia de datos y SLAs (Acuerdos de Nivel de Servicio) en Enterprise.
Gratis
Gratis
$0 / mes. No se requiere tarjeta de crédito.
Paquete KYC gratuito (Verificación de ID + Prueba de vida pasiva + Coincidencia facial + Análisis de dispositivo e IP) — 500 / mes, cada mes
Empiece gratis → pague solo cuando se ejecute una verificación → desbloquee Enterprise para un contrato personalizado, SLA o residencia de datos.
FAQ
Preguntas frecuentes
¿Qué es Didit?+
Didit es infraestructura para la identidad y el fraude — la plataforma que deseábamos que existiera cuando construíamos productos nosotros mismos: abierta, flexible y amigable para desarrolladores, para que funcione como una parte real de tu stack en lugar de una caja negra que integras alrededor.
Una API cubre la verificación de personas (KYC, conoce a tu cliente), la verificación de empresas (KYB, conoce a tu negocio), el cribado de carteras de criptomonedas (KYT, conoce tu transacción) y la supervisión de transacciones en tiempo real — en un stack construido para ser:
Rápido — p99 de menos de 2 segundos en cada sesión
Fiable — en producción con más de 1.500 empresas en más de 220 países
Seguro — SOC 2 Tipo 1, ISO 27001, nativo de GDPR, y formalmente atestiguado por el regulador financiero de España como más seguro que verificar a alguien en persona
La huella subyacente: más de 14.000 tipos de documentos en más de 48 idiomas, más de 1.000 fuentes de datos y más de 200 señales de fraude en cada sesión. La infraestructura de Didit aprende dinámicamente de cada sesión y mejora cada día.
¿Qué es la 2FA biométrica?+
Autenticación de segundo factor utilizando el rostro del usuario, no un código enviado a través de una red. El primer factor es lo que el usuario sabe (contraseña, clave de acceso, enlace mágico). El segundo factor es lo que el usuario es — una selfie en vivo comparada 1:1 con un retrato que el usuario registró previamente.
Se ubica en el mismo lugar que la contraseña de un solo uso (OTP) por SMS en el flujo de tu aplicación, pero con un perfil de costo, seguridad y conversión diferente.
¿Por qué se considera débil la contraseña de un solo uso por SMS?+
Cuatro clases de ataque bien documentadas la superan. La Oficina Federal de Investigaciones (FBI) de EE. UU. y el Centro Nacional de Seguridad Cibernética (NCSC) del Reino Unido han publicado guías que alejan a las organizaciones del SMS para flujos sensibles.
Intercambio de SIM. El atacante convence al operador para que transfiera el número del usuario a una nueva SIM. Todos los códigos ahora van al atacante.
Phishing de OTP. El atacante actúa como proxy del sitio legítimo, captura el código mientras el usuario lo escribe y lo reproduce antes de que expire.
Kits de Smishing. Kits preconstruidos ejecutan miles de textos falsos de entrega/banco que capturan códigos a escala.
Intercepción del Sistema de Señalización 7 (SS7). Adversarios con acceso al operador pueden leer pasivamente los códigos de la red.
¿Qué tan rápida es la verificación para mi usuario final?+
El flujo completo normalmente toma menos de 30 segundos de principio a fin — tomar la identificación, escanear el documento, tomar la selfie, listo. Eso es lo más rápido del mercado. Los proveedores de KYC heredados suelen tardar más de 90 segundos para el mismo flujo.
En el backend, Didit devuelve el resultado en menos de dos segundos en p99, medido desde el momento en que el usuario termina la selfie hasta el momento en que se activa tu webhook. La captura móvil está optimizada para teléfonos lentos y redes lentas: compresión progresiva de imágenes, carga diferida del kit de desarrollo de software y una transferencia con un solo toque de escritorio a teléfono mediante código QR si el usuario comienza en la web.
¿Cómo se "registra" realmente el rostro del usuario?+
La mayoría de los equipos se registran durante la sesión original de Know Your Customer (KYC) del usuario. El retrato capturado por el paso de vivacidad se almacena vinculado a tu vendor_data y se utiliza como plantilla para cada reautenticación posterior.
Si no ejecutas KYC al registrarte, puedes ejecutar una sesión de registro única contra un flujo de trabajo de Didit que contenga solo LIVENESS + FACE_MATCH. Cualquiera de los dos caminos cuesta $0.10 una vez, y la plantilla resultante es reutilizable para cada autenticación futura.
¿Qué sucede si un usuario falla, abandona o expira?+
Cada sesión aterriza en uno de siete estados claros, para que tu código siempre sepa qué hacer:
Approved — todas las verificaciones pasaron. Haz que el usuario avance.
Declined — una o más verificaciones fallaron. Puedes permitir que el usuario vuelva a enviar el paso fallido específico (por ejemplo, volver a tomar la selfie) sin volver a ejecutar todo el flujo.
In Review — marcado para revisión de cumplimiento. Abre el caso en la consola, ve todas las señales, decide aprobar o rechazar.
In Progress — el usuario está a mitad del flujo.
Not Started — enlace enviado, el usuario aún no lo ha abierto. Envía un recordatorio si permanece demasiado tiempo.
Abandoned — el usuario abrió el enlace pero no terminó a tiempo. Vuelve a interactuar o expira.
Expired — el enlace de la sesión caducó. Crea una nueva sesión.
Un webhook firmado se activa en cada cambio de estado, para que tu base de datos siempre esté sincronizada. Las sesiones abandonadas y rechazadas son gratuitas.
¿Dónde residen mis datos de cliente y cómo están protegidos?+
Los datos de producción se procesan y almacenan en la Unión Europea por defecto, en Amazon Web Services. Los contratos empresariales pueden solicitar regiones alternativas para jurisdicciones cuyos reguladores lo requieran.
Cifrado en todas partes. AES-256 en reposo en cada base de datos, almacén de objetos y copia de seguridad. Transport Layer Security 1.3 en tránsito en cada llamada a la API, webhook y sesión de la Consola de Negocios. Los datos biométricos se cifran bajo una Clave Maestra de Cliente separada.
La retención es tu control. La retención predeterminada es indefinida (ilimitada) a menos que configures una más corta — entre 30 días y 10 años por aplicación — y puedes eliminar cualquier sesión individual en cualquier momento desde el panel de control o la API.
Certificaciones: SOC 2 Tipo 1 (auditoría Tipo 2 en curso), ISO/IEC 27001:2022, iBeta Nivel 1 PAD, y una certificación pública del Tesoro / SEPBLAC / CNMV de España de que la verificación de identidad remota de Didit es más segura que verificar a alguien en persona. Informe completo en /security-compliance.
¿Didit cumple con la normativa de mi sector?+
Didit cumple por defecto con los reguladores importantes para la infraestructura de identidad:
GDPR + UK GDPR — división controlador/procesador, Acuerdo de Procesamiento de Datos completo publicado, autoridad supervisora principal nombrada (AEPD de España).
AMLD6 + Reglamento Único AML de la UE — más de 1.300 listas de sanciones, personas políticamente expuestas y medios adversos examinadas en tiempo real.
eIDAS 2.0 — alineado con la Cartera de Identidad Digital de la UE; listo para identidad reutilizable.
MiCA (Mercados de Criptoactivos) — listo para rampas de acceso a criptomonedas, intercambios y custodios.
DORA — Ley de Resiliencia Operativa Digital, resiliencia operativa de servicios financieros de la UE.
BIPA, CUBI, Washington HB 1493, CCPA / CPRA — privacidad biométrica de EE. UU. (Illinois, Texas, Washington) y privacidad del consumidor de California.
Ley de Seguridad en Línea del Reino Unido — obligaciones de control de edad y seguridad infantil.
Regla de Viaje FATF — datos del originador y beneficiario en transferencias de criptomonedas, interoperable con IVMS-101.
Memorándum detallado, cada certificado, cada carta del regulador: /security-compliance.
¿Qué tan rápido puedo integrar y empezar a verificar usuarios?+
60 segundos para una cuenta sandbox en business.didit.me — sin tarjeta de crédito.
5 minutos para una verificación funcional a través de Claude Code, Cursor o cualquier agente de codificación mediante nuestro servidor del Protocolo de Contexto del Modelo (MCP).
Un fin de semana para una integración lista para producción con verificación de webhook firmado, reintentos y un flujo de remediación cuando un usuario es rechazado.
Tres rutas de integración — elige la que mejor se adapte a tu stack:
Integra de forma nativa con nuestro SDK para Web, iOS, Android, React Native o Flutter.
Redirige al usuario a la página de verificación alojada — sin SDK.
Envía un enlace por correo electrónico, SMS, WhatsApp o cualquier canal — sin trabajo de front-end.
Es un reemplazo directo para tu contrato de devolución de llamada de contraseña de un solo uso existente.
POST /v3/session/ con workflow_type: "biometric_authentication" y los mismos vendor_data que usaste en el registro.
Redirige al usuario a la session_url devuelta.
Verifica el encabezado X-Signature-V2 en el webhook antes de confiar en el cuerpo.
Ramifica según el status — Approved (ejecuta la acción), Declined (bloquea), In Review (pon en cola), Not Finished (vuelve a solicitar).
La mayoría de los equipos cambian el SMS por el rostro en un fin de semana. El prompt completo que se puede pegar en el agente está arriba; el servidor del Protocolo de Contexto del Modelo (MCP) habla ambas superficies.
¿Qué pasa si el rostro del usuario cambió (corte de pelo, barba, gafas)?+
La coincidencia facial 1:1 es robusta a cambios moderados de apariencia — vello facial, gafas, color de pelo, iluminación. La puntuación de similitud devuelta por autenticación refleja la confianza del modelo.
Para los usuarios que se desvían del umbral de aprobación automática (caso típico: cambio drástico de peso, cirugía, envejecimiento a lo largo de muchos años), el veredicto devuelve In Review y se enruta a tu cola de operaciones. La ruta de recuperación estándar es una sesión de reinscripción — una llamada KYC actualiza el retrato, y la siguiente autenticación utiliza la nueva plantilla.
¿Esto cumple con la autenticación reforzada de clientes de la PSD2 de la UE?+
Sí, para la categoría de inherencia. Las Normas Técnicas de Regulación de la Autoridad Bancaria Europea sobre la Autenticación Reforzada de Clientes reconocen los atributos biométricos (algo que eres) como un segundo factor válido cuando se combina con una de las otras dos categorías (conocimiento o posesión).
Para un flujo completo de autenticación reforzada de clientes de PSD2, combina la 2FA biométrica con la contraseña del usuario (conocimiento) o una sesión vinculada al dispositivo (posesión). El veredicto firmado de Didit es la evidencia auditable del factor de inherencia.