Saltar al contenido principal
Didit recauda $2M y se une a Y Combinator (W26)
Didit
Estimación de edad

Control de edad para cualquier usuario.
Sin pedirles una identificación.

Estime la edad de un usuario a partir de una selfie — sin carga de identificación, sin fricción. Menos de dos segundos, precisión de ±3.5 años, detección de vida certificada por iBeta en la misma captura. $0.10 por verificación, 500 gratis/mes.

Respaldado por
Y Combinator
GBTC Finance
Bondex
Crnogorski Telekom
UCSF Neuroscape
Shiply
Adelantos

Con la confianza de más de 2.000 organizaciones en todo el mundo.

Menos de 2 segundos en el dispositivo

Estime la edad en milisegundos.
No se requiere documento.

El análisis facial en el dispositivo devuelve una estimación de edad en menos de dos segundos — sin foto de identificación, mínimos datos personales. Construido sobre el mismo motor certificado por iBeta Nivel 1 para la detección de ataques de presentación.

Cómo funciona

Desde el registro hasta el usuario verificado en cuatro pasos.

  1. Paso 01

    Crea el flujo de trabajo

    Elija las verificaciones que desee: identificación, detección 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 según las condiciones, ejecute pruebas A/B, no se requiere código.

  2. Paso 02

    Integrar

    Incorpore de forma nativa con nuestros SDK de 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.

  3. 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.

  4. Paso 04

    Recibes 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.

Diseñado para desarrolladores · Diseñado contra el fraude · Abierto por diseño

Seis capacidades. Un "feature flag". AGE_ESTIMATION.

Cada capacidad a continuación es un interruptor en el mismo módulo. Sin niveles de venta adicional, sin SKU separados, sin llamadas adicionales. Actívelos por flujo de trabajo o páselos en línea en la llamada a la API.
01 · Flujo solo con selfie

Verifique la edad sin cargar una identificación.

Una respuesta de datos mínimos para el comercio con restricción de edad: contenido para adultos, entrega de alcohol, juegos de azar en línea. Una sola selfie pasiva cubre la mayoría de los casos de aprobación y rechazo claros, reduciendo la deserción en comparación con una carga de identificación completa en un orden de magnitud. Se alinea con la Ley de Seguridad en Línea del Reino Unido y el código de edad apropiada de California.
02 · Precisión

±3.5 años en todos los rangos de edad.

Error promedio de 3.5 años en general: el 89% de las estimaciones se encuentran dentro de ±5 años, el 76% dentro de ±3 años. El rendimiento por rango se publica: 1.5 años para menores de 18, 2.8 años para 18-25, 3.9 años para 41-60, para que pueda dimensionar su umbral con números reales, no con adjetivos del proveedor.
03 · Equidad demográfica

Entrenado en millones de rostros. En todas las demografías.

El sesgo es el mayor modo de falla de los modelos de estimación de edad, y el que buscan los reguladores. Nuestros modelos se entrenan en un corpus equilibrado en edad, etnia, género y condiciones de iluminación, con el error por rango publicado en lugar de promediado. Se reentrenan continuamente para mantenerse a la vanguardia de la deriva demográfica.
04 · Umbrales configurables

Ajuste la política por flujo de trabajo y por país.

Umbral de rechazo (18 por defecto) y nivel de prueba de vida facial por flujo de trabajo. Superponga reglas por país: edad mínima/máxima por país con anulaciones a nivel estatal donde sea relevante (Misisipi 21, Alabama 19, EE. UU. por defecto 18). Un clic aplica la edad legal de mayoría de edad en todo el mundo como línea de base; ajuste las excepciones.
05 · Reserva de ID adaptativa

Los casos límite se dirigen automáticamente a una verificación de documentos.

Las aprobaciones claras y los rechazos claros se completan solo con la selfie. Las estimaciones límite, la minoría incierta cerca de su umbral, activan automáticamente nuestro flujo de verificación de edad adaptativa, regido por las reglas por país en el paso de identificación. La mayoría de los usuarios completan con una selfie; la verificación de documentos se activa solo cuando las matemáticas dicen que la necesita. Se factura a $0.15 por cada reserva de verificación de identidad.
06 · Base de prueba de vida

Una captura. Dos señales. El mismo motor que la prueba de vida.

La estimación de edad se ejecuta sobre nuestra tubería de prueba de vida iBeta Nivel 1 PAD (detección de ataque de presentación): la misma selfie devuelve un veredicto de "humano real" y un rango de edad. Derrota deepfakes, fotos impresas, repeticiones de pantalla y máscaras de silicona antes de que se ejecute el modelo de edad. Actívelo en un flujo de trabajo de prueba de vida y una captura ilumina ambos campos.
Integrar

Dos endpoints. Mismo JSON. Mismo precio.

Cree una sesión cuando desee que nuestra interfaz de usuario alojada maneje la selfie (y la reserva de ID adaptativa para casos límite). Llame al endpoint independiente cuando ya tenga la selfie. El mismo bloque de edad de cualquier manera.
POST /v3/session/Interfaz de usuario alojada
$ curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_id": "wf_age_adaptive",
    "vendor_data": "user-42"
  }'
