curl -X PATCH 'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"subscribed_events": [
"status.updated",
"data.updated",
"transaction.created"
]
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.webhooks.destinations.update(
"11111111-2222-3333-4444-555555555555",
enabled=False,
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.webhooks.destinations.update("11111111-2222-3333-4444-555555555555", {
enabled: false,
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Webhooks.Destinations.Update(ctx, "11111111-2222-3333-4444-555555555555", didit.WebhooksDestinationsUpdateParams{
Enabled: didit.Bool(false),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.WebhooksDestinationsUpdateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.webhooks().destinations().update("11111111-2222-3333-4444-555555555555", WebhooksDestinationsUpdateParams.builder()
.enabled(false)
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->webhooks->destinations->update('11111111-2222-3333-4444-555555555555', [
'enabled' => false,
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.webhooks.destinations.update(
"11111111-2222-3333-4444-555555555555",
enabled: false
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Webhooks.Destinations.UpdateAsync("11111111-2222-3333-4444-555555555555", new WebhooksDestinationsUpdateParams
{
Enabled = false,
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "11111111-2222-3333-4444-555555555555",
"label": "Production session webhooks",
"url": "https://yourapp.com/webhooks/didit",
"enabled": false,
"webhook_version": "v3",
"secret_shared_key": "tno2NTeRC1ZK3sBOYlBJDyEzBVENl3pQ1AcZyAW0xnQ",
"secret_last4": "0xnQ",
"previous_secret_expires_at": null,
"subscribed_events": [
"status.updated",
"data.updated"
],
"created_by_email": null,
"created_by_name": null,
"created_at": "2026-01-04T08:00:00Z",
"updated_at": "2026-05-17T11:02:55Z",
"health_status": "healthy",
"failing_streak": 0,
"failing_since": null,
"last_success_at": "2026-05-17T09:21:18Z",
"environment": "live",
"summary": {
"total_deliveries": 12453,
"failed_deliveries": 14,
"error_rate_percentage": 0,
"min_response_time_ms": 41,
"avg_response_time_ms": 187,
"max_response_time_ms": 2103,
"last_delivery_at": "2026-05-17T09:21:18Z",
"metrics_window_days": 30
}
}更新 Webhook 目标 API
编辑 Didit Webhook 目标的标签、URL、启用状态、版本及订阅事件。支持程序化管理 Webhook,按次计费,无需签约。
curl -X PATCH 'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"subscribed_events": [
"status.updated",
"data.updated",
"transaction.created"
]
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.webhooks.destinations.update(
"11111111-2222-3333-4444-555555555555",
enabled=False,
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.webhooks.destinations.update("11111111-2222-3333-4444-555555555555", {
enabled: false,
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Webhooks.Destinations.Update(ctx, "11111111-2222-3333-4444-555555555555", didit.WebhooksDestinationsUpdateParams{
Enabled: didit.Bool(false),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.WebhooksDestinationsUpdateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.webhooks().destinations().update("11111111-2222-3333-4444-555555555555", WebhooksDestinationsUpdateParams.builder()
.enabled(false)
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->webhooks->destinations->update('11111111-2222-3333-4444-555555555555', [
'enabled' => false,
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.webhooks.destinations.update(
"11111111-2222-3333-4444-555555555555",
enabled: false
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Webhooks.Destinations.UpdateAsync("11111111-2222-3333-4444-555555555555", new WebhooksDestinationsUpdateParams
{
Enabled = false,
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "11111111-2222-3333-4444-555555555555",
"label": "Production session webhooks",
"url": "https://yourapp.com/webhooks/didit",
"enabled": false,
"webhook_version": "v3",
"secret_shared_key": "tno2NTeRC1ZK3sBOYlBJDyEzBVENl3pQ1AcZyAW0xnQ",
"secret_last4": "0xnQ",
"previous_secret_expires_at": null,
"subscribed_events": [
"status.updated",
"data.updated"
],
"created_by_email": null,
"created_by_name": null,
"created_at": "2026-01-04T08:00:00Z",
"updated_at": "2026-05-17T11:02:55Z",
"health_status": "healthy",
"failing_streak": 0,
"failing_since": null,
"last_success_at": "2026-05-17T09:21:18Z",
"environment": "live",
"summary": {
"total_deliveries": 12453,
"failed_deliveries": 14,
"error_rate_percentage": 0,
"min_response_time_ms": 41,
"avg_response_time_ms": 187,
"max_response_time_ms": 2103,
"last_delivery_at": "2026-05-17T09:21:18Z",
"metrics_window_days": 30
}
}更新 subscribed_events
发送 subscribed_events 时,请提供更新后应保持订阅的完整事件列表。该数组会替换之前的订阅集合。
{
"subscribed_events": [
"status.updated",
"data.updated",
"transaction.created",
"transaction.status.updated"
]
}
| 事件 | 含义 |
|---|---|
status.updated | 用户验证(KYC)或企业验证(KYB)会话的状态已变更。 |
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 | Travel Rule 交换的状态已变更。 |
workflow.compliance_changed | 已发布工作流的合规状态已变更。 |
transaction_rule_suggestions.created | 一次规则建议运行提出了新的规则变更。 |
investigator.*)和认证(auth.*)事件系列也受支持;完整列表请参阅 Webhook。
有关详细的事件说明和常见订阅集合,请参阅创建目标指南。授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
要更新的 Webhook 目标的 UUID。
请求体
新的人类可读名称。
新目标 URL。在应用内必须唯一。
设为 false 可暂停向此目标的投递而无需将其删除。
用于未来投递的新 payload 模式版本。
v1, v2, v3 此 Webhook 目标的事件过滤器。Didit 仅投递事件类型与这些值之一完全匹配的 Webhook,不支持通配符订阅。发送时,列表必须包含至少一个有效事件(显式传入 [] 将被拒绝并返回 400);列表为空的目标(创建时省略该字段)不会接收任何内容。更新时,列表会被整体替换,绝不会进行合并。
1支持的 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 ["status.updated", "data.updated"]
响应
已更新 Webhook 目标。响应体结构与 GET /v3/webhook/destinations/{destination_uuid}/ 相同。
v1, v2, v3 目标当前签名密钥的最后四位字符,以便您区分不同的密钥。不足以用于验证签名。
此 Webhook 目标的事件过滤器。Didit 仅投递事件类型与这些值之一完全匹配的 Webhook,不支持通配符订阅。发送时,列表必须包含至少一个有效事件(显式传入 [] 将被拒绝并返回 400);列表为空的目标(创建时省略该字段)不会接收任何内容。更新时,列表会被整体替换,绝不会进行合并。
1支持的 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 ["status.updated", "data.updated"]
创建该目标的 Business Console 成员的邮箱。通过 API 密钥创建的目标为 null。
创建该目标的 Business Console 成员姓名。使用 API 密钥创建的目标为 null。
投递健康状态。failing:自该目标上次成功响应以来,已有 3 个或更多连续事件在首次投递尝试时失败(参见 failing_streak)。degraded:非 failing 状态,但在过去 24 小时内有一次投递尝试失败,且后续没有尝试成功投递该事件;成功投递该事件的重试或重新发送会清除此状态。healthy:均非上述情况。独立于 enabled。失败的尝试是指响应 HTTP 400 或以上,或者完全没有响应的尝试。
healthy, degraded, failing 在最近 30 天内,自该目标上次成功响应以来,首次投递尝试失败的连续事件数量。重试不计入,任何成功的尝试(包括重试或重新发送)都会结束该连续记录。自上次成功以来没有事件失败时为 0。
当前 failing_streak 中第一次失败尝试的时间。当 failing_streak 为 0 时为 null。
在过去 30 天内,目标上次以低于 400 的 HTTP 状态响应投递的时间。如果在此时间窗口内没有以低于 400 的 HTTP 状态响应,则为 null。
拥有该目标的应用的环境。
live, sandbox 最近 metrics_window_days(30)天的投递指标。last_delivery_at 为最近一次尝试的时间,无论其何时发生。
Show child attributes
Show child attributes