> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API de estimación de edad con selfie

> Didit verifica la edad con un selfie y análisis facial por IA. $0.10 por llamada, error medio de 1.0 año entre 13 y 17 años y respaldo opcional con documento.

La estimación de edad de Didit predice la edad de una persona a partir de un selfie, con prueba de vida pasiva incluida, para que puedas restringir por edad tus servicios sin pedir un documento de identidad a cada usuario. El modelo es más preciso justo donde se decide el control de edad: su error absoluto medio es de 1.0 año para personas de 13 a 17 años y de 1.8 años para las de 18 a 20 (consulta [Rendimiento del modelo](#rendimiento-del-modelo-y-estadísticas)).

Prompt de integración de la estimación de edad
        Copy prompt to clipboard



      
      

\<pre>

\````# Goal
Integrate Didit Age Estimation (selfie-based age gating, includes passive liveness) into your app. Pick ONE mode.

\# Mode A — Session-based (embedded in Liveness)
In hosted Didit flows, age estimation is **embedded inside the Liveness step** — there is no separate "age_estimation" workflow feature. Enable age estimation on the Liveness node in the Business Console.

1\. Configure the workflow's LIVENESS feature with age estimation enabled and set age_estimation_decline_threshold (default 18).
2\. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
3\. Open session.url for the user (or mount the Web/Mobile SDK).
4\. Fetch the decision — GET /v3/session/{sessionId}/decision/.

Decision surface: the result lives at `liveness_checks[].age_estimation` on each Liveness entry (not in a top-level age_estimations[] array).

\# Mode B — Standalone API (server-to-server, age + liveness in one call)
Use when you already have a selfie and need a one-shot age gate.

POST https://verification.didit.me/v3/age-estimation/
multipart/form-data — x-api-key: YOUR_API_KEY

curl example:
\```bash
curl -X POST 'https://verification.didit.me/v3/age-estimation/' \
-H 'x-api-key: YOUR_API_KEY' \
-F 'user_image=@./selfie.jpg' \
-F 'age_estimation_decline_threshold=18' \
-F 'save_api_request=true' \
-F 'vendor_data=user-1234'
\```
Returns: { request_id, age_estimation: { status, method: "PASSIVE", age_estimation (float, years), score (passive-liveness 0-100), user_image: {entities}, warnings: [...] } }.

Required: `user_image` (jpg/jpeg/png/tiff/webp, max 5 MB; PDFs not accepted). The largest face wins when multiple are present.

\# Decision logic
status="Declined" when ANY of the following is true:
\- passive-liveness score ≤ face_liveness_score_decline_threshold (default 30)
\- predicted age < age_estimation_decline_threshold (default 18)
\- no face detected
\- liveness model flagged a presentation attack

\# Status enum
"Not Started" | "In Progress" | "Approved" | "In Review" | "Declined" | "Abandoned" | "Kyc Expired"

\# Warnings
warnings[] risk codes include:
AGE_BELOW_MINIMUM, AGE_NOT_DETECTED, LOW_LIVENESS_SCORE, NO_FACE_DETECTED, LIVENESS_FACE_ATTACK, MULTIPLE_FACES_DETECTED.
Full catalogue: /core-technology/age-estimation/warnings-age-estimation.

\# Failure modes to handle
\- HTTP 400 — missing or oversized user_image, unsupported extension.
\- HTTP 403 — out of credits.
\- status="Declined" with AGE_BELOW_MINIMUM — user is below the configured age; reject.
\- status="Declined" with LOW_LIVENESS_SCORE / LIVENESS_FACE_ATTACK — presentation attack suspected; reject.
\- AGE_NOT_DETECTED — the model could not extract age (poor image quality); request a retake.

\# See also
\- Canonical schema: /reference/data-models#age-estimation
\- Per-feature report: /core-technology/age-estimation/report-age-estimation
\- Risk catalogue: /core-technology/age-estimation/warnings-age-estimation
\- Full integration playbook: /integration/integration-prompt````

\</pre>



      
      

Paste into

## Métodos de estimación de edadNuestra plataforma implementa la estimación de edad junto con distintas tecnologías de verificación de prueba de vida:<table>
  <thead>
    <tr>
      <th>Método</th>
      <th>Descripción</th>
      <th>Nivel de seguridad</th>
      <th>Ideal para</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>**`3D Action & Flash`**</td>

      <td>
        • Combina una verificación biométrica multifactor con una **secuencia de acciones aleatoria** y un **análisis dinámico de patrones de luz**.\

        • Al comenzar, se pide al usuario una acción sencilla, como **parpadear** o **asentir**, lo que asegura la interacción en tiempo real.\

        • A la vez, el sistema proyecta una secuencia de patrones de luz sobre el rostro y analiza los **reflejos** para confirmar la estructura tridimensional de la cara.\

        • Los **algoritmos de aprendizaje profundo** examinan las microexpresiones y las respuestas a los reflejos de luz para verificar la presencia de una persona real.\

        • Ofrece la **máxima seguridad** al integrar señales de comportamiento (acción) y físicas (profundidad basada en luz), lo que hace casi imposible suplantarlo con imágenes estáticas, vídeos o incluso máscaras avanzadas.
      </td>

      <td>Máximo</td>
      <td>Aplicaciones bancarias, sanitarias y gubernamentales</td>
    </tr>

    <tr>
      <td>**`3D Flash`**</td>

      <td>
        • Usa un **análisis dinámico de patrones de luz** para validar la topología facial sin requerir interacción del usuario.\

        • Proyecta una serie de patrones de luz sobre el rostro a más de **30 fotogramas por segundo** y analiza los reflejos para crear un **mapa de profundidad**.\

        • Este mapa de profundidad confirma la estructura tridimensional del rostro y lo distingue de imágenes planas o suplantaciones 2D.\

        • Ofrece una **experiencia fluida** y mantiene una **alta seguridad** frente a ataques de presentación como fotos o pantallas.\

      </td>

      <td>Alto</td>
      <td>Servicios financieros, acceso a cuentas, verificación de identidad</td>
    </tr>

    <tr>
      <td>**`Passive Liveness`**</td>

      <td>
        • Se basa en un **análisis de aprendizaje profundo de un solo fotograma** para detectar indicios de vida.\

        • Por privacidad, el rostro del usuario aparece borroso en la interfaz, lo que le asegura que su imagen se analiza solo para estimar la edad y no para identificarlo.\

        • Examina la imagen en busca de **artefactos**, **patrones de textura** y otros indicadores sutiles que diferencian un rostro real de una suplantación.\

        • Una **red neuronal convolucional (CNN)** valida los rasgos faciales e identifica anomalías, como las de fotos impresas o pantallas digitales.\

        • Ofrece una verificación **rápida y cómoda**, pero con una seguridad **estándar**, adecuada para casos de uso de bajo riesgo.\

      </td>

      <td>Estándar</td>
      <td>Escenarios de baja fricción, aplicaciones de consumo</td>
    </tr>
  </tbody>
</table>Cada método genera una estimación de edad precisa junto con puntuaciones de confianza y datos complementarios de estimación de género.### Umbrales configurablesPuedes personalizar los niveles de seguridad definiendo distintos umbrales para la estimación de edad. Por ejemplo:![Configuración de umbrales de la estimación de edad de Didit para políticas de control de acceso por edad](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/age-estimation-thresholds.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=11ffd7baa63b7193970c6b67386279f8)> [!NOTE]
>
> Estos umbrales se pueden ajustar según tu tolerancia al riesgo y tus requisitos de seguridad.### Restricciones de edad por paísLas restricciones de edad se pueden configurar **por país**, ya que la mayoría de edad legal varía entre jurisdicciones. En lugar de fijar una única edad mínima o máxima global, puedes definir límites de edad específicos para cada país, e incluso para estados o regiones concretos dentro de un país.#### Cómo funciona- **Configuración a nivel de país**: define una edad mínima y/o máxima para cada país (identificado por el estado emisor del documento). Por ejemplo, puedes exigir una edad mínima de 18 años en Estados Unidos, 19 en Corea del Sur y 21 en los Emiratos Árabes Unidos.
- **Excepciones por estado o región**: para países con variaciones subnacionales (como Estados Unidos o México), puedes configurar excepciones por estado. Por ejemplo, Misisipi puede exigir una edad mínima de 21 años mientras que el valor predeterminado de EE. UU. es 18. El sistema identifica el estado a partir de la región que el OCR extrae del documento.
- **Valores predeterminados de mayoría de edad**: la consola ofrece un botón de un clic, "Aplicar mayoría de edad", que rellena automáticamente la edad mínima de cada país según la mayoría de edad legal conocida en todo el mundo. Después puedes personalizar países o estados concretos según necesites.
- **Acciones configurables**: cuando la edad de un usuario es inferior al mínimo o superior al máximo del país de su documento, puedes elegir la acción: **Rechazar** o **Revisar**.#### Ejemplo de configuración| País | Edad mín. | Edad máx. | Excepciones por estado |
| - | - | - | - |
| USA | 18 | -- | Mississippi: 21, Alabama: 19 |
| KOR | 19 | -- | -- |
| GBR | 18 | 65 | -- |
| ARE | 21 | -- | -- |> [!NOTE]
>
> Las restricciones de edad por país están disponibles tanto en los flujos KYC estándar como en los flujos de verificación adaptativa de edad. En los flujos adaptativos, cuando se activa la verificación de identidad en casos límite, la comprobación de edad usa los ajustes por país configurados en el paso de verificación de identidad.## Cómo funciona**1. Captura de imagen o vídeo**El usuario aporta una imagen facial nítida mediante la subida por API o completa un proceso de verificación de prueba de vida.| Comprobación | Descripción |
| - | - |
| **Calidad de la imagen** | Valida la iluminación, la posición y la nitidez |
| **Verificación de prueba de vida** | Asegura que el sujeto está presente y no es una suplantación |
| **Análisis multifotograma** | Selecciona el fotograma óptimo para obtener la mejor precisión |
| **Captura adaptativa** | Se ajusta a las capacidades de cada dispositivo |**2. Análisis de rasgos faciales**Un detector localiza cada rostro y cada persona de la imagen, y se analiza el rostro más grande.- **Recorte del rostro**: el rostro tal como se detecta, analizado en cuanto a morfología facial, proporciones y textura de la piel
- **Contexto corporal**: la persona que rodea el rostro, con el rostro enmascarado, afina la estimación
- Se detectan y notifican varios rostros en una misma imagen, de modo que la sesión se pueda gestionar en consecuencia**3. Procesamiento con redes neuronales**Dos redes neuronales profundas complementarias estiman la edad de forma independiente, y la estimación final es su promedio.- Un transformer lee a la vez los recortes del rostro y del cuerpo; una red convolucional lee el rostro
- Cada red combina cinco modelos entrenados con distintas particiones de los datos, lo que estabiliza la estimación
- Entrenado con edades confirmadas por documentos de identidad, con adolescentes, adultos jóvenes y todos los grupos de tono de piel bien representados
- Evaluado únicamente con selfies y personas que los modelos nunca vieron durante el entrenamiento**4. Decisión y análisis complementario**El sistema genera un resultado completo:| Resultado | Descripción |
| - | - |
| **Estimación de edad** | Estimación principal con puntuación de confianza |
| **Estimación de género** | Contexto demográfico complementario (opcional) |
| **Métricas de confianza** | Evaluación de la fiabilidad global |
| **Factores ambientales** | Evaluación del impacto en la calidad de la estimación |**5. Aplicación de reglas**Tus reglas de negocio configuradas se aplican a los resultados de la estimación.- La estimación de edad se compara con tus **umbrales configurados** (mín./máx. por país)
- Las puntuaciones de confianza se comprueban frente a tus requisitos mínimos
- Los **casos límite** pueden activar el respaldo con verificación de identidad (modo adaptativo)
- Los resultados se documentan con un **registro de auditoría** detallado para el cumplimiento normativo## Estimación de edad adaptativaPara los escenarios en los que la verificación precisa de la edad es crítica, nuestra plataforma ofrece una estimación de edad adaptativa con respaldo de verificación de identidad. Este enfoque equilibra la comodidad del usuario y el cumplimiento normativo.### Cómo funciona la estimación de edad adaptativa**1. Estimación inicial de la edad**El sistema intenta primero estimar la edad del usuario mediante análisis facial. Junto con la estimación se genera una puntuación de confianza.**2. Evaluación de umbrales**La edad estimada se compara con tus umbrales configurados. Hay tres resultados posibles:| Resultado | Descripción |
| - | - |
| **Aprobación clara** | El usuario está claramente por encima del umbral de edad exigido |
| **Rechazo claro** | El usuario está claramente por debajo del umbral de edad exigido |
| **Caso límite** | La edad estimada cae en un rango incierto o tiene baja confianza |**3. Respaldo inteligente**- **Aprobación o rechazo claro**: la verificación se completa de inmediato con el resultado correspondiente
- **Casos límite**: el sistema inicia automáticamente un **flujo de verificación de identidad**
- Así se garantiza el cumplimiento normativo y se minimiza la fricción para la mayoría de los usuarios**4. Verificación del documento (cuando es necesaria)**En los casos límite, el usuario aporta un documento de identidad emitido por un gobierno:- Se verifican la autenticidad del documento y la información de edad
- Se aplican las **restricciones de edad por país** del paso de verificación de identidad
- El sistema comprueba la fecha de nacimiento frente a la edad mínima y máxima del país y la región emisores del documento
- El retrato del documento se **compara 1:1 con el selfie ya capturado para la estimación de edad**, de modo que la fecha de nacimiento del documento queda vinculada a la persona que está frente a la cámara### Qué devuelve el respaldoLa coincidencia facial de respaldo se ejecuta sin un nodo de coincidencia facial en el flujo, por lo que aparece en la decisión de la sesión de una forma que es fácil confundir con una comprobación que nunca configuraste:- `features` incluye `FACE_MATCH` además de `AGE_ESTIMATION` y `ID_VERIFICATION` una vez que se ha ejecutado el respaldo.
- `face_matches[]` contiene una entrada con el `score`, el `source_image` (retrato del documento) y el `target_image` (selfie de la estimación de edad). Su `node_id` es el **nodo de estimación de edad** (`feature_age_estimation` en un flujo nativo) porque la coincidencia pertenece a ese paso y no a un paso de coincidencia facial.
- Una puntuación baja genera las [advertencias habituales de coincidencia facial](https://docs.didit.me/core-technology/face-match/warnings-face-match.md) y puede enviar la sesión a revisión o rechazo, igual que lo haría un nodo de coincidencia facial configurado.
- **No se factura** como coincidencia facial: la sesión se cobra solo por la estimación de edad y por la verificación de identidad.Las sesiones que se aprueban o rechazan solo con el selfie nunca ejecutan el respaldo, por lo que devuelven `face_matches: null`. Para mantener las imágenes fuera del payload de la decisión, limita los campos de `face_matches` con los [atributos de respuesta](https://docs.didit.me/sessions-api/retrieve-session.md) del flujo.> [!NOTE]
>
> La estimación de edad adaptativa se puede configurar con el tipo de flujo [Verificación adaptativa de edad](https://docs.didit.me/console/workflows.md). Puedes definir los umbrales de edad límite que determinan cuándo se activa la verificación de identidad. La aprobación o el rechazo final por edad en los casos límite se rige después por las restricciones de edad por país configuradas en el paso de verificación de identidad.### Ventajas de la estimación de edad adaptativa- **Menos fricción**: la mayoría de los usuarios completan la verificación solo con un selfie
- **Mayor cumplimiento**: los casos inciertos reciben una verificación documental completa con reglas de edad específicas de cada país
- **Eficiencia de costes**: la verificación de identidad solo se usa cuando es necesaria
- **Tolerancia al riesgo personalizable**: ajusta los umbrales según tus requisitos normativos
- **Atención a la jurisdicción**: aplica automáticamente la mayoría de edad correcta según el país y la región emisores del documento del usuarioEste enfoque es especialmente valioso para servicios con restricción de edad, como los juegos en línea, la entrega de alcohol y las plataformas de contenido para adultos, donde es esencial equilibrar la experiencia de usuario con el cumplimiento normativo.## Rendimiento del modelo y estadísticasLas cifras siguientes proceden de una evaluación con 51,655 selfies de personas de 13 años o más, con la edad de cada persona tomada de su documento de identidad verificado.
Cada estimación la produjo un modelo que nunca había visto ese selfie, ni a esa persona, durante el entrenamiento.
Las cifras globales están ponderadas según una mezcla de evaluación con un 10% de menores de 18 años y adultos con la distribución de edad del tráfico real; cada rango de edad se indica por separado más abajo.### Métricas de precisión<table>
  <thead>
    <tr>
      <th>Métrica</th>
      <th>Valor</th>
      <th>Descripción</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>**Error absoluto medio (MAE)**</td>
      <td>2.8 años</td>
      <td>Diferencia media entre la edad estimada y la del documento</td>
    </tr>

    <tr>
      <td>**Desviación estándar**</td>
      <td>3.0 años</td>
      <td>Dispersión del error absoluto de una estimación a otra</td>
    </tr>

    <tr>
      <td>**Precisión dentro de ±5 años**</td>
      <td>84%</td>
      <td>Porcentaje de estimaciones a menos de 5 años de la edad del documento</td>
    </tr>

    <tr>
      <td>**Precisión dentro de ±3 años**</td>
      <td>65%</td>
      <td>Porcentaje de estimaciones a menos de 3 años de la edad del documento</td>
    </tr>
  </tbody>
</table>### Rendimiento por rangos de edadEl error es menor en torno a las edades en las que se decide el control de edad, y crece con la edad.<table>
  <thead>
    <tr>
      <th>Rango de edad</th>
      <th>Selfies</th>
      <th>MAE (años)</th>
      <th>Desviación estándar (años)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>13-15</td>
      <td>5,003</td>
      <td>1.24</td>
      <td>1.14</td>
    </tr>

    <tr>
      <td>16-17</td>
      <td>10,933</td>
      <td>0.90</td>
      <td>1.05</td>
    </tr>

    <tr>
      <td>18-20</td>
      <td>5,436</td>
      <td>1.81</td>
      <td>1.79</td>
    </tr>

    <tr>
      <td>21-25</td>
      <td>8,640</td>
      <td>2.29</td>
      <td>1.90</td>
    </tr>

    <tr>
      <td>26-40</td>
      <td>15,182</td>
      <td>2.95</td>
      <td>2.39</td>
    </tr>

    <tr>
      <td>41-60</td>
      <td>5,830</td>
      <td>3.62</td>
      <td>3.27</td>
    </tr>

    <tr>
      <td>Más de 60</td>
      <td>631</td>
      <td>6.53</td>
      <td>8.64</td>
    </tr>
  </tbody>
</table>> [!NOTE]
>
> La desviación estándar describe cuánto varía el error de las estimaciones individuales, no la incertidumbre del promedio.
> Una estimación a uno o dos años de tu edad mínima puede caer a cualquiera de los dos lados: cuando una decisión equivocada cerca del umbral importa, envía esa franja límite al [respaldo adaptativo de verificación de identidad](#estimación-de-edad-adaptativa).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.