> ## 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 में application-level webhook बदलें, secret रोटेट करें, डेटा और बायोमेट्रिक टेम्पलेट प्रतिधारण सेट करें, और Digital ID वॉलेट रिटर्न होस्ट जोड़ें।



Webhook कॉन्फ़िगरेशन अपडेट करने के लिए API प्रॉम्प्ट
        प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें



      
      

\<pre>

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

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

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

Goal:
\- Change application-level settings: the legacy webhook URL and version, the application secret, the data-retention and biometric-template retention policy, the Digital ID wallet return hosts, or the allowed origins of the hosted flow.

Behavior:
\- Partial update: send only the fields to change. The response is the full configuration, the same shape as GET /v3/webhook/.
\- webhook_url and webhook_version change the application-level (legacy) webhook only. Didit uses it only while the application has no enabled destination, and only for status.updated and data.updated. It does not create a destination, and the next create, update or delete of a destination replaces webhook_url. To receive webhooks, create a destination with POST /v3/webhook/destinations/ instead.
\- rotate_secret_key: true replaces the application-level secret_shared_key immediately. Destination secrets are not changed. Each call generates a new secret, so it is not idempotent.
\- data_retention_months (1 to 120, or null for no automatic deletion): user verification sessions older than this many 30-day months are deleted automatically. Business verification sessions are not affected.
\- face_retention_policy (delete_with_session or retain_until_user_deleted) and face_retention_days (1 to 3650). retain_until_user_deleted needs face_retention_days in the same request or already set.
\- allowed_return_hosts replaces the registered list: up to 20 bare hostnames such as app.example.com (no scheme, port, path or wildcard). Send [] to clear it.
\- allowed_domains replaces the list of web origins (for example https://app.example.com; http only for localhost) that the hosted verification flow may be embedded in and may send the user back to with a session callback: up to 50 entries of at most 300 characters. Send [] to remove the restriction. Server-to-server calls are not affected. An invalid entry returns 400 on allowed_domains.
\- Manage destinations with the /v3/webhook/destinations/ endpoints, not here. Never send an endpoints field to this call: it is not part of this contract.

Example call:
curl -X PATCH "https://verification.didit.me/v3/webhook/" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"face_retention_policy": "retain_until_user_deleted", "face_retention_days": 365}'

What to read from the response:
\- The updated fields, and secret_shared_key when you rotated it: store the new value before you discard the response.

Failure modes:
\- 400: field errors, each field mapped to a list of messages, for example { "face_retention_days": ["A finite retention duration is required when face retention is enabled."] }. Nothing is changed.
\- 401: { "detail": "This API key has expired." }
\- 403: { "detail": "You do not have permission to perform this action." } or { "detail": "This API key has no write access to webhooks." }
\- 429: more than 300 write requests per minute with this key; wait for Retry-After.

Side effects:
\- Rotating the secret changes how deliveries to the legacy webhook_url are signed from then on, retries included.
\- A data_retention_months change applies to existing sessions too: every session older than the new window is deleted automatically, and that deletion is irreversible.
\- A face_retention_policy change applies to session deletions from then on; it creates or purges no existing biometric template.

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

\</pre>



      
      

यहाँ पेस्ट करें