201Creado{ "session_url": "verify.didit.me/..." }
Nosotros alojamos la interfaz de usuario de captura. Requerido para el fallback de Adaptive ID.documentación →
POST /v3/age-estimation/Servidor a servidor
$ curl -X POST https://verification.didit.me/v3/age-estimation/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -F "user_image=@selfie.jpg" \
  -F "age_estimation_decline_threshold=18"
200OK{ "status": "Aprobado", "age_estimation": 27.33 }
Usted es el propietario de la captura. Devolvemos la edad en línea.documentación →
Integración lista para el agente

Envíe la estimación de edad en una sola instrucción.

Pegue el siguiente bloque en Claude Code, Cursor, Codex, Devin, Aider o Replit Agent. Rellene el marcador de posición my_stack con su framework, lenguaje y caso de uso. El agente aprovisiona Didit, crea el flujo de trabajo, conecta el webhook y lo envía.
didit-integration-prompt.md
# Didit Age Estimation — integrate in 5 minutes

You are integrating Didit's Age Estimation module into <my_stack>. Follow
these steps exactly. Every URL, header, and enum value below is canonical
— do not paraphrase or "improve" them.

## 1. Provision an account
- Sign up: https://business.didit.me (no credit card required).
- Or provision programmatically: POST https://apx.didit.me/auth/v2/programmatic/register/
  (returns an API key bound to the workspace + application).

## 2. Two integration paths — pick one

### Path A — Workflow Builder (hosted UI)
Best when you want Didit to handle the camera, framing, low-light
fallback, mobile handoff, and accessibility for you. Required if you want
Adaptive Age Verification (auto-fall-back to ID for borderline cases).

1. Create a workflow that contains the AGE_ESTIMATION feature:
   POST https://verification.didit.me/v3/workflows/
   Authorization header:  x-api-key: <your-api-key>
   Body: workflow_label, features array with the single entry
         { feature: "AGE_ESTIMATION" }   (UPPERCASE — strict enum)
   Optional config:
     - age_estimation_decline_threshold (default 18)
     - face_liveness_score_decline_threshold (default 30)
     - adaptive_id_verification (when true, borderline cases trigger ID
       verification fallback governed by per-country age restrictions on
       the ID Verification step)
     - per_country_age_restrictions (map of country -> min / max age,
       with optional state-level overrides)

2. Create a verification session for an end user:
   POST https://verification.didit.me/v3/session/
   Body: workflow_id (from step 1), vendor_data (your own user id).
   Response: session_url — redirect the user to it.

3. Listen for webhook callbacks (see "Webhooks" below).

### Path B — Standalone server-to-server API
Best when you already have a selfie image (mobile SDK capture, native
onboarding app, reseller pipeline) and only need a numeric age estimate
plus passive-liveness verdict on it. No adaptive ID fallback on this
path — wire that yourself if you need it.

POST https://verification.didit.me/v3/age-estimation/
Content-Type: multipart/form-data
Body fields:
  - user_image                              (required, file — single selfie)
  - age_estimation_decline_threshold        (optional integer 0-100, default 18)
  - face_liveness_score_decline_threshold   (optional integer 0-100, default 30)
  - rotate_image                            (optional boolean, default false)
  - save_api_request                        (optional boolean, default true)
  - vendor_data                             (optional string, your user id)

Response: JSON with request_id, age_estimation block, created_at.

## 3. Webhooks (Path A only — Path B returns synchronously)
- Register a webhook destination once via
  POST https://verification.didit.me/v3/webhook/destinations/
  Body: url, subscribed_events: ["session.verified", "session.review_started",
                                  "session.declined"]
- Response includes secret_shared_key — store it.
- Every webhook delivery carries an X-Signature-V2 header you MUST verify
  before trusting the payload.  HMAC-SHA256 verification MUST run against the raw body bytes (the raw payload as Didit sent it) BEFORE any JSON parsing — re-serialising the parsed body changes whitespace and key order, which invalidates the signature.Algorithm:
    1. sortKeys(payload) recursively
    2. shortenFloats (truncate trailing zeros after the decimal point)
    3. JSON.stringify the result
    4. HMAC-SHA256 with the secret_shared_key
    5. Hex-encode, compare to the X-Signature-V2 header.

## 4. Reading the report

### Path A (session) — age_estimation lives on the liveness object
The liveness object on the session report includes age_estimation as a
number-of-years field on the same selfie capture:
- liveness.status           "Approved" | "Declined" | "In Review" | "Not Finished"
- liveness.method           "PASSIVE" | "FLASHING" | "ACTIVE_3D"
- liveness.score            number 0-100  (normalized liveness score)
- liveness.reference_image  signed URL to the captured selfie (60-minute TTL)
- liveness.age_estimation   estimated age in years (e.g. 24.3)
- liveness.warnings         Array of risk objects (see below)

