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

# 列出 Webhook 目标 API

> 通过 Didit 获取全部 Webhook 目标及其 Webhook 版本、订阅事件、30 天投递指标和健康状态。按次计费。



列出 Webhook 目标 API 提示词
        将提示词复制到剪贴板



      
      

\<pre>

\`List every webhook destination configured for my Didit application through the Management API.

Endpoint:
GET https://verification.didit.me/v3/webhook/destinations/

Authentication:
Use the x-api-key header with my Didit API key.

Goal:
\- Get every webhook destination (URL, version, subscribed events, delivery health) for my application. Use this to build a back-office "Webhooks" screen or to audit which destinations are receiving which events.

Behavior:
\- Returns a JSON array (not paginated) of destinations ordered by created_at.
\- The list never includes the signing secret (secret_shared_key) and has no summary object. Each item carries secret_last4, the last four characters of the secret, so you can tell secrets apart. Read the full secret from GET /v3/webhook/destinations/{destination_uuid}/.
\- Each item carries flat delivery metrics for the last 30 days (metrics_window_days is always 30): deliveries_count, failed_deliveries_count, average_response_time_ms and error_rate_percentage. last_delivery_at is the most recent attempt.
\- daily_points has 30 entries, oldest first, one per UTC day: { date, total_deliveries, failed_deliveries }. Days without deliveries carry zeros.
\- health_status is "failing" when 3 or more consecutive events failed their first delivery attempt since the destination last answered successfully (failing_streak counts them, failing_since is when the first one failed), "degraded" when an attempt failed in the last 24 hours and no later attempt has delivered that event, and "healthy" otherwise. It does not reflect enabled.
\- last_success_at is when the destination last answered under HTTP 400 in the last 30 days (null if it has not).
\- created_by_email and created_by_name name the Business Console member who created the destination; both are null for a destination created with an API key.
\- environment is "live" or "sandbox", from the application.

Example call:
curl -X GET "https://verification.didit.me/v3/webhook/destinations/" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- uuid — destination id; use as {destination_uuid} in subsequent calls.
\- url, label, enabled — basic config.
\- webhook_version — payload schema version ("v1", "v2", or "v3"; v3 is current).
\- subscribed_events — list of event names this destination receives. There is no wildcard.
\- health_status: the signal to alert on. failing_streak and failing_since tell you how long a destination has been failing.

Failure modes:
\- 401 — missing or malformed x-api-key.
\- 403 — canonical { "detail": "You do not have permission to perform this action." } envelope.
\- 429 — rate limited; back off and retry.

Side effects: none. This is a pure read.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

粘贴到

## 目标健康状态`health_status` 用于汇总目标端对投递请求的响应情况。| 取值 | 含义 |
| - | - |
| `failing` | 自目标端上次成功响应以来，连续有 3 个或更多事件的首次投递尝试失败。`failing_streak` 记录这些事件的数量，`failing_since` 为第一次失败的时间。 |
| `degraded` | 未处于 failing 状态，但过去 24 小时内有一次投递尝试失败，且之后没有任何尝试成功投递该事件。重试或重新发送并成功投递该事件后，此状态会被清除。 |
| `healthy` | 既不是 failing，也不是 degraded。 |失败的尝试是指目标端返回 HTTP 400 或更高状态码，或者完全没有响应（超时、连接被拒绝或地址被屏蔽）。
重试不会增加 `failing_streak`。任何一次成功的尝试（包括重试或重新发送）都会结束连续失败。
`health_status` 与 `enabled` 相互独立。投递指标和 `daily_points` 涵盖最近 30 天（`metrics_window_days`）。
`daily_points` 始终包含 30 条记录，每个 UTC 日一条，按从最早到最近的顺序排列。## 相关内容- [获取 Webhook 目标](https://docs.didit.me/zh/management-api/webhook/get-destination.md)：读取单个目标及其签名密钥和投递摘要。
- [Webhook 指南](https://docs.didit.me/zh/integration/webhooks.md)：签名验证、重试和 payload。


## OpenAPI

````yaml zh/openapi-25.json GET /v3/webhook/destinations/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 身份证件验证 API。使用 x-api-key 请求头进行身份验证。
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/webhook/destinations/:
    get:
      tags:
        - Webhook
      summary: 列出 Webhook 目标
      description: >-
        列出所有 Webhook 目标（未分页数组，最早的优先）。每项包含目标的配置、过去 30
        天的投递指标（`metrics_window_days`，每天一个 `daily_points`
        条目）以及其健康状态（`health_status`、`failing_streak`、`failing_since`、`last_success_at`）。列表没有
        `summary` 对象，且绝不包含签名密钥：每项仅显示 `secret_last4`。获取单个目标（`GET
        /v3/webhook/destinations/{destination_uuid}/`）以读取 `secret_shared_key`。
      operationId: list_webhook_destinations
      responses:
        '200':
          description: Webhook 目标列表（未分页，最早的优先）。
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    uuid:
                      type: string
                      format: uuid
                      description: 目标的稳定标识符；在更新/删除时用作 `{destination_uuid}`。
                    label:
                      type: string
                      description: 在 Console 中显示的便于人类阅读的名称。
                    url:
                      type: string
                      format: uri
                      description: 接收包含 Webhook payload 的 `POST` 请求的目标 URL。
                    enabled:
                      type: boolean
                      description: 为 `false` 时，Didit 会静默跳过向此目标的投递。
                    webhook_version:
                      type: string
                      enum:
                        - v1
                        - v2
                        - v3
                      description: 发送至该目标的 payload 架构版本。`v3` 为当前/推荐格式。
                    subscribed_events:
                      $ref: '#/components/schemas/WebhookSubscribedEvents'
                    subscribed_events_count:
                      type: integer
                      description: 已缓存的 `subscribed_events` 长度，便于 UI 渲染。
                    deliveries_count:
                      type: integer
                      description: 过去 30 天内向此目标发起的投递尝试次数（包括重试）。
                    failed_deliveries_count:
                      type: integer
                      description: >-
                        过去 30 天内该目标以 HTTP 400
                        或更高状态码响应、或未作响应（超时、连接被拒或地址被屏蔽）的投递尝试次数。
                    average_response_time_ms:
                      type: integer
                      nullable: true
                      description: 过去 30 天内的平均响应时间（毫秒），四舍五入为整数。在该时间窗口内没有投递时为 `null`。
                    error_rate_percentage:
                      type: integer
                      description: >-
                        过去 30 天内的 `round(failed_deliveries_count /
                        deliveries_count * 100)`；无投递记录时为 `0`。
                    last_delivery_at:
                      type: string
                      format: date-time
                      nullable: true
                      description: 最近一次投递尝试的时间戳（成功或失败）。如果从未投递则为 `null`。
                    metrics_window_days:
                      type: integer
                      description: >-
                        `deliveries_count`、`failed_deliveries_count`、`average_response_time_ms`、`error_rate_percentage`
                        和 `daily_points` 所覆盖的时间窗口长度（天）。始终为 `30`。
                    health_status:
                      type: string
                      enum:
                        - healthy
                        - degraded
                        - failing
                      description: >-
                        投递健康状态。`failing`：自该目标上次成功响应以来，已有 3 个或更多连续事件在首次投递尝试时失败（参见
                        `failing_streak`）。`degraded`：非 failing 状态，但在过去 24
                        小时内有一次投递尝试失败，且后续没有尝试成功投递该事件；成功投递该事件的重试或重新发送会清除此状态。`healthy`：均非上述情况。独立于
                        `enabled`。失败的尝试是指响应 HTTP 400 或以上，或者完全没有响应的尝试。
                    failing_streak:
                      type: integer
                      description: >-
                        在最近 30
                        天内，自该目标上次成功响应以来，首次投递尝试失败的连续事件数量。重试不计入，任何成功的尝试（包括重试或重新发送）都会结束该连续记录。自上次成功以来没有事件失败时为
                        `0`。
                    failing_since:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        当前 `failing_streak` 中第一次失败尝试的时间。当 `failing_streak` 为 `0`
                        时为 `null`。
                    last_success_at:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        在过去 30 天内，目标上次以低于 400 的 HTTP 状态响应投递的时间。如果在此时间窗口内没有以低于
                        400 的 HTTP 状态响应，则为 `null`。
                    environment:
                      type: string
                      enum:
                        - live
                        - sandbox
                      description: 拥有该目标的应用的环境。
                    daily_points:
                      type: array
                      description: >-
                        过去 30 天内每个 UTC
                        天对应一个条目，按时间从早到晚排列，包含没有投递的日期。统计每一次尝试，包括重试在内。
                      items:
                        type: object
                        properties:
                          date:
                            type: string
                            format: date
                            description: UTC 日期。
                          total_deliveries:
                            type: integer
                            description: 当天进行的投递尝试次数。
                          failed_deliveries:
                            type: integer
                            description: 当天收到 HTTP 400 或更高状态码响应、或者根本未收到响应的尝试次数。
                    secret_last4:
                      type: string
                      description: 目标当前签名密钥的最后四位字符，以便您区分不同的密钥。不足以用于验证签名。
                    created_by_email:
                      type: string
                      nullable: true
                      description: 创建该目标的 Business Console 成员的邮箱。通过 API 密钥创建的目标为 `null`。
                    created_by_name:
                      type: string
                      nullable: true
                      description: 创建该目标的 Business Console 成员姓名。使用 API 密钥创建的目标为 `null`。
                    created_at:
                      type: string
                      format: date-time
                    updated_at:
                      type: string
                      format: date-time
              examples:
                Two destinations:
                  value:
                    - uuid: 11111111-2222-3333-4444-555555555555
                      label: Production session webhooks
                      url: https://yourapp.com/webhooks/didit
                      enabled: true
                      webhook_version: v3
                      subscribed_events:
                        - status.updated
                        - data.updated
                      subscribed_events_count: 2
                      deliveries_count: 12453
                      failed_deliveries_count: 14
                      average_response_time_ms: 187
                      error_rate_percentage: 0
                      last_delivery_at: '2026-05-17T09:21:18Z'
                      metrics_window_days: 30
                      health_status: healthy
                      failing_streak: 0
                      failing_since: null
                      last_success_at: '2026-05-17T09:21:18Z'
                      environment: live
                      daily_points:
                        - date: '2026-04-18'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-19'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-20'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-21'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-22'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-23'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-24'
                          total_deliveries: 415
                          failed_deliveries: 9
                        - date: '2026-04-25'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-26'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-27'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-28'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-29'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-04-30'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-01'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-02'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-03'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-04'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-05'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-06'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-07'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-08'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-09'
                          total_deliveries: 415
                          failed_deliveries: 5
                        - date: '2026-05-10'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-11'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-12'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-13'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-14'
                          total_deliveries: 415
                          failed_deliveries: 0
                        - date: '2026-05-15'
                          total_deliveries: 416
                          failed_deliveries: 0
                        - date: '2026-05-16'
                          total_deliveries: 416
                          failed_deliveries: 0
                        - date: '2026-05-17'
                          total_deliveries: 416
                          failed_deliveries: 0
                      secret_last4: 0xnQ
                      created_by_email: null
                      created_by_name: null
                      created_at: '2026-01-04T08:00:00Z'
                      updated_at: '2026-04-22T14:09:11Z'
                    - uuid: 22222222-3333-4444-5555-666666666666
                      label: Staging mirror
                      url: https://staging.yourapp.com/webhooks/didit
                      enabled: false
                      webhook_version: v3
                      subscribed_events:
                        - status.updated
                      subscribed_events_count: 1
                      deliveries_count: 0
                      failed_deliveries_count: 0
                      average_response_time_ms: null
                      error_rate_percentage: 0
                      last_delivery_at: null
                      metrics_window_days: 30
                      health_status: healthy
                      failing_streak: 0
                      failing_since: null
                      last_success_at: null
                      environment: live
                      daily_points:
                        - date: '2026-04-18'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-19'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-20'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-21'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-22'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-23'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-24'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-25'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-26'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-27'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-28'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-29'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-04-30'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-01'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-02'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-03'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-04'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-05'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-06'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-07'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-08'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-09'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-10'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-11'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-12'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-13'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-14'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-15'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-16'
                          total_deliveries: 0
                          failed_deliveries: 0
                        - date: '2026-05-17'
                          total_deliveries: 0
                          failed_deliveries: 0
                      secret_last4: k9Qe
                      created_by_email: reviewer@example.com
                      created_by_name: Example Reviewer
                      created_at: '2026-03-12T10:15:02Z'
                      updated_at: '2026-03-12T10:15:02Z'
        '403':
          description: API 密钥缺失、格式错误、已过期或作用域属于其他应用。密钥缺失返回 `403`；密钥错误、已撤销或已过期返回 `401`。
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: 超出速率限制；请退避并重试。
          content:
            application/json:
              examples:
                Throttled:
                  value:
                    detail: Request was throttled. Expected available in 30 seconds.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET 'https://verification.didit.me/v3/webhook/destinations/'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.webhooks.destinations.list()
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.webhooks.destinations.list();
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Webhooks.Destinations.List(ctx)\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            var result = client.webhooks().destinations().list();
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->webhooks->destinations->list();
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            didit.webhooks.destinations.list.each do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY.
            using var client = new DiditClient();

            var result = await client.Webhooks.Destinations.ListAsync();
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    WebhookSubscribedEvents:
      type: array
      description: >-
        此 Webhook 目标的事件过滤器。Didit 仅投递事件类型与这些值之一完全匹配的
        Webhook，不支持通配符订阅。发送时，列表必须包含至少一个有效事件（显式传入 `[]` 将被拒绝并返回
        400）；列表为空的目标（创建时省略该字段）不会接收任何内容。更新时，列表会被整体替换，绝不会进行合并。
      minItems: 1
      uniqueItems: true
      items:
        $ref: '#/components/schemas/WebhookEvent'
      example:
        - status.updated
        - data.updated
    WebhookEvent:
      type: string
      description: 支持的 Webhook 事件名称。请在 `subscribed_events` 中使用这些完全匹配的字符串；不支持的值将被拒绝。
      enum:
        - 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
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        您的应用 API 密钥，可在 Business Console 的“开发者 -> API
        密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域：针对每个资源设为无权限、只读或读写，限定于特定工作流或已通过的会话、限定于
        IP 地址列表，以及设置到期日期。401 表示密钥错误、已撤销或已过期；403 表示未发送密钥、密钥无权访问该资源或操作，或请求来自其 IP
        列表之外的地址；在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF
        URL 将为 null；没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅
        https://docs.didit.me/console/api-keys。

````

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