> ## 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 Management APIでアプリケーションのWebhook設定を取得します。従来のWebhook URLとシークレット、Webhookの送信先、購読可能なイベント、データ保持ポリシー、ウォレットの戻り先ホストを確認できます。



Webhook設定取得APIのプロンプト
        プロンプトをクリップボードにコピー



      
      

\<pre>

\`Read my Didit application's webhook configuration through the Management API.

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

Authentication:
Use the x-api-key header with my Didit API key. A scoped API key needs webhooks: read.

Goal:
\- Get every setting that controls how Didit sends webhooks for my application, plus the data-retention policy and the Digital ID wallet return hosts, in one call. Use it to audit the setup or to show the current configuration in a back office.

Behavior:
\- Didit delivers webhooks to webhook destinations (/v3/webhook/destinations/). Each destination has its own url, webhook_version, secret_shared_key and subscribed_events.
\- webhook_url, webhook_version and secret_shared_key at the top level are the application-level (legacy) webhook. Didit uses them only while the application has no enabled destination, and then only for status.updated and data.updated.
\- Every create, update or delete of a destination sets webhook_url to the URL of the oldest enabled destination, or null when none is enabled.
\- API-key callers always receive the application secret and every destination secret in full.

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

What to read from the response:
\- endpoints: every destination, oldest first, with uuid, label, url, enabled, webhook_version, secret_shared_key and subscribed_events. Verify each webhook with the secret of the destination it was sent to.
\- available_events: every event type you can subscribe a destination to ({ value, label }).
\- webhook_url, webhook_version, secret_shared_key: the legacy webhook, only relevant when no destination is enabled.
\- data_retention_months (null means no automatic deletion), face_retention_policy and face_retention_days: the retention policy.
\- allowed_return_hosts: hosts a Digital ID wallet verification may send the person back to.
\- allowed_domains: web origins the hosted verification flow may be embedded in and may send the user back to; empty means no restriction.
\- capture_method: MOBILE or MOBILE_AND_DESKTOP. A legacy setting with no effect; capture options are set per workflow.

Failure modes:
\- 401: { "detail": "This API key has expired." }
\- 403: { "detail": "You do not have permission to perform this action." } for a missing key (a wrong, revoked or expired key gets 401); { "detail": "This API key has no read access to webhooks." } for a scoped key without webhooks: read.
\- 429: more than 600 GET requests per minute with this key; wait for Retry-After.

Side effects: none. This is a pure read, and the response contains signing secrets: never log it.

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

\</pre>



      
      

貼り付け先

このエンドポイントは、送信先の仕組みが導入される前から存在するアプリケーション単位のWebhookを、送信先の一覧とあわせて返します。DiditはWebhookを[Webhookの送信先](https://docs.didit.me/ja/management-api/webhook/list-destinations.md)に配信し、各Webhookはそれぞれ固有の`secret_shared_key`で署名されます。トップレベルの`webhook_url`、`webhook_version`、`secret_shared_key`は、有効になっている送信先が1つもない場合にのみ使用され、その場合も`status.updated`と`data.updated`に限られます。> [!WARNING]
>
> レスポンスには、アプリケーションのすべての署名用シークレットが含まれます。ログやクライアント側のコードに含めないでください。これらの設定を変更するには、[Webhook設定の更新](https://docs.didit.me/ja/management-api/webhook/update-config.md)を使用してください。署名検証とペイロードについては、[Webhookガイド](https://docs.didit.me/ja/integration/webhooks.md)を参照してください。保持期間に関するフィールドについては、[データ保持](https://docs.didit.me/ja/console/data-retention.md)を参照してください。


## OpenAPI

````yaml ja/openapi-25.json GET /v3/webhook/
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/:
    get:
      tags:
        - Webhook
      summary: Webhook設定を取得
      description: >-
        アプリケーションのWebhook設定を1回の呼び出しで返します。返される内容は、署名シークレットを含むすべての[Webhookの送信先](https://docs.didit.me/ja/management-api/webhook/list-destinations)、送信先がサブスクライブできるイベントタイプ、アプリケーションレベル（レガシー）のWebhook
        URL、バージョン、シークレット、データおよび生体認証テンプレートの保持ポリシー、Digital
        IDウォレットの戻り先ホストです。DiditはWebhookを送信先に配信し、各Webhookは配信先の送信先ごとに固有の`secret_shared_key`で署名されます。最上位の`webhook_url`、`webhook_version`、`secret_shared_key`は、有効な送信先が1つもない間のみ使用され、その場合も`status.updated`と`data.updated`に限られます。レスポンスには署名シークレットが含まれるため、ログやクライアント側のコードに含めないでください。スコープ付きのAPIキーには`webhooks:
        read`が必要です。
      operationId: get_webhook_config
      parameters: []
      responses:
        '200':
          description: Webhookの設定。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookConfig'
              examples:
                One destination:
                  value:
                    webhook_url: https://yourapp.com/webhooks/didit
                    webhook_version: v3
                    secret_shared_key: dGhpcy1pcy10aGUtYXBwLWxldmVsLXNlY3JldC0wMDA
                    capture_method: MOBILE
                    data_retention_months: 24
                    face_retention_policy: delete_with_session
                    face_retention_days: null
                    biometric_consent_mode: auto
                    available_events:
                      - value: status.updated
                        label: Session status updated
                      - value: data.updated
                        label: Session data updated
                      - value: user.status.updated
                        label: User status updated
                      - value: user.data.updated
                        label: User data updated
                      - value: business.status.updated
                        label: Business status updated
                      - value: business.data.updated
                        label: Business data updated
                      - value: activity.created
                        label: Activity created
                      - value: transaction.created
                        label: Transaction created
                      - value: transaction.status.updated
                        label: Transaction status updated
                      - value: travel_rule.status.updated
                        label: Travel Rule Status Updated
                      - value: workflow.compliance_changed
                        label: Workflow Compliance Changed
                    allowed_return_hosts:
                      - shop.example.com
                    endpoints:
                      - uuid: 11111111-2222-3333-4444-555555555555
                        label: Production session webhooks
                        url: https://yourapp.com/webhooks/didit
                        enabled: true
                        webhook_version: v3
                        secret_shared_key: dGhpcy1pcy1hbi1leGFtcGxlLXNlY3JldC0wMDAwMDA
                        subscribed_events:
                          - status.updated
                          - data.updated
                        created_at: '2026-01-04T08:00:00.000000Z'
                        updated_at: '2026-04-22T14:09:11.523671Z'
        '401':
          description: >-
            APIキーの有効期限が切れています。有効期限を指定して作成され、その期限が過ぎています。誤ったキーや失効したキーでも`401`が返されます。キーがない場合は`403`が返されます。
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 人が読めるエラーメッセージ。
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            リクエストは許可されていません。`x-api-key`がない、無効、または失効している場合は`You do not have
            permission to perform this
            action.`が返されます。このエンドポイントに必要なアクセス権のないスコープ付きキーには不足しているアクセス権を示すメッセージが返され、IP許可リスト外から使用されたキーには`This
            API key can't be used from this IP address.`が返されます。
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 人が読めるエラーメッセージ。
              examples:
                Missing or invalid key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without webhooks read:
                  value:
                    detail: This API key has no read access to webhooks.
                Outside the IP allowlist:
                  value:
                    detail: This API key can't be used from this IP address.
        '429':
          description: >-
            レート制限を超過しました。このAPIキーで、現在の1分間のウィンドウ内にGETリクエストが600件を超えました。`Retry-After`秒待ってから再試行してください。
          headers:
            Retry-After:
              description: 再試行までに待機する秒数。
              schema:
                type: integer
                minimum: 1
                example: 30
            X-RateLimit-Limit:
              description: 1分間のウィンドウで許可されるリクエスト数（600）。
              schema:
                type: integer
                example: 600
            X-RateLimit-Remaining:
              description: 現在のウィンドウで残っているリクエスト数。
              schema:
                type: integer
                example: 0
            X-RateLimit-Reset:
              description: 現在のウィンドウがリセットされるUnix時刻(秒)。
              schema:
                type: integer
                example: 1792056120
            X-RateLimit-Scope:
              description: 超過した予算の名前。
              schema:
                type: string
                example: generic-get
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 人が読めるエラーメッセージ。
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X GET 'https://verification.didit.me/v3/webhook/' \
              -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.retrieve_config()
            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.retrieveConfig();
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Webhooks.RetrieveConfig(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().retrieveConfig();
            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->retrieveConfig();
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.webhooks.retrieve_config
            puts result.to_h
        - 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.RetrieveConfigAsync();
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    WebhookConfig:
      type: object
      description: アプリケーションレベルのWebhook設定、保持ポリシー、Digital IDウォレットの戻り先ホスト、およびすべてのWebhookの送信先。
      required:
        - webhook_url
        - webhook_version
        - secret_shared_key
        - capture_method
        - data_retention_months
        - face_retention_policy
        - face_retention_days
        - available_events
        - allowed_return_hosts
        - endpoints
      properties:
        webhook_url:
          type: string
          format: uri
          nullable: true
          description: >-
            アプリケーションレベル（レガシー）のWebhook
            URL。Diditは、アプリケーションに有効な送信先が1つもない間に限りこのURLに送信し、その場合も`status.updated`と`data.updated`のみを送信します。送信先を作成、更新、削除するたびに、この値は最も古い有効な送信先のURL、または有効な送信先がない場合は`null`に設定されます。
        webhook_version:
          type: string
          enum:
            - v1
            - v2
            - v3
          description: 従来の`webhook_url`のペイロードバージョン。各送信先はそれぞれ独自の`webhook_version`を持ちます。
        secret_shared_key:
          type: string
          description: >-
            アプリケーションレベルの署名シークレット（43文字のURLセーフなトークン）。従来の`webhook_url`への配信にのみ署名し、各送信先はそれぞれの`secret_shared_key`で署名します。APIキーで呼び出した場合は常に全体が返されます。`read:webhooks`を持たないConsoleユーザーには空文字列が返されます。
        capture_method:
          type: string
          enum:
            - MOBILE
            - MOBILE_AND_DESKTOP
          description: レガシーのアプリケーション設定。認証フローではこの値は読み取られません。撮影オプションはワークフローごとに設定します。
        data_retention_months:
          type: integer
          nullable: true
          minimum: 1
          maximum: 120
          description: >-
            自動削除までの期間。この月数（1か月は30日として計算）より前に作成されたユーザー認証セッションは自動的に削除され、この削除は元に戻せません。`null`の場合、セッションは自動削除されません。[データ保持](https://docs.didit.me/ja/console/data-retention)を参照してください。
        face_retention_policy:
          type: string
          enum:
            - delete_with_session
            - retain_until_user_deleted
          description: >-
            セッションの削除時に、そのセッションの顔エンベディングをどう扱うか。`delete_with_session`（デフォルト）はセッションとともに削除します。`retain_until_user_deleted`はオプトインの[生体認証テンプレートの保持](https://docs.didit.me/ja/console/data-retention#生体認証テンプレートの保持)です。Userに紐付いた画像を含まない生体認証テンプレートが、保持期間が終了するか、Userが削除されるか、お客様が消去するまで、セッションとは別に管理されます。
        face_retention_days:
          type: integer
          nullable: true
          minimum: 1
          maximum: 3650
          description: >-
            `retain_until_user_deleted`における生体認証テンプレートの保持期間（日数）。このポリシーを設定する場合は必須です。
        biometric_consent_mode:
          type: string
          enum:
            - auto
            - always
            - never
          description: >-
            ホスト型フローとネイティブSDKが、顔の撮影前に本人へ生体認証についての明示的な同意を求める条件です。`auto`（デフォルト）は、トリガーに該当する場合にのみ同意を求めます。該当するのは、申告された州、本人のIP、または本人確認書類の発行元がイリノイ州、テキサス州、コロラド州のいずれかである場合、または州が不明なまま本人が米国にいると見られる場合です。`always`は、ワークフローで顔を撮影するすべての人に同意を求めます。`never`はこのステップを一切表示しないため、セルフィーの前にお客様自身で同意を取得する必要があります。変更はすべて監査ログに記録されます。詳しくは[生体認証の同意](https://docs.didit.me/ja/getting-started/biometric-consent)を参照してください。
        available_events:
          type: array
          description: 送信先がサブスクライブできるすべてのイベントタイプと、その表示ラベルです。
          items:
            type: object
            required:
              - value
              - label
            properties:
              value:
                $ref: '#/components/schemas/WebhookEvent'
              label:
                type: string
                description: 表示ラベルです。例：`Session status updated`。
        allowed_return_hosts:
          type: array
          maxItems: 20
          description: >-
            スタンドアロンのDigital
            IDウォレット検証が`return_url`でユーザーを戻すことができるホスト名(完全一致、HTTPSのみ)です。ホワイトラベルドメインも常に許可されます。[戻り先を登録する](https://docs.didit.me/ja/standalone-apis/digital-id-wallets#戻り先を登録する)を参照してください。
          items:
            type: string
            maxLength: 253
        endpoints:
          type: array
          description: >-
            アプリケーションのすべてのWebhookの送信先を、それぞれの署名シークレットとともに古い順に示します。ここでは読み取り専用です。送信先の管理には`/v3/webhook/destinations/`エンドポイントを使用してください。
          items:
            $ref: '#/components/schemas/WebhookConfigDestination'
        allowed_domains:
          type: array
          maxItems: 50
          items:
            type: string
            maxLength: 300
          description: >-
            ホスト型の検証フローを埋め込むことができ、セッションのコールバックでユーザーを戻すことができるオリジンです（例：`https://app.example.com`。`http`は`localhost`の場合のみ）。サーバー間の呼び出しには影響しません。空のリストは制限なしを意味します。Diditは各オリジンを小文字で、デフォルトポートを除いて保存します。無効なエントリは`allowed_domains`で`400`として失敗します。
          example:
            - https://app.example.com
    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
    WebhookConfigDestination:
      type: object
      description: >-
        Webhook設定に表示されるWebhookの送信先です（配信メトリクスは含みません）。`GET
        /v3/webhook/destinations/{destination_uuid}/`では配信サマリーが追加されます。
      required:
        - uuid
        - label
        - url
        - enabled
        - webhook_version
        - secret_shared_key
        - subscribed_events
        - created_at
        - updated_at
      properties:
        uuid:
          type: string
          format: uuid
          description: 送信先ID。
        label:
          type: string
          maxLength: 255
          description: 人が読める名前。
        url:
          type: string
          format: uri
          maxLength: 2000
          description: DiditがイベントをPOSTするHTTPSエンドポイントです。
        enabled:
          type: boolean
          description: '`false`にすると、この送信先への配信が一時停止されます。'
        webhook_version:
          type: string
          enum:
            - v1
            - v2
            - v3
          description: この送信先に送信されるペイロードバージョン。
        secret_shared_key:
          type: string
          description: >-
            この送信先の署名シークレット(43文字のURLセーフなトークン)。各Webhookは、送信された送信先のシークレットで検証してください。APIキーで呼び出した場合は常に全体が返されます。`read:webhooks`を持たないコンソールユーザーには空文字列が返されます。
        subscribed_events:
          type: array
          uniqueItems: true
          description: この送信先に配信されるイベントタイプです。イベントを指定せずに送信先が作成された場合は空になり、その場合は何も受信しません。
          items:
            $ref: '#/components/schemas/WebhookEvent'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API
        keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権（なし、読み取り、書き込み）、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください:
        https://docs.didit.me/console/api-keys

````

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