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"
}
]查询会话 Webhook 投递记录 API
列出 Didit 为某个验证会话发送的全部 Webhook,包括目标 URL、贵方端点的响应以及准确的请求头和 payload。
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 或 404 响应后进行的自动重试。因此,一次失败的投递后紧跟一次成功的重试,会在 request_body 中以两条记录的形式出现,且二者的 event_id 相同。
如需查看单次投递,请使用获取会话 Webhook 投递。如需在修复 endpoint 后重新发送,请使用重新发送会话 Webhook 投递。授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
用户(KYC)或企业(KYB)验证会话的 UUID:由 POST /v3/session/ 返回的 session_id。服务器会针对两种会话类型进行解析。
必须是有效的 UUID。 该路由仅匹配格式正确的 UUID,因此格式错误的值在任何应用代码运行之前就会被 URL 路由器拒绝,并且响应将是 404 HTML 页面,而不是如下所示的 JSON {"detail": ...} 封装。
响应
为该会话记录的每次投递,最新的排在最前。
投递 ID。将其用作 {webhook_uuid} 以获取或重新发送此投递。
投递记录所属的会话(路径中的会话)。
投递发送的目标 URL。
您的 endpoint 返回的 HTTP 状态码。在投递已排队且尚未尝试时为 null。未收到 HTTP 响应时,Didit 会记录自身的状态码:您的 endpoint 未在 5 秒内响应记录为 504,连接失败记录为 503,因 URL 不安全而被拒绝(例如私有或内部地址)记录为 400,其他任何请求错误记录为 404。400 或更高视为投递失败。
生成事件时的会话状态,例如 In Progress、Approved 或 Declined。
支持的 Webhook 事件名称。请在 subscribed_events 中使用这些完全匹配的字符串;不支持的值将被拒绝。
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 Didit 发送的请求头的 JSON 文本(字符串):Content-Type、X-Signature、X-Signature-V2、X-Signature-Simple、X-Timestamp 和 User-Agent。请使用 JSON 解析器进行解析。其中包含签名,绝不会包含签名密钥。
Didit 发送的准确 payload 的 JSON 文本(字符串),键已排序,包括 event_id 和 timestamp。请使用 JSON 解析器进行解析;参见 Payload 结构。对于没有 media: read 权限的作用域密钥,其中的媒体 URL 为 null;没有 sessions: write 权限时,会话 token 和托管验证链接为 null。以此方式修改的请求体将不再与其签名匹配。Didit 不会记录您的 endpoint 返回的响应体。
投递创建的时间。