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

# Ciclo de vida de entidades: estados de usuario y empresa

> Estados y transiciones de las entidades User y Business de Didit: creación, verificación, ACTIVE/FLAGGED/BLOCKED y eliminación. Pago por llamada.

Cada entidad de usuario y empresa en Didit recorre un ciclo de vida predecible. Entender este ciclo de vida es clave para diseñar tus flujos de onboarding, monitorización continua y remediación.

## Diagrama del ciclo de vida

```mermaid theme={null}
stateDiagram-v2
    [*] --> ACTIVE: Created (API, console, or auto from session)
    ACTIVE --> FLAGGED: Rule match / analyst review / suspicious pattern
    FLAGGED --> ACTIVE: Analyst clears / remediation completed
    ACTIVE --> BLOCKED: Session declined / manual block / blocklist match
    FLAGGED --> BLOCKED: Investigation concludes blocked
    BLOCKED --> ACTIVE: Manual unblock (analyst only)
```

## Estados en detalle

| Estado | Significado | Ejecución |
| - | - | - |
| `ACTIVE` | Predeterminado: la entidad tiene una situación regular | Las nuevas sesiones y transacciones pasan por los flujos y las reglas que hayas configurado |
| `FLAGGED` | La entidad tiene una incidencia pendiente que requiere revisión | Las nuevas sesiones se siguen procesando, pero pasan por defecto a `IN_REVIEW`; las transacciones pueden escalarse automáticamente según las reglas |
| `BLOCKED` | La entidad está bloqueada en tu plataforma | Las nuevas sesiones se rechazan automáticamente; las nuevas transacciones se rechazan automáticamente; no se pueden crear nuevos enlaces de sesión para este `vendor_data` |

> [!NOTE]
>
> Cambiar el estado mediante `PATCH /v3/users/{vendor_data}/update-status/` o `PATCH /v3/businesses/{vendor_data}/update-status/` emite un webhook (`user.status.updated` / `business.status.updated`) para que los sistemas downstream puedan reaccionar en tiempo real.

## Fases del ciclo de vida

**1. Creación**

Una entidad se crea de una de estas tres formas:

* **Creada automáticamente** cuando inicias una sesión con un `vendor_data` nuevo. La entidad se crea con el estado `ACTIVE`.
* **Creada previamente mediante la API** con `POST /v3/users/create/` o `POST /v3/businesses/create/`. El estado predeterminado es `ACTIVE`.
* **Creada en la consola** por un operador de cumplimiento: el estado inicial es `ACTIVE`, salvo que el operador indique otro.

Cada entidad recibe un `uuid` generado por Didit y un identificador `vendor_data` propiedad del cliente.

**2. Verificación**

Las sesiones se vinculan a la entidad mediante `vendor_data`. Cada sesión pasa por el [flujo de verificación (workflow)](https://docs.didit.me/es/console/workflows.md) que hayas configurado: verificación de identidad, prueba de vida, coincidencia facial, AML, documentos, consulta del registro para KYB, etc.

Las sesiones completadas actualizan los contadores agregados de la entidad:

* `session_count`, `approved_count`, `declined_count`, `in_review_count`
* El mapa `features`: el estado más reciente de cada función en todas las sesiones (p. ej., `{ "id_verification": "APPROVED", "aml": "IN_REVIEW" }`)
* Los campos del perfil se propagan desde la sesión aprobada más reciente (p. ej., `full_name`, `date_of_birth`, `portrait_image`).

**3. Uso activo**

Una vez que una entidad tiene una o más sesiones aprobadas, puedes:

* **Enviar transacciones** que hagan referencia a la entidad mediante `vendor_data` en el payload de la transacción
* **Ejecutar la monitorización AML continua**: nuevos análisis periódicos de las listas de sanciones, PEP y medios adversos
* **Reverificar de forma programada**: crear nuevas sesiones para el mismo `vendor_data` a intervalos regulares
* **Agregar señales de riesgo** de todas las sesiones y transacciones

**4. Transiciones de estado**

Los cambios de estado de una entidad se producen de forma automática o manual.

**Transiciones automáticas**

* `ACTIVE → BLOCKED` cuando una sesión es `DECLINED` y tu flujo está configurado para bloquear automáticamente.
* `ACTIVE → FLAGGED` cuando una transacción supera el umbral de revisión o una regla añade la entidad a una lista de vigilancia.
* `ACTIVE → BLOCKED` cuando una biometría facial coincide con una entrada de la lista de bloqueo.

Las **transiciones manuales** se producen cuando un analista cambia el estado desde la consola o cuando invocas el endpoint `update-status`.

Cada transición emite un webhook `user.status.updated` o `business.status.updated`.

**5. Eliminación**

Las entidades se eliminan mediante `POST /v3/users/delete/` o `POST /v3/businesses/delete/` (por lotes). El registro de la entidad se elimina de forma permanente. Al eliminar un User también se purgan todas las [plantillas biométricas](https://docs.didit.me/es/management-api/biometric-templates/overview.md) que se conservaron tras eliminar sus sesiones, por lo que la persona deja de coincidir en la detección de duplicados y en la Búsqueda facial.

Estos endpoints no cubren las sesiones de verificación ni las transacciones. Elimina las sesiones con [Delete Session](https://docs.didit.me/es/sessions-api/delete-session.md) o [Batch Delete Sessions](https://docs.didit.me/es/management-api/sessions/batch-delete.md); las transacciones se eliminan desde la consola.

## Marcas de tiempo de actividad

Las entidades registran la actividad para ayudarte a identificar perfiles inactivos o activos:

| Marca de tiempo | Se actualiza cuando |
| - | - |
| `first_session_at` | Se creó la primera sesión de esta entidad |
| `last_session_at` | Se creó o actualizó la sesión más reciente |
| `last_activity_at` | Se produjo cualquier cambio: sesión, transacción, cambio de estado, actualización del perfil |

Usa estas marcas de tiempo para filtrar entidades inactivas, programar reverificaciones o activar la monitorización continua.

## Eventos emitidos durante el ciclo de vida

| Fase del ciclo de vida | Webhooks emitidos |
| - | - |
| Creación (automática desde una sesión) | `status.updated` (sesión), `user.data.updated` o `business.data.updated` |
| Verificación | `status.updated` (sesión), `data.updated` |
| Cambio de estado | `user.status.updated` o `business.status.updated` |
| Transacción enviada | `transaction.created` |
| Cambio de estado de la transacción | `transaction.status.updated` |

Consulta los [webhooks de entidades](https://docs.didit.me/es/entities/webhooks.md) para ver la estructura de los payloads y la semántica de entrega.

## Próximos pasos

> [card] [Vinculación con vendor data](https://docs.didit.me/es/entities/vendor-data-linking.md)
>
> Cómo `vendor_data` vincula sesiones, transacciones y entidades.

> [card] [Operaciones con usuarios](https://docs.didit.me/es/entities/users/operations.md)
>
> Crea, actualiza, cambia el estado y elimina entidades User.

> [card] [Operaciones con empresas](https://docs.didit.me/es/entities/businesses/operations.md)
>
> Crea, actualiza, cambia el estado y elimina entidades Business.


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