curl -X GET 'https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/events/?limit=50' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
for item in client.sessions.list_events(
"11111111-2222-3333-4444-555555555555",
):
print(item)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
for await (const item of didit.sessions.listEvents("11111111-2222-3333-4444-555555555555")) {
console.log(item);
}ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
iter := client.Sessions.ListEventsAutoPaging(ctx, "11111111-2222-3333-4444-555555555555", didit.SessionsListEventsParams{})
for iter.Next() {
fmt.Printf("%+v\n", iter.Current())
}
if err := iter.Err(); err != nil {
log.Fatal(err)
}import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
for (var item : client.sessions().listEvents("11111111-2222-3333-4444-555555555555")) {
System.out.println(item);
}<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
foreach ($didit->sessions->listEvents('11111111-2222-3333-4444-555555555555') as $item) {
print_r($item->toArray());
}require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
didit.sessions.list_events("11111111-2222-3333-4444-555555555555").auto_paging_each do |item|
puts item.to_h
endusing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
await foreach (var item in await client.Sessions.ListEventsAsync("11111111-2222-3333-4444-555555555555"))
{
Console.WriteLine(JsonSerializer.Serialize(item));
}{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"uuid": "aaaaaaaa-1111-2222-3333-444444444444",
"event_type": "SESSION_STATUS_CHANGED",
"created_at": "2026-09-14T10:02:13.904512Z",
"component": null,
"feature_step": null,
"step": null,
"details": {
"old_status": "In Progress",
"current_status": "Approved"
},
"ip_address": null,
"user_agent": null,
"device_info": null,
"file_url": null,
"sent_at": 1789380131482
},
{
"uuid": "bbbbbbbb-1111-2222-3333-444444444444",
"event_type": "FEATURE_STEP_CHANGED",
"created_at": "2026-09-14T10:01:49.210377Z",
"component": null,
"feature_step": null,
"step": null,
"details": {
"old_feature_step": "OCR",
"current_feature_step": "LIVENESS"
},
"ip_address": null,
"user_agent": null,
"device_info": null,
"file_url": null,
"sent_at": 1789380107103
},
{
"uuid": "cccccccc-1111-2222-3333-444444444444",
"event_type": "STEP_RENDERED",
"created_at": "2026-09-14T10:01:00.581930Z",
"component": "DocumentCapture",
"feature_step": "OCR",
"step": "DOCUMENT_CAPTURE_FRONT",
"details": {},
"ip_address": "203.0.113.24",
"user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1",
"device_info": {
"device_model": "iPhone"
},
"file_url": null,
"sent_at": 1789380058776
}
]
}API para listar eventos de sesión de verificación
Lee con la API de Didit los eventos de una sesión de verificación: pasos, estados y enrutamiento, del más reciente al más antiguo y paginados.
curl -X GET 'https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/events/?limit=50' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
for item in client.sessions.list_events(
"11111111-2222-3333-4444-555555555555",
):
print(item)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
for await (const item of didit.sessions.listEvents("11111111-2222-3333-4444-555555555555")) {
console.log(item);
}ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
iter := client.Sessions.ListEventsAutoPaging(ctx, "11111111-2222-3333-4444-555555555555", didit.SessionsListEventsParams{})
for iter.Next() {
fmt.Printf("%+v\n", iter.Current())
}
if err := iter.Err(); err != nil {
log.Fatal(err)
}import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
for (var item : client.sessions().listEvents("11111111-2222-3333-4444-555555555555")) {
System.out.println(item);
}<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
foreach ($didit->sessions->listEvents('11111111-2222-3333-4444-555555555555') as $item) {
print_r($item->toArray());
}require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
didit.sessions.list_events("11111111-2222-3333-4444-555555555555").auto_paging_each do |item|
puts item.to_h
endusing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
await foreach (var item in await client.Sessions.ListEventsAsync("11111111-2222-3333-4444-555555555555"))
{
Console.WriteLine(JsonSerializer.Serialize(item));
}{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"uuid": "aaaaaaaa-1111-2222-3333-444444444444",
"event_type": "SESSION_STATUS_CHANGED",
"created_at": "2026-09-14T10:02:13.904512Z",
"component": null,
"feature_step": null,
"step": null,
"details": {
"old_status": "In Progress",
"current_status": "Approved"
},
"ip_address": null,
"user_agent": null,
"device_info": null,
"file_url": null,
"sent_at": 1789380131482
},
{
"uuid": "bbbbbbbb-1111-2222-3333-444444444444",
"event_type": "FEATURE_STEP_CHANGED",
"created_at": "2026-09-14T10:01:49.210377Z",
"component": null,
"feature_step": null,
"step": null,
"details": {
"old_feature_step": "OCR",
"current_feature_step": "LIVENESS"
},
"ip_address": null,
"user_agent": null,
"device_info": null,
"file_url": null,
"sent_at": 1789380107103
},
{
"uuid": "cccccccc-1111-2222-3333-444444444444",
"event_type": "STEP_RENDERED",
"created_at": "2026-09-14T10:01:00.581930Z",
"component": "DocumentCapture",
"feature_step": "OCR",
"step": "DOCUMENT_CAPTURE_FRONT",
"details": {},
"ip_address": "203.0.113.24",
"user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1",
"device_info": {
"device_model": "iPhone"
},
"file_url": null,
"sent_at": 1789380058776
}
]
}WORKFLOW_BRANCH_EVALUATED, WORKFLOW_STATUS_NODE_REACHED) y sus details se describen en Obtener sesión, que también puede devolver la cronología de una sesión de Verificación de usuario (KYC) dentro de su decisión con ?include=events.Autorizaciones
La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.
Parámetros de ruta
UUID de la sesión de verificación (el session_id que devuelve POST /v3/session/). Acepta ID de sesión tanto de Verificación de usuarios (KYC) como de Verificación de empresas (KYB): el servidor resuelve el ID en ambos tipos de sesión. Debe ser un UUID con formato válido; un valor mal formado no coincide con la ruta y devuelve un 404 en HTML.
"11111111-2222-3333-4444-555555555555"
Parámetros de consulta
Número máximo de eventos por página. El valor predeterminado es 50. Un valor inferior a 1 o no numérico se sustituye por 50; un valor superior a 1,000,000 devuelve 400.
1 <= x <= 100000050
Número de resultados que se omiten antes del primero devuelto. El valor predeterminado es 0; un valor negativo o no numérico se sustituye por 0, y un valor superior a 1,000,000 devuelve 400. Es preferible seguir las URL next y previous.
0 <= x <= 10000000
Ordenación opcional personalizada. El orden predeterminado es -sent_at. Pasa el nombre de un campo del resultado (por ejemplo sent_at, created_at, event_type, feature_step o step) para ordenar de forma ascendente, antepón - para ordenar de forma descendente y separa varios campos con comas. Los campos desconocidos se ignoran.
"sent_at"
Respuesta
Una página de los eventos de la sesión, del más reciente al más antiguo.