### Path B (standalone) — top-level age_estimation block
- request_id                          uuid
- age_estimation.status               "Approved" | "Declined" | "In Review"
- age_estimation.method               "PASSIVE"
- age_estimation.score                number 0-100  (passive-liveness score)
- age_estimation.age_estimation       estimated age in years (e.g. 27.33)
- age_estimation.user_image.entities  array of detected faces, each with
                                       age, bbox, confidence, gender
- age_estimation.user_image.best_angle integer
- age_estimation.face_quality         0-100 face image quality score
- age_estimation.face_luminance       0-100 face luminance score
- age_estimation.warnings             Array of risk objects (see below)
- created_at                          ISO8601

### Warning catalog (both paths)
- AGE_BELOW_MINIMUM            estimated age below the configured threshold
- AGE_NOT_DETECTED             unable to estimate age (quality / lighting)
- LOW_LIVENESS_SCORE           passive-liveness score below threshold
- NO_FACE_DETECTED             no face in the capture
- LIVENESS_FACE_ATTACK         presentation attack suspected
- FACE_IN_BLOCKLIST            face matches an entry in your blocklist
- POSSIBLE_DUPLICATED_FACE     face matches a previously verified face

## 5. Hard rules — do not change
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: AGE_ESTIMATION, LIVENESS, ID_VERIFICATION,
  FACE_MATCH, AML, IP_ANALYSIS.
- 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).
- Always verify webhook signatures before trusting payload data.
- Status casing matches exactly: "Approved", "Declined", "In Review",
  "Not Finished" (title-cased, space-separated).
- Reference image / video URLs are signed and expire in 60 minutes —
  store only the verdict + score, never the biometric media.

## 6. Pricing reference (public)
- AGE_ESTIMATION standalone or bundled inside a workflow: $0.10 per check
- Adaptive fallback to ID Verification (when triggered): $0.15 per check
- Bundled in a full KYC workflow alongside Liveness + ID + IP: $0.33 per session
- 500 free verifications every month, forever, on every account.

## 7. Verify your integration
- Sandbox starts on signup at https://business.didit.me — no separate flag.
- Test images: deterministic synthetic faces returned in sandbox
  (predictable estimated age band; trigger AGE_BELOW_MINIMUM by sending
  the canonical "minor" test image).
- Switch to live: flip the application environment toggle in console.

When in doubt: https://docs.didit.me/core-technology/age-estimation/overview
¿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.
Leer el dossier de seguridad y cumplimiento
Sandbox financiero de la UE
Tesoro · SEPBLAC · BdE
ISO/IEC 27001
Seguridad de la información · 2026
SOC 2 · Type I
AICPA · 2026
iBeta Level 1 PAD
NIST / NIAP · 2026
GDPR
EU 2016/679
DORA
EU 2022/2554
MiCA
EU 2023/1114
AMLD6 · eIDAS 2.0
Alineado con la UE por diseño

Números de prueba

Números de prueba
  • ±3.5y
    Error promedio en cada rango de edad.
  • 0%
    Estimaciones dentro de ±5 años de la edad real.
  • <0s
    Inferencia de extremo a extremo por sesión, servida en el borde.
  • $0.00
    Por verificación de estimación de edad independiente.
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
  • Usuarios en lista negra
  • Detección de duplicados
  • Más de 200 señales de fraude en cada sesión
  • KYC reutilizable en la red Didit
  • Plataforma de gestión de casos
  • Constructor de flujos de trabajo
  • Documentos públicos, sandbox, SDKs, servidor MCP (Model Context Protocol)
  • Soporte comunitario
Más popular
Pago por uso

Basado en el uso

Pague solo por lo que usa. Más de 25 módulos. Precios públicos por módulo, sin tarifa mínima mensual.

  • KYC completo por $0.33 (ID + Biométrico + IP / Dispositivo)
  • Más de 10,000 conjuntos de datos AML — sanciones, PEPs, medios adversos
  • Más de 1,000 fuentes de datos gubernamentales para la Validación de Bases de Datos
  • Monitoreo de Transacciones por $0.02 por transacción
  • KYB en vivo por $2.00 por negocio
  • Análisis de Billetera por $0.15 por verificación
  • Flujo de verificación de marca blanca — su marca, nuestra infraestructura
Empresarial

Empresarial

MSA y SLA personalizados. Para grandes volúmenes y programas regulados.

  • Contratos anuales
  • MSA, DPA y SLA personalizados
  • Canal dedicado de Slack y WhatsApp
  • Revisores manuales bajo demanda
  • Términos de revendedor y marca blanca
  • Funciones exclusivas e integraciones con socios
  • CSM asignado, revisión de seguridad, soporte de cumplimiento

Empiece gratis → pague solo cuando se ejecute una verificación → desbloquee Enterprise para un contrato personalizado, SLA o residencia de datos.

FAQ

Preguntas frecuentes

Infraestructura para la identidad y el fraude.

Una API para KYC, KYB, monitoreo de transacciones y detección de billeteras. Intégrelo en 5 minutos.

Pide a una IA que resuma esta página