> [!NOTE]
>
> `rotate_secret_key` केवल एप्लिकेशन-स्तर के सीक्रेट को रोटेट करता है, जो लीगेसी `webhook_url` पर भेजी गई डिलीवरी पर हस्ताक्षर करता है। हर [webhook गंतव्य](https://docs.didit.me/hi/management-api/webhook/list-destinations.md) अपने `secret_shared_key` से हस्ताक्षर करता है, और यह कॉल उसे नहीं बदलती।प्रतिधारण फ़ील्ड उसी नीति के अनुसार हैं जो आप **Business Console → App Settings → Data retention** में सेट करते हैं। इनमें कोई भी बदलाव करने से पहले [डेटा प्रतिधारण](https://docs.didit.me/hi/console/data-retention.md) पढ़ें, खासकर [बायोमेट्रिक टेम्पलेट प्रतिधारण](https://docs.didit.me/hi/console/data-retention.md#बायोमेट्रिक-टेम्पलेट-प्रतिधारण)। `allowed_return_hosts` का वर्णन [अपना रिटर्न गंतव्य पंजीकृत करें](https://docs.didit.me/hi/standalone-apis/digital-id-wallets.md#अपना-रिटर्न-गंतव्य-पंजीकृत-करें) में किया गया है।`biometric_consent_mode` (`auto`, `always` या `never`) यह तय करता है कि सत्यापन फ़्लो चेहरा कैप्चर करने से पहले स्पष्ट बायोमेट्रिक सहमति कब माँगे। देखें [बायोमेट्रिक सहमति](https://docs.didit.me/hi/getting-started/biometric-consent.md)।मौजूदा मान पहले पढ़ने के लिए, [Webhook कॉन्फ़िगरेशन प्राप्त करें](https://docs.didit.me/hi/management-api/webhook/get-config.md) को कॉल करें।


## OpenAPI

````yaml hi/openapi-25.json PATCH /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/:
    patch:
      tags:
        - Webhook
      summary: webhook कॉन्फ़िगरेशन अपडेट करें
      description: >-
        एप्लिकेशन-स्तरीय सेटिंग्स को आंशिक रूप से अपडेट करें: लीगेसी webhook
        URL, संस्करण और सीक्रेट, डेटा और बायोमेट्रिक टेम्पलेट प्रतिधारण नीति, और
        Digital ID वॉलेट रिटर्न होस्ट्स। केवल वे फ़ील्ड भेजें जिन्हें बदलना है;
        रिस्पॉन्स पूर्ण कॉन्फ़िगरेशन होता है, जिसकी संरचना `GET /v3/webhook/` के
        समान होती है। गंतव्यों को यहाँ प्रबंधित नहीं किया जाता है: उन्हें
        `/v3/webhook/destinations/` endpoint के साथ बनाएँ, अपडेट करें और हटाएँ,
        और इस endpoint पर `endpoints` फ़ील्ड न भेजें। `data_retention_months`
        परिवर्तन मौजूदा सत्रों पर भी लागू होता है, और इसके द्वारा हटाए गए सत्रों
        को पुनर्स्थापित नहीं किया जा सकता है; पहले [डेटा
        प्रतिधारण](https://docs.didit.me/hi/console/data-retention) पढ़ें। एक
        स्कोप्ड API कुंजी को `webhooks: write` की आवश्यकता होती है।
      operationId: update_webhook_config
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >-
                केवल वे फ़ील्ड भेजें जिन्हें बदलना है। गंतव्यों का प्रबंधन यहाँ
                नहीं किया जाता है।
              properties:
                webhook_url:
                  type: string
                  format: uri
                  nullable: true
                  maxLength: 2000
                  description: >-
                    लीगेसी एप्लिकेशन-स्तरीय webhook URL। Didit इसका उपयोग केवल
                    तब करता है जब एप्लिकेशन का कोई सक्षम गंतव्य न हो, और तब केवल
                    `status.updated` और `data.updated` के लिए। यह कोई गंतव्य
                    नहीं बनाता है, और किसी गंतव्य का अगला निर्माण, अद्यतन या
                    विलोपन इसे बदल देता है। webhook प्राप्त करने के लिए, इसके
                    बजाय `POST /v3/webhook/destinations/` के साथ एक गंतव्य
                    बनाएँ।
                webhook_version:
                  type: string
                  enum:
                    - v1
                    - v2
                    - v3
                  description: लेगसी `webhook_url` का payload संस्करण।
                rotate_secret_key:
                  type: boolean
                  default: false
                  description: >-
                    `true` एप्लिकेशन-स्तरीय `secret_shared_key` को तुरंत एक नए
                    यादृच्छिक मान से बदल देता है; नया मान रिस्पॉन्स में होता है।
                    गंतव्य सीक्रेट नहीं बदले जाते हैं। `true` के साथ प्रत्येक
                    कॉल एक नया सीक्रेट उत्पन्न करती है, इसलिए यह आइडेम्पोटेंट
                    नहीं है।
                capture_method:
                  type: string
                  enum:
                    - MOBILE
                    - MOBILE_AND_DESKTOP
                  description: लीगेसी एप्लिकेशन सेटिंग। सत्यापन फ़्लो इसे नहीं पढ़ता है।
                data_retention_months:
                  type: integer
                  nullable: true
                  minimum: 1
                  maximum: 120
                  description: >-
                    महीनों में स्वचालित विलोपन विंडो (एक महीने को 30 दिन माना
                    जाता है), या स्वचालित विलोपन न होने के लिए `null`। यह बदलाव
                    मौजूदा सत्रों पर भी लागू होता है: नई विंडो से अधिक पुराना
                    प्रत्येक उपयोगकर्ता सत्यापन सत्र स्वचालित रूप से हटा दिया
                    जाता है, और वह विलोपन अपरिवर्तनीय है।
                face_retention_policy:
                  type: string
                  enum:
                    - delete_with_session
                    - retain_until_user_deleted
                  description: >-
                    सत्र हटाए जाने पर सत्र के फ़ेस एम्बेडिंग का क्या होता है।
                    `retain_until_user_deleted` के लिए उसी अनुरोध में
                    `face_retention_days` की आवश्यकता होती है या यह पहले से सेट
                    होना चाहिए। कोई भी परिवर्तन इसके बाद होने वाले सत्र विलोपन
                    पर लागू होता है; यह किसी भी मौजूदा बायोमेट्रिक टेम्पलेट को
                    नहीं बनाता या पर्ज नहीं करता है।
                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, या पहचान दस्तावेज़ का जारीकर्ता Illinois,
                    Texas या Colorado में हो, या व्यक्ति US में प्रतीत होता हो,
                    लेकिन राज्य ज्ञात न हो। `always` ऐसे प्रत्येक व्यक्ति से
                    पूछता है जिसके वर्कफ़्लो में चेहरा कैप्चर किया जाता है।
                    `never` कभी भी यह चरण नहीं दिखाता है, और आप सेल्फ़ी से पहले
                    सहमति स्वयं एकत्र करते हैं। प्रत्येक परिवर्तन ऑडिट लॉग में
                    दर्ज किया जाता है। [बायोमेट्रिक
                    सहमति](https://docs.didit.me/hi/getting-started/biometric-consent)
                    देखें।
                allowed_return_hosts:
                  type: array
                  maxItems: 20
                  description: >-
                    Digital ID वॉलेट रिटर्न होस्ट्स की पूरी सूची को बदलता है।
                    केवल बेयर होस्टनाम, जैसे कि `shop.example.com`: कोई स्कीम,
                    पोर्ट, पाथ या वाइल्डकार्ड नहीं। मान लोअरकेस में किए जाते हैं
                    और डुप्लिकेट हटा दिए जाते हैं। सूची को साफ़ करने के लिए `[]`
                    भेजें।
                  items:
                    type: string
                    maxLength: 253
                allowed_domains:
                  type: array
                  maxItems: 50
                  items:
                    type: string
                    maxLength: 300
                  description: >-
                    अनुमत ऑरिजिन की पूरी सूची को बदलता है। वे ऑरिजिन (उदाहरण के
                    लिए `https://app.example.com`; `localhost` के लिए केवल
                    `http`) जिनमें होस्टेड सत्यापन फ़्लो एम्बेड किया जा सकता है
                    और सत्र कॉलबैक के साथ उपयोगकर्ता को वापस भेज सकता है।
                    सर्वर-टू-सर्वर कॉल प्रभावित नहीं होती हैं। खाली सूची का अर्थ
                    है कोई प्रतिबंध नहीं। Didit प्रत्येक ऑरिजिन को डिफ़ॉल्ट
                    पोर्ट के बिना लोअरकेस में संग्रहीत करता है। एक अमान्य
                    प्रविष्टि `allowed_domains` पर `400` के साथ विफल हो जाती है।
                    प्रतिबंध हटाने के लिए `[]` भेजें।
                  example:
                    - https://app.example.com
            examples:
              Enable biometric template retention:
                value:
                  face_retention_policy: retain_until_user_deleted
                  face_retention_days: 365
                  biometric_consent_mode: auto
              Rotate the legacy secret:
                value:
                  rotate_secret_key: true
              Set data retention:
                value:
                  data_retention_months: 24
              Register return hosts:
                value:
                  allowed_return_hosts:
                    - shop.example.com
                    - app.example.com
      responses:
        '200':
          description: >-
            अपडेट के बाद पूर्ण कॉन्फ़िगरेशन, `GET /v3/webhook/` के समान संरचना
            वाला। जब आपने सीक्रेट को रोटेट किया है, तो रिस्पॉन्स को त्यागने से
            पहले नई `secret_shared_key` को संग्रहीत करें।
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookConfig'
              examples:
                Retention enabled:
                  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: retain_until_user_deleted
                    face_retention_days: 365
                    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'
        '400':
          description: >-
            सत्यापन विफल रहा: प्रत्येक अमान्य फ़ील्ड को संदेशों की एक सूची में
            मैप किया जाता है, और कुछ भी बदला नहीं जाता है। जो body मान्य JSON
            नहीं है, वह `{"detail": "JSON parse error - ..."}` लौटाती है।
          content:
            application/json:
              schema:
                type: object
                description: प्रत्येक अमान्य फ़ील्ड को संदेशों की सूची से मैप किया गया है।
                additionalProperties:
                  type: array
                  items:
                    type: string
              examples:
                Retention days missing:
                  value:
                    face_retention_days:
                      - >-
                        A finite retention duration is required when face
                        retention is enabled.
                    biometric_consent_mode: auto
                Retention window out of range:
                  value:
                    data_retention_months:
                      - Ensure this value is less than or equal to 120.
                Invalid return host:
                  value:
                    allowed_return_hosts:
                      - >-
                        'https://shop.example.com' is not a hostname. Register
                        the bare host (e.g. shop.example.com): no scheme, port,
                        path or wildcard.
                Invalid choice:
                  value:
                    face_retention_policy:
                      - '"forever" is not a valid choice.'
        '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.` मिलता है। इस
            endpoint के लिए आवश्यक एक्सेस के बिना स्कोप्ड कुंजी होने पर अनुपलब्ध
            एक्सेस का नाम बताते हुए एक संदेश मिलता है, और इसकी IP allowlist के
            बाहर से उपयोग की गई कुंजी पर `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 write:
                  value:
                    detail: This API key has no write access to webhooks.
                Outside the IP allowlist:
                  value:
                    detail: This API key can't be used from this IP address.
        '429':
          description: >-
            रेट लिमिट पार हो गई: इस API कुंजी के लिए वर्तमान एक मिनट की विंडो
            में 300 से अधिक राइट (write) अनुरोध (POST, PATCH, PUT, DELETE)। पुनः
            प्रयास करने से पहले `Retry-After` सेकंड प्रतीक्षा करें।
          headers:
            Retry-After:
              description: पुनः प्रयास करने से पहले प्रतीक्षा करने के सेकंड।
              schema:
                type: integer
                minimum: 1
                example: 30
            X-RateLimit-Limit:
              description: एक मिनट की विंडो में अनुमत अनुरोध (300)।
              schema:
                type: integer
                example: 300
            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-write
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: मानव-पठनीय त्रुटि संदेश।
              examples:
                Throttled:
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X PATCH 'https://verification.didit.me/v3/webhook/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"face_retention_policy": "retain_until_user_deleted", "face_retention_days": 365}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.webhooks.update_config(
                face_retention_policy="retain_until_user_deleted",
                face_retention_days=365,
                biometric_consent_mode="auto",
            )
            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.updateConfig({
              face_retention_policy: "retain_until_user_deleted",
              face_retention_days: 365,
              biometric_consent_mode: "auto",
            });
            console.log(result);
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.WebhooksUpdateConfigParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.webhooks().updateConfig(WebhooksUpdateConfigParams.builder()
                    .faceRetentionPolicy(WebhooksUpdateConfigParams.FaceRetentionPolicy.of("retain_until_user_deleted"))
                    .faceRetentionDays(365L)
                    .biometricConsentMode(WebhooksUpdateConfigParams.BiometricConsentMode.of("auto"))
                    .build());
            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->updateConfig([
                'face_retention_policy' => 'retain_until_user_deleted',
                'face_retention_days' => 365,
                'biometric_consent_mode' => 'auto',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.webhooks.update_config(
              face_retention_policy: "retain_until_user_deleted",
              face_retention_days: 365,
              biometric_consent_mode: "auto"
            )
            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.UpdateConfigAsync(new
            WebhooksUpdateConfigParams

            {
                FaceRetentionPolicy = new WebhooksUpdateConfigParamsFaceRetentionPolicy("retain_until_user_deleted"),
                FaceRetentionDays = 365,
                BiometricConsentMode = new WebhooksUpdateConfigParamsBiometricConsentMode("auto"),
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    WebhookConfig:
      type: object
      description: >-
        प्रत्येक webhook गंतव्य के साथ एप्लिकेशन-स्तरीय webhook कॉन्फ़िगरेशन,
        प्रतिधारण नीति और Digital ID वॉलेट रिटर्न होस्ट।
      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 इस पर केवल तभी भेजता है
            जब एप्लिकेशन के पास कोई सक्षम गंतव्य न हो, और फिर केवल
            `status.updated` और `data.updated`। किसी गंतव्य का प्रत्येक निर्माण,
            अपडेट या विलोपन इसे सबसे पुराने सक्षम गंतव्य के URL पर सेट करता है,
            या सक्षम न होने पर `null` पर।
        webhook_version:
          type: string
          enum:
            - v1
            - v2
            - v3
          description: >-
            लेगसी `webhook_url` का payload संस्करण। प्रत्येक गंतव्य का अपना
            `webhook_version` होता है।
        secret_shared_key:
          type: string
          description: >-
            एप्लिकेशन-स्तरीय साइनिंग सीक्रेट (43-वर्णों वाला URL-सुरक्षित
            token)। यह केवल लीगेसी `webhook_url` पर डिलीवरी पर हस्ताक्षर करता
            है; प्रत्येक गंतव्य अपनी `secret_shared_key` से हस्ताक्षर करता है।
            API कुंजी का उपयोग करने वाले कॉलकर्ताओं को यह हमेशा पूरी तरह से
            प्राप्त होता है; बिना `read:webhooks` वाले कंसोल उपयोगकर्ताओं को एक
            खाली स्ट्रिंग प्राप्त होती है।
        capture_method:
          type: string
          enum:
            - MOBILE
            - MOBILE_AND_DESKTOP
          description: >-
            लीगेसी एप्लिकेशन सेटिंग। सत्यापन फ़्लो इसे नहीं पढ़ता है: कैप्चर
            विकल्प प्रति वर्कफ़्लो कॉन्फ़िगर किए जाते हैं।
        data_retention_months:
          type: integer
          nullable: true
          minimum: 1
          maximum: 120
          description: >-
            स्वचालित विलोपन विंडो। इस संख्या से अधिक महीने पहले बनाए गए
            उपयोगकर्ता सत्यापन सत्र (एक महीने को 30 दिन गिना जाता है) स्वचालित
            रूप से हटा दिए जाते हैं, और यह विलोपन अपरिवर्तनीय होता है। `null` का
            अर्थ है कि सत्र कभी भी स्वचालित रूप से नहीं हटाए जाते हैं। देखें
            [डेटा प्रतिधारण](https://docs.didit.me/hi/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/hi/console/data-retention#बायोमेट्रिक-टेम्पलेट-प्रतिधारण)
            है: उपयोगकर्ता से जुड़ा एक छवि-मुक्त बायोमेट्रिक टेम्पलेट तब तक अलग
            से प्रबंधित किया जाता है जब तक कि इसकी प्रतिधारण अवधि समाप्त न हो
            जाए, उपयोगकर्ता हटा न दिया जाए, या आप इसे पर्ज न कर दें।
        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, या
            पहचान दस्तावेज़ का जारीकर्ता Illinois, Texas या Colorado में हो, या
            व्यक्ति US में प्रतीत होता हो, लेकिन राज्य ज्ञात न हो। `always` ऐसे
            प्रत्येक व्यक्ति से पूछता है जिसके वर्कफ़्लो में चेहरा कैप्चर किया
            जाता है। `never` कभी भी यह चरण नहीं दिखाता है, और आप सेल्फ़ी से पहले
            सहमति स्वयं एकत्र करते हैं। प्रत्येक परिवर्तन ऑडिट लॉग में दर्ज किया
            जाता है। [बायोमेट्रिक
            सहमति](https://docs.didit.me/hi/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: >-
            होस्टनाम (सटीक मिलान, केवल HTTPS) जिन पर स्टैंडअलोन डिजिटल ID वॉलेट
            सत्यापन उपयोगकर्ता को अपने `return_url` के साथ वापस भेज सकता है।
            आपका व्हाइट लेबल डोमेन भी हमेशा अनुमत है। देखें [अपना वापसी गंतव्य
            पंजीकृत
            करें](https://docs.didit.me/hi/standalone-apis/digital-id-wallets#अपना-रिटर्न-गंतव्य-पंजीकृत-करें)।
          items:
            type: string
            maxLength: 253
        endpoints:
          type: array
          description: >-
            एप्लिकेशन का प्रत्येक webhook गंतव्य, सबसे पुराना पहले, प्रत्येक
            अपने हस्ताक्षर सीक्रेट के साथ। यहाँ केवल पढ़ने के लिए:
            `/v3/webhook/destinations/` endpoints के साथ गंतव्यों का प्रबंधन
            करें।
          items:
            $ref: '#/components/schemas/WebhookConfigDestination'
        allowed_domains:
          type: array
          maxItems: 50
          items:
            type: string
            maxLength: 300
          description: >-
            ऑरिजिन (उदाहरण के लिए `https://app.example.com`; केवल `localhost` के
            लिए `http`) जिनमें होस्टेड सत्यापन प्रवाह को एम्बेड किया जा सकता है
            और जो सत्र कॉलबैक के साथ उपयोगकर्ता को वापस भेज सकते हैं।
            सर्वर-टू-सर्वर कॉल प्रभावित नहीं होती हैं। एक खाली सूची का अर्थ है
            कोई प्रतिबंध नहीं। 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: HTTPS endpoint जिस पर Didit इवेंट पोस्ट करता है।
        enabled:
          type: boolean
          description: '`false` इस गंतव्य पर डिलीवरी रोक देता है।'
        webhook_version:
          type: string
          enum:
            - v1
            - v2
            - v3
          description: इस गंतव्य पर भेजा गया payload संस्करण।
        secret_shared_key:
          type: string
          description: >-
            इस गंतव्य का साइनिंग सीक्रेट (43-अक्षर वाला URL-सुरक्षित token)।
            प्रत्येक 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
        से। प्राथमिक कुंजी के पास पूर्ण एक्सेस होता है। एक नामित कुंजी को स्कोप
        किया जा सकता है: प्रति संसाधन none, read या write, कुछ वर्कफ़्लो या
        स्वीकृत सत्रों तक सीमित, IP पतों की सूची तक सीमित, और समाप्ति तिथि तक
        सीमित। 401 का अर्थ है कि कुंजी गलत है, निरस्त कर दी गई है या उसकी
        समय-सीमा समाप्त हो गई है; 403 का अर्थ है कि कोई कुंजी नहीं भेजी गई थी,
        कुंजी के पास इस संसाधन या कार्रवाई का एक्सेस नहीं है, या अनुरोध उसकी IP
        सूची से बाहर के पते से आया था; सत्र रूट पर 404 का अर्थ है कि सत्र कुंजी
        के वर्कफ़्लो या स्थितियों से बाहर है। मीडिया एक्सेस के बिना एक कुंजी को
        छवि, वीडियो और PDF URL null के रूप में प्राप्त होते हैं, और सत्र write
        के बिना एक कुंजी को सत्र लिंक और token null के रूप में प्राप्त होते हैं।
        देखें https://docs.didit.me/console/api-keys।

````

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