curl -X GET 'https://verification.didit.me/v3/session/22222222-3333-4444-5555-666666666666/webhooks/' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.webhooks.list(
"22222222-3333-4444-5555-666666666666",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.webhooks.list("22222222-3333-4444-5555-666666666666");
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.Webhooks.List(ctx, "22222222-3333-4444-5555-666666666666")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().webhooks().list("22222222-3333-4444-5555-666666666666");
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->webhooks->list('22222222-3333-4444-5555-666666666666');
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
didit.sessions.webhooks.list("22222222-3333-4444-5555-666666666666").each do |item|
puts item.to_h
endusing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.Webhooks.ListAsync("22222222-3333-4444-5555-666666666666");
Console.WriteLine(JsonSerializer.Serialize(result));[
{
"uuid": "66666666-7777-8888-9999-000000000002",
"session_id": "22222222-3333-4444-5555-666666666666",
"request_url": "https://yourapp.com/webhooks/didit",
"response_status": 200,
"status": "In Progress",
"webhook_type": "status.updated",
"request_header": "{\"Content-Type\": \"application/json\", \"X-Signature\": \"9188851d160b5b3aacfc946e4dde1f061b7e568662518942c927ddaf507f533d\", \"X-Signature-V2\": \"381236af514d3fb538579365ac5a24f2464ce1b8224c6e770c60d8201c43ecc5\", \"X-Signature-Simple\": \"4740131dc38f29e78a8508371979be74967d5307464494bd3148a03b4d6c8716\", \"X-Timestamp\": \"1792056139\", \"User-Agent\": \"DiditWebhook/2.0 +https://didit.me\"}",
"request_body": "{\"application_id\":\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\"created_at\":1792056057,\"environment\":\"live\",\"event_id\":\"33333333-4444-5555-6666-777777777777\",\"sandbox_scenario\":null,\"session_id\":\"22222222-3333-4444-5555-666666666666\",\"status\":\"In Progress\",\"timestamp\":1792056139,\"vendor_data\":\"user-123\",\"webhook_type\":\"status.updated\",\"workflow_id\":\"44444444-5555-6666-7777-888888888888\",\"workflow_version\":3}",
"created_at": "2026-10-15T09:22:19.104233Z"
},
{
"uuid": "66666666-7777-8888-9999-000000000001",
"session_id": "22222222-3333-4444-5555-666666666666",
"request_url": "https://yourapp.com/webhooks/didit",
"response_status": 503,
"status": "In Progress",
"webhook_type": "status.updated",
"request_header": "{\"Content-Type\": \"application/json\", \"X-Signature\": \"a5e02a03404e1337a0198e6be15d34abbd053c658a0e51e5d0e78554213ef29b\", \"X-Signature-V2\": \"927e7cb770c94ce745939bff73f04aa200015f3bc64795ba46c2aaf78a6cedc5\", \"X-Signature-Simple\": \"e37b0d4c716c72bb5ae7127b9cc455d28ab4686e9e22312b4ec2327409a73302\", \"X-Timestamp\": \"1792056078\", \"User-Agent\": \"DiditWebhook/2.0 +https://didit.me\"}",
"request_body": "{\"application_id\":\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\"created_at\":1792056057,\"environment\":\"live\",\"event_id\":\"33333333-4444-5555-6666-777777777777\",\"sandbox_scenario\":null,\"session_id\":\"22222222-3333-4444-5555-666666666666\",\"status\":\"In Progress\",\"timestamp\":1792056078,\"vendor_data\":\"user-123\",\"webhook_type\":\"status.updated\",\"workflow_id\":\"44444444-5555-6666-7777-888888888888\",\"workflow_version\":3}",
"created_at": "2026-10-15T09:21:18.412345Z"
}
]API para listar entregas de webhooks de una sesión
Lista cada webhook que Didit envió para una sesión de verificación, con la URL, la respuesta de tu endpoint y los encabezados y payload exactos.
curl -X GET 'https://verification.didit.me/v3/session/22222222-3333-4444-5555-666666666666/webhooks/' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.webhooks.list(
"22222222-3333-4444-5555-666666666666",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.webhooks.list("22222222-3333-4444-5555-666666666666");
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.Webhooks.List(ctx, "22222222-3333-4444-5555-666666666666")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().webhooks().list("22222222-3333-4444-5555-666666666666");
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->webhooks->list('22222222-3333-4444-5555-666666666666');
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
didit.sessions.webhooks.list("22222222-3333-4444-5555-666666666666").each do |item|
puts item.to_h
endusing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.Webhooks.ListAsync("22222222-3333-4444-5555-666666666666");
Console.WriteLine(JsonSerializer.Serialize(result));[
{
"uuid": "66666666-7777-8888-9999-000000000002",
"session_id": "22222222-3333-4444-5555-666666666666",
"request_url": "https://yourapp.com/webhooks/didit",
"response_status": 200,
"status": "In Progress",
"webhook_type": "status.updated",
"request_header": "{\"Content-Type\": \"application/json\", \"X-Signature\": \"9188851d160b5b3aacfc946e4dde1f061b7e568662518942c927ddaf507f533d\", \"X-Signature-V2\": \"381236af514d3fb538579365ac5a24f2464ce1b8224c6e770c60d8201c43ecc5\", \"X-Signature-Simple\": \"4740131dc38f29e78a8508371979be74967d5307464494bd3148a03b4d6c8716\", \"X-Timestamp\": \"1792056139\", \"User-Agent\": \"DiditWebhook/2.0 +https://didit.me\"}",
"request_body": "{\"application_id\":\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\"created_at\":1792056057,\"environment\":\"live\",\"event_id\":\"33333333-4444-5555-6666-777777777777\",\"sandbox_scenario\":null,\"session_id\":\"22222222-3333-4444-5555-666666666666\",\"status\":\"In Progress\",\"timestamp\":1792056139,\"vendor_data\":\"user-123\",\"webhook_type\":\"status.updated\",\"workflow_id\":\"44444444-5555-6666-7777-888888888888\",\"workflow_version\":3}",
"created_at": "2026-10-15T09:22:19.104233Z"
},
{
"uuid": "66666666-7777-8888-9999-000000000001",
"session_id": "22222222-3333-4444-5555-666666666666",
"request_url": "https://yourapp.com/webhooks/didit",
"response_status": 503,
"status": "In Progress",
"webhook_type": "status.updated",
"request_header": "{\"Content-Type\": \"application/json\", \"X-Signature\": \"a5e02a03404e1337a0198e6be15d34abbd053c658a0e51e5d0e78554213ef29b\", \"X-Signature-V2\": \"927e7cb770c94ce745939bff73f04aa200015f3bc64795ba46c2aaf78a6cedc5\", \"X-Signature-Simple\": \"e37b0d4c716c72bb5ae7127b9cc455d28ab4686e9e22312b4ec2327409a73302\", \"X-Timestamp\": \"1792056078\", \"User-Agent\": \"DiditWebhook/2.0 +https://didit.me\"}",
"request_body": "{\"application_id\":\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\"created_at\":1792056057,\"environment\":\"live\",\"event_id\":\"33333333-4444-5555-6666-777777777777\",\"sandbox_scenario\":null,\"session_id\":\"22222222-3333-4444-5555-666666666666\",\"status\":\"In Progress\",\"timestamp\":1792056078,\"vendor_data\":\"user-123\",\"webhook_type\":\"status.updated\",\"workflow_id\":\"44444444-5555-6666-7777-888888888888\",\"workflow_version\":3}",
"created_at": "2026-10-15T09:21:18.412345Z"
}
]5xx o 404, de modo que una entrega fallida seguida de un reintento exitoso aparece como dos entradas con el mismo event_id dentro de request_body.
Para consultar una entrega, usa Obtener una entrega de webhook de una sesión. Para volver a enviarla después de corregir tu endpoint, usa Reenviar una entrega de webhook de una sesión.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, de usuario (KYC) o de empresa (KYB): el session_id que devuelve POST /v3/session/. El servidor lo resuelve en ambos tipos de sesión.
Debe ser un UUID válido. La ruta solo coincide con UUID bien formados, por lo que el enrutador de URL rechaza un valor mal formado antes de que se ejecute el código de la aplicación, y la respuesta es una página HTML 404 en lugar del envoltorio JSON {"detail": ...} que se muestra a continuación.
Respuesta
Todas las entregas registradas para la sesión, de la más reciente a la más antigua.
ID de entrega. Úsalo como {webhook_uuid} para obtener o reenviar esta entrega.
La sesión a la que pertenece la entrega (la sesión de la ruta).
URL a la que se envió la entrega.
Estado HTTP que devolvió tu endpoint. null mientras la entrega está en cola y aún no se ha intentado. Cuando no se recibe ninguna respuesta HTTP, Didit registra un estado propio: 504 cuando tu endpoint no respondió en 5 segundos, 503 para un fallo de conexión, 400 cuando la URL se rechazó por no ser segura (por ejemplo, una dirección privada o interna) y 404 para cualquier otro error de la solicitud. 400 o superior cuenta como entrega fallida.
Estado de la sesión cuando se generó el evento, por ejemplo In Progress, Approved o Declined.
Nombre de evento de webhook admitido. Usa exactamente estas cadenas en subscribed_events; los valores no admitidos se rechazan.
status.updated, data.updated, user.status.updated, user.data.updated, business.status.updated, business.data.updated, activity.created, transaction.created, transaction.status.updated, travel_rule.status.updated, workflow.compliance_changed, transaction_rule_suggestions.created, auth.signup, auth.login, auth.login_failed, auth.password_reset_requested, auth.password_reset_completed, auth.mfa_changed, auth.new_device, auth.account_locked, investigator.report.ready, investigator.decision.automated, investigator.decision.overridden, investigator.decision.contested, investigator.question.raised, investigator.automation.paused, investigator.rfi.answered, investigator.rfi.overdue, investigator.drift.detected, investigator.sla.breached, investigator.qa.failed, investigator.external.report.ready Texto JSON (una cadena) de los encabezados de la solicitud que envió Didit: Content-Type, X-Signature, X-Signature-V2, X-Signature-Simple, X-Timestamp y User-Agent. Analízalo con un parser JSON. Contiene firmas, nunca el secreto de firma.
Texto JSON (una cadena) del payload exacto que envió Didit, con las claves ordenadas, incluidos event_id y timestamp. Analízalo con un parser JSON; consulta Estructura del payload. Para una clave con alcance limitado sin media: read, las URL de medios que contiene son null; sin sessions: write, los tokens de sesión y los enlaces de verificación alojados son null. Un cuerpo modificado de esa forma ya no coincide con sus firmas. Didit no registra el cuerpo de la respuesta que devolvió tu endpoint.
Cuándo se creó la entrega.