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

# AML निगरानी टॉगल करें: उपयोगकर्ताओं के लिए API

> एक ही कॉल में कई उपयोगकर्ताओं के लिए AML सतत निगरानी चालू या बंद करें। Didit के साथ लागत अनुमान, जॉब स्टेटस और प्रति-उपयोगकर्ता परिणाम पाएँ।



उपयोगकर्ताओं के लिए AML मॉनिटरिंग चालू/बंद करने का प्रॉम्प्ट
        प्रॉम्प्ट को क्लिपबोर्ड पर कॉपी करें



      
      

\<pre>

\`Goal: Enable or disable ongoing AML monitoring for one or many Didit User entities in a single call, with the same semantics as the Business Console. Preview the cost first with estimate_only, then run the change and read the per-user outcome.

Endpoint: POST https://verification.didit.me/v3/users/aml-monitoring/
Auth header: x-api-key: <DIDIT_API_KEY>
Content-Type: application/json

Request body:
\- is_enabled: boolean (required) - true to enable monitoring, false to disable it.
\- estimate_only: boolean (default false) - when true, returns the cost preview and performs NO writes: no screening, no billing, no job.
\- vendor_data_list: string[] - your own identifiers, matched exactly as sent.
\- didit_internal_id_list: string[] (UUIDs) - the didit_internal_id returned by the create, get and list endpoints.
Provide at least one list; the two are OR'd. At most 1000 identifiers per request across both lists - split larger selections into several calls.

Semantics:
\- One monitored screening per user: a person who verified several times is monitored and billed once. Disabling turns monitoring off across all of the user's screenings.
\- Users without any AML screening are screened first (billed as a regular AML screening) when the profile has a full name, date of birth and country; otherwise the user is reported as skipped_no_identity_data.
\- Blocked users are skipped (skipped_blocked). Sandbox applications never create screenings (skipped_sandbox).
\- Enabling is refused with 403 when the organization balance does not cover the estimate; the response carries the estimate.

curl (estimate first):
curl -X POST 'https://verification.didit.me/v3/users/aml-monitoring/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"is_enabled": true, "estimate_only": true, "vendor_data_list": ["user-123", "user-456"]}'

Response 200 (estimate_only):
\{
"users_total": 2, "already_enabled": 0, "with_existing_aml": 1, "needing_screening": 1,
"skipped_no_identity_data": 0, "skipped_blocked": 0,
"estimated_screening_cost_usd": 0.2, "estimated_annual_monitoring_cost_usd": 0.14,
"balance_sufficient": true, "unmatched": []
}

curl (enable):
curl -X POST 'https://verification.didit.me/v3/users/aml-monitoring/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"is_enabled": true, "vendor_data_list": ["user-123", "user-456"]}'

Response 200 (20 users or fewer - processed inline, already COMPLETED) or 202 (more than 20 - running in the background):
\{
"job_id": "<uuid>", "status": "COMPLETED", "is_enabled": true, "target_type": "user",
"total": 2, "processed": 2,
"outcomes": {"enabled": 1, "screened_and_enabled": 1, "already_enabled": 0, "disabled": 0, "skipped_no_identity_data": 0, "skipped_blocked": 0, "skipped_sandbox": 0, "failed_provider": 0, "failed_insufficient_balance": 0},
"results": [
\{"didit_internal_id": "<uuid>", "vendor_data": "user-123", "outcome": "enabled"},
\{"didit_internal_id": "<uuid>", "vendor_data": "user-456", "outcome": "screened_and_enabled"}
],
"estimate": { ...same shape as above, without unmatched... },
"unmatched": [],
"error": null,                     // generic message when status is FAILED
"created_at": "<datetime>", "completed_at": "<datetime>"
}
On 202, poll GET /v3/aml-monitoring/jobs/{job_id}/ every couple of seconds until status is COMPLETED or FAILED; results fills in as users are processed.

Per-user outcome values: enabled, screened_and_enabled, already_enabled, disabled, skipped_no_identity_data, skipped_blocked, skipped_sandbox, failed_provider, failed_insufficient_balance.

Failure modes:
\- 400 - is_enabled missing, no selector, or more than 1000 identifiers across both lists.
A selection that matches nothing is NOT an error: the job completes with total 0 and every identifier is listed under unmatched (same convention as the batch delete endpoints).
\- 401 - missing/invalid x-api-key.
\- 403 - insufficient balance to enable monitoring for this selection (body: error + estimate).

Idempotency: re-sending an enable returns already_enabled for users that are already monitored, with no second screening and no second bill. Disabling an unmonitored user returns disabled and changes nothing.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

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

## अवलोकनचयनित [उपयोगकर्ता इकाइयों](https://docs.didit.me/hi/entities/users/overview.md) के लिए [सतत AML निगरानी](https://docs.didit.me/hi/core-technology/aml-screening/continuous-monitoring-aml-screening.md) को सक्षम या अक्षम करता है, ठीक वैसे ही जैसे Business Console में **सतत AML निगरानी** कार्रवाई करती है। Console और यह endpoint एक ही अंतर्निहित ऑपरेशन चलाते हैं, इसलिए नियम, बिलिंग और परिणाम समान होते हैं।पहले `estimate_only: true` भेजें ताकि पता चले कि कितने उपयोगकर्ता चयनित हैं, कितनों को नई AML स्क्रीनिंग की आवश्यकता है, एक बार की स्क्रीनिंग लागत और वार्षिक निगरानी लागत कितनी है। ड्राई-रन से कुछ भी लिखा नहीं जाता।## इसका उपयोग कब करें- **प्रोग्रामैटिक ऑनबोर्डिंग**: API के माध्यम से आयात या बनाए गए उपयोगकर्ताओं के लिए निगरानी चालू करें, बिना उन्हें हाथ से दोबारा स्क्रीन किए।
- **ऑफ़बोर्डिंग**: उन उपयोगकर्ताओं के लिए निगरानी और उसका वार्षिक नवीकरण बंद करें जो आपके प्लेटफ़ॉर्म से चले गए हैं।
- **लागत नियंत्रण**: किसी चयन के लिए प्रतिबद्ध होने से पहले उसकी सटीक लागत पर पड़ने वाले असर का पूर्वावलोकन करें।## चयन कैसे संसाधित होता है- **प्रति उपयोगकर्ता एक निगरानी वाली स्क्रीनिंग।** कई बार सत्यापन कराने वाले उपयोगकर्ता की केवल एक स्क्रीनिंग की निगरानी की जाती है और बिल भी एक ही बार लगता है। अक्षम करने पर उस उपयोगकर्ता की सभी स्क्रीनिंग पर निगरानी बंद हो जाती है।
- **बिना AML स्क्रीनिंग वाले उपयोगकर्ताओं की पहले स्क्रीनिंग होती है।** Didit उनके लिए एक नया AML सत्यापन बनाता है (जो उपयोगकर्ता के **Verifications** टैब में दिखता है), उसका बिल एक सामान्य AML स्क्रीनिंग की तरह लगता है, और उस पर निगरानी चालू हो जाती है। इसके लिए उपयोगकर्ता का पूरा नाम, जन्म तिथि और देश चाहिए; इनमें से कोई भी न होने पर उपयोगकर्ता को `skipped_no_identity_data` के रूप में रिपोर्ट किया जाता है, चुपचाप छोड़ा नहीं जाता।
- **ब्लॉक किए गए उपयोगकर्ता छोड़ दिए जाते हैं** (`skipped_blocked`)। सैंडबॉक्स एप्लिकेशन कभी स्क्रीनिंग नहीं बनाते (`skipped_sandbox`)।
- **बैलेंस पहले से जाँचा जाता है।** जब आपका बैलेंस अनुमान को कवर नहीं करता, तो चालू करने का अनुरोध `403` के साथ अस्वीकार हो जाता है, और प्रतिक्रिया में अनुमान शामिल होता है ताकि आपको पता रहे कि कितना टॉप अप करना है।
- **वार्षिक नवीकरण।** नई निगरानी वाले उपयोगकर्ता से उसकी अगली नवीकरण तिथि पर वार्षिक निगरानी मूल्य लिया जाता है, वही तिथि जो Console में **सतत निगरानी** कॉलम में दिखती है। अक्षम करने से नवीकरण रुक जाता है, लेकिन पहले से बिल की जा चुकी अवधि का रिफ़ंड नहीं होता।## चयन और बैच आकार`vendor_data_list`, `didit_internal_id_list`, या दोनों से उपयोगकर्ता चुनें; दोनों सूचियों को OR के रूप में लिया जाता है। एक अनुरोध में दोनों सूचियों को मिलाकर अधिकतम **1000 पहचानकर्ता** स्वीकार होते हैं। जो पहचानकर्ता आपके एप्लिकेशन के किसी उपयोगकर्ता से मेल नहीं खाते, वे `unmatched` के अंतर्गत ठीक वैसे ही लौटाए जाते हैं जैसे भेजे गए थे, और वे अनुरोध को कभी विफल नहीं करते: जो चयन किसी से भी मेल नहीं खाता, वह खाली जॉब (`total: 0`) के रूप में पूरा होता है, जिसमें सभी पहचानकर्ता सूचीबद्ध होते हैं, जो बैच डिलीट endpoints की परिपाटी जैसा है।## इनलाइन या पृष्ठभूमि में**20 या उससे कम उपयोगकर्ताओं** वाले चयन इनलाइन संसाधित होते हैं और कॉल `200` के साथ पूरी हुई जॉब लौटाता है। बड़े चयन `PENDING` जॉब के साथ `202` लौटाते हैं; जब तक `status` `COMPLETED` या `FAILED` न हो जाए, [AML निगरानी जॉब प्राप्त करें](https://docs.didit.me/hi/management-api/aml-monitoring/get-job.md) को पोल करें। दोनों ही स्थितियों में जॉब में प्रति उपयोगकर्ता एक `results` प्रविष्टि होती है, जिसमें उसका `outcome` होता है।| `outcome` | अर्थ |
| - | - |
| `enabled` | मौजूदा AML स्क्रीनिंग पर निगरानी चालू की गई। |
| `screened_and_enabled` | नई AML स्क्रीनिंग बनी (बिल की गई) और उस पर निगरानी चालू की गई। |
| `already_enabled` | निगरानी पहले से सक्रिय थी; कुछ नहीं बदला, कुछ बिल नहीं हुआ। |
| `disabled` | उपयोगकर्ता की हर स्क्रीनिंग पर निगरानी बंद की गई। |
| `skipped_no_identity_data` | उपयोगकर्ता के पास स्क्रीन करने के लिए ज़रूरी पूरा नाम, जन्म तिथि या देश नहीं है। |
| `skipped_blocked` | उपयोगकर्ता ब्लॉक है। |
| `skipped_sandbox` | सैंडबॉक्स एप्लिकेशन; कोई स्क्रीनिंग नहीं बनाई गई। |
| `failed_provider` | स्क्रीनिंग पूरी नहीं हो सकी। बाद में पुनः प्रयास करें। |
| `failed_insufficient_balance` | जॉब चलते समय बैलेंस समाप्त हो गया। |## Webhooksनिगरानी चालू या बंद करने से कोई अपना webhook इवेंट नहीं भेजा जाता। एक बार निगरानी चालू होने के बाद, दोबारा स्क्रीनिंग पर [सतत AML निगरानी](https://docs.didit.me/hi/core-technology/aml-screening/continuous-monitoring-aml-screening.md) में बताए गए सामान्य `status.updated` और `data.updated` इवेंट भेजे जाते रहते हैं।## अनुमतियाँएप्लिकेशन की कोई भी सक्रिय API कुंजी इस endpoint को कॉल कर सकती है। Didit API कुंजियाँ **एप्लिकेशन-स्तरीय हैं, भूमिका-स्तरीय नहीं**: Console की [भूमिकाएँ और अनुमतियाँ](https://docs.didit.me/hi/console/roles-permissions.md) यह तय करती हैं कि कोई *व्यक्ति* Console में क्या कर सकता है, और Management API ट्रैफ़िक के लिए इनका मूल्यांकन नहीं किया जाता।## संबंधित- [AML निगरानी जॉब प्राप्त करें](https://docs.didit.me/hi/management-api/aml-monitoring/get-job.md)
- [व्यवसायों के लिए AML निगरानी चालू/बंद करें](https://docs.didit.me/hi/management-api/aml-monitoring/toggle-businesses.md)
- [सतत AML निगरानी](https://docs.didit.me/hi/core-technology/aml-screening/continuous-monitoring-aml-screening.md)
- [AML स्क्रीनिंग API](https://docs.didit.me/hi/standalone-apis/aml-screening.md)
- [उपयोगकर्ता सूचीबद्ध करें](https://docs.didit.me/hi/management-api/users/list.md)


## OpenAPI

````yaml hi/openapi-25.json POST /v3/users/aml-monitoring/
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/users/aml-monitoring/:
    post:
      tags:
        - AML Ongoing Monitoring
      summary: उपयोगकर्ताओं के लिए सतत AML निगरानी सक्षम या अक्षम करें
      description: >-
        चयनित उपयोगकर्ताओं के लिए सतत AML निगरानी को चालू या बंद करता है, वही
        सेमांटिक्स के साथ जो Business Console में हैं। प्रति उपयोगकर्ता ठीक एक
        मॉनिटर की गई AML स्क्रीनिंग रखी जाती है, ताकि कई बार सत्यापित होने वाले
        प्रोफ़ाइल की निगरानी और बिलिंग एक ही बार हो; अक्षम करने पर प्रोफ़ाइल की
        सभी स्क्रीनिंग में निगरानी बंद हो जाती है। बिना किसी AML स्क्रीनिंग वाले
        उपयोगकर्ताओं की स्क्रीनिंग पहले की जाती है (नियमित AML स्क्रीनिंग के रूप
        में बिल की जाती है) जब उनके पास आवश्यक पूरा नाम, जन्म तिथि और देश होता
        है; अन्यथा उन्हें `skipped_no_identity_data` के रूप में रिपोर्ट किया
        जाता है।


        बिना कुछ लिखे केवल संख्या और लागत का पूर्वावलोकन करने के लिए
        `estimate_only: true` सेट करें। 20 या उससे कम प्रोफ़ाइल के चयन इनलाइन हल
        होते हैं और पूर्ण किए गए कार्य के साथ `200` लौटाते हैं; बड़े चयन `202`
        लौटाते हैं और बैकग्राउंड में चलते हैं - लौटाए गए `job_id` के साथ [Get
        AML monitoring job](#get-/v3/aml-monitoring/jobs/-job_id-/) को पोल करें।
        जब संगठन बैलेंस अनुमान को कवर नहीं करता है, तो सक्षम करने से `403` के
        साथ इनकार कर दिया जाता है। कुछ भी मेल न खाने वाले पहचानकर्ताओं को
        `unmatched` में सूचीबद्ध किया जाता है और वे अनुरोध को कभी विफल नहीं करते
        हैं: कुछ भी मेल न खाने वाला चयन एक खाली कार्य (`total` 0) के रूप में
        पूरा होता है, वही परिपाटी जो बैच डिलीट endpoint की है।
      operationId: toggle_users_aml_monitoring
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - is_enabled
              description: >-
                `vendor_data_list`, `didit_internal_id_list`, या दोनों के साथ
                उपयोगकर्ताओं का चयन करें (दोनों सूचियाँ OR की जाती हैं)। दोनों
                सूचियों को मिलाकर प्रति अनुरोध अधिकतम 1000 पहचानकर्ता।
              properties:
                is_enabled:
                  type: boolean
                  description: निगरानी सक्षम करने के लिए true, इसे अक्षम करने के लिए false।
                estimate_only:
                  type: boolean
                  default: false
                  description: >-
                    true होने पर, लागत अनुमान लौटाता है और कोई राइट ऑपरेशन नहीं
                    करता है - कोई स्क्रीनिंग नहीं, कोई बिलिंग नहीं, कोई जॉब
                    नहीं।
                vendor_data_list:
                  type: array
                  items:
                    type: string
                  description: >-
                    टॉगल करने के लिए उपयोगकर्ताओं के आपके अपने पहचानकर्ता, ठीक
                    वैसे ही मिलान किए जाते हैं जैसे भेजे गए थे।
                didit_internal_id_list:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: >-
                    टॉगल करने के लिए उपयोगकर्ताओं की Didit आंतरिक ids - create,
                    get और list endpoints द्वारा लौटाई गई `didit_internal_id`।
            examples:
              Estimate first:
                summary: बिना लिखे लागत का पूर्वावलोकन करें
                value:
                  is_enabled: true
                  estimate_only: true
                  vendor_data_list:
                    - user-123
                    - user-456
              Enable:
                summary: दो उपयोगकर्ताओं के लिए निगरानी सक्षम करें
                value:
                  is_enabled: true
                  vendor_data_list:
                    - user-123
                    - user-456
              Disable:
                summary: Didit आंतरिक id द्वारा निगरानी अक्षम करें
                value:
                  is_enabled: false
                  didit_internal_id_list:
                    - 3f1c0d3e-8f0a-4c2e-9a3d-9b1f5f4a2c11
      responses:
        '200':
          description: >-
            अनुमान (जब `estimate_only` सत्य हो) या इनलाइन प्रोसेस किए गए चयन के
            लिए पूर्ण किया गया कार्य।
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AMLMonitoringToggleResult'
        '202':
          description: >-
            बड़े चयन बैकग्राउंड में चलते हैं। `job_id` के साथ जॉब endpoint को
            पोल करें; जैसे-जैसे प्रोफाइल प्रोसेस होते हैं, `results` भरता जाता
            है।
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AMLMonitoringJob'
        '400':
          description: >-
            सत्यापन त्रुटि: `is_enabled` गायब है, कोई चयनकर्ता नहीं है, या दोनों
            सूचियों में मिलाकर 1000 से अधिक पहचानकर्ता हैं।
        '401':
          description: अनुपलब्ध या अमान्य API कुंजी।
        '403':
          description: >-
            इस चयन के लिए निगरानी सक्षम करने के लिए अपर्याप्त बैलेंस। रिस्पॉन्स
            में `estimate` शामिल होता है ताकि आप सही राशि का टॉप अप कर सकें।
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  estimate:
                    type: object
                    description: >-
                      लागत पूर्वावलोकन। estimate_only true होने पर सीधे लौटाया
                      जाता है (कुछ भी लिखा नहीं जाता है)।
                    properties:
                      users_total:
                        type: integer
                        description: चयन द्वारा मिलान की गई प्रोफ़ाइल।
                      already_enabled:
                        type: integer
                        description: >-
                          पहले से मॉनिटर की जा रही प्रोफ़ाइल (सक्षम करते समय कुछ
                          करने की आवश्यकता नहीं है; अक्षम करने पर इन्हें ही बंद
                          किया जाता है)।
                      with_existing_aml:
                        type: integer
                        description: >-
                          वे प्रोफ़ाइल जिनकी मौजूदा AML स्क्रीनिंग को निगरानी
                          में बदल दिया जाएगा (कोई नई स्क्रीनिंग नहीं)।
                      needing_screening:
                        type: integer
                        description: >-
                          बिना किसी AML स्क्रीनिंग वाली प्रोफ़ाइल जिनकी पहले
                          स्क्रीनिंग की जाएगी (नियमित AML स्क्रीनिंग के रूप में
                          बिल किया जाएगा)।
                      skipped_no_identity_data:
                        type: integer
                        description: >-
                          वे प्रोफ़ाइल जिनकी स्क्रीनिंग नहीं की जा सकती क्योंकि
                          पहचान डेटा मौजूद नहीं है।
                      skipped_blocked:
                        type: integer
                        description: >-
                          ब्लॉक किए गए उपयोगकर्ता जिन्हें छोड़ दिया जाएगा
                          (व्यवसायों के लिए हमेशा 0)।
                      estimated_screening_cost_usd:
                        type: number
                        example: 0.2
                        description: नई स्क्रीनिंग की एकमुश्त लागत।
                      estimated_annual_monitoring_cost_usd:
                        type: number
                        example: 0.07
                        description: >-
                          उन प्रोफ़ाइलों की वार्षिक निगरानी लागत जिनकी निगरानी
                          शुरू की जाएगी।
                      balance_sufficient:
                        type: boolean
                        description: >-
                          क्या संगठन का बैलेंस स्क्रीनिंग और निगरानी के पहले
                          वर्ष को कवर करता है।
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            'https://verification.didit.me/v3/users/aml-monitoring/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"is_enabled": true, "vendor_data_list": ["user-123", "user-456"]}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.users.set_aml_monitoring(
                is_enabled=True,
                estimate_only=True,
                vendor_data_list=["user-123", "user-456"],
            )
            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.users.setAmlMonitoring({
              is_enabled: true,
              estimate_only: true,
              vendor_data_list: ["user-123", "user-456"],
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Users.SetAMLMonitoring(ctx, didit.UsersSetAMLMonitoringParams{\n\tIsEnabled:      true,\n\tEstimateOnly:   didit.Bool(true),\n\tVendorDataList: didit.Some([]string{\"user-123\", \"user-456\"}),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.util.List;

            import me.didit.Didit;

            import me.didit.types.UsersSetAmlMonitoringParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.users().setAmlMonitoring(UsersSetAmlMonitoringParams.builder()
                    .isEnabled(true)
                    .estimateOnly(true)
                    .vendorDataList(List.of("user-123", "user-456"))
                    .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->users->setAmlMonitoring([
                'is_enabled' => true,
                'estimate_only' => true,
                'vendor_data_list' => ['user-123', 'user-456'],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.users.set_aml_monitoring(
              is_enabled: true,
              estimate_only: true,
              vendor_data_list: ["user-123", "user-456"]
            )
            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.Users.SetAmlMonitoringAsync(new
            UsersSetAmlMonitoringParams

            {
                IsEnabled = true,
                EstimateOnly = true,
                VendorDataList = new string[] { "user-123", "user-456" },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    AMLMonitoringToggleResult:
      oneOf:
        - type: object
          required:
            - users_total
            - already_enabled
            - with_existing_aml
            - needing_screening
            - skipped_no_identity_data
            - skipped_blocked
            - estimated_screening_cost_usd
            - estimated_annual_monitoring_cost_usd
            - balance_sufficient
            - unmatched
          description: >-
            लागत पूर्वावलोकन। estimate_only true होने पर सीधे लौटाया जाता है
            (कुछ भी लिखा नहीं जाता है)।
          properties:
            users_total:
              type: integer
              description: चयन द्वारा मिलान की गई प्रोफ़ाइल।
            already_enabled:
              type: integer
              description: >-
                पहले से मॉनिटर की जा रही प्रोफ़ाइल (सक्षम करते समय कुछ करने की
                आवश्यकता नहीं है; अक्षम करने पर इन्हें ही बंद किया जाता है)।
            with_existing_aml:
              type: integer
              description: >-
                वे प्रोफ़ाइल जिनकी मौजूदा AML स्क्रीनिंग को निगरानी में बदल दिया
                जाएगा (कोई नई स्क्रीनिंग नहीं)।
            needing_screening:
              type: integer
              description: >-
                बिना किसी AML स्क्रीनिंग वाली प्रोफ़ाइल जिनकी पहले स्क्रीनिंग की
                जाएगी (नियमित AML स्क्रीनिंग के रूप में बिल किया जाएगा)।
            skipped_no_identity_data:
              type: integer
              description: >-
                वे प्रोफ़ाइल जिनकी स्क्रीनिंग नहीं की जा सकती क्योंकि पहचान डेटा
                मौजूद नहीं है।
            skipped_blocked:
              type: integer
              description: >-
                ब्लॉक किए गए उपयोगकर्ता जिन्हें छोड़ दिया जाएगा (व्यवसायों के
                लिए हमेशा 0)।
            estimated_screening_cost_usd:
              type: number
              example: 0.2
              description: नई स्क्रीनिंग की एकमुश्त लागत।
            estimated_annual_monitoring_cost_usd:
              type: number
              example: 0.07
              description: >-
                उन प्रोफ़ाइलों की वार्षिक निगरानी लागत जिनकी निगरानी शुरू की
                जाएगी।
            balance_sufficient:
              type: boolean
              description: >-
                क्या संगठन का बैलेंस स्क्रीनिंग और निगरानी के पहले वर्ष को कवर
                करता है।
            unmatched:
              type: array
              items:
                type: string
              description: >-
                अनुरोध के वे पहचानकर्ता जिनका इस एप्लिकेशन में किसी प्रोफ़ाइल से
                मिलान नहीं हुआ, बिल्कुल वैसे ही जैसे भेजे गए थे।
        - type: object
          required:
            - job_id
            - status
            - is_enabled
            - target_type
            - total
            - processed
            - outcomes
            - results
            - error
            - created_at
            - completed_at
            - estimate
            - unmatched
          properties:
            job_id:
              type: string
              format: uuid
            status:
              type: string
              enum:
                - PENDING
                - PROCESSING
                - COMPLETED
                - FAILED
            is_enabled:
              type: boolean
              description: >-
                जब जॉब निगरानी सक्षम करता है तो true, जब यह इसे अक्षम करता है तो
                false।
            target_type:
              type: string
              enum:
                - user
                - business
              description: जॉब किस प्रोफ़ाइल फ़ैमिली को टॉगल करता है।
            total:
              type: integer
              description: वे प्रोफ़ाइल जिन्हें जॉब संसाधित करता है।
            processed:
              type: integer
              description: अब तक संसाधित की गई प्रोफ़ाइल।
            outcomes:
              type: object
              description: >-
                प्रति-रिकॉर्ड परिणाम काउंटर। प्रत्येक चयनित प्रोफ़ाइल का परिणाम
                ठीक एक काउंटर में दर्ज होता है; कुछ भी चुपचाप छोड़ा नहीं जाता
                है।
              properties:
                enabled:
                  type: integer
                  description: मौजूदा AML स्क्रीनिंग पर निगरानी सक्षम कर दी गई।
                screened_and_enabled:
                  type: integer
                  description: >-
                    एक नई AML स्क्रीनिंग बनाई गई (बिल की गई) और उस पर निगरानी
                    सक्षम की गई।
                already_enabled:
                  type: integer
                  description: >-
                    निगरानी पहले से ही सक्रिय थी; कुछ भी नहीं बदला और कोई बिलिंग
                    नहीं की गई।
                disabled:
                  type: integer
                  description: >-
                    प्रोफ़ाइल की प्रत्येक AML स्क्रीनिंग में निगरानी बंद कर दी
                    गई।
                skipped_no_identity_data:
                  type: integer
                  description: >-
                    छोड़ा गया: प्रोफ़ाइल में स्क्रीनिंग के लिए आवश्यक पूरा नाम,
                    जन्म तिथि और देश (उपयोगकर्ता) या नाम (व्यवसाय) का अभाव है।
                skipped_blocked:
                  type: integer
                  description: 'छोड़ा गया: उपयोगकर्ता ब्लॉक है।'
                skipped_sandbox:
                  type: integer
                  description: >-
                    छोड़ा गया: सैंडबॉक्स एप्लिकेशन, कोई स्क्रीनिंग नहीं बनाई
                    जाती है।
                failed_provider:
                  type: integer
                  description: स्क्रीनिंग पूरी नहीं की जा सकी; बाद में पुनः प्रयास करें।
                failed_insufficient_balance:
                  type: integer
                  description: कार्य चलने के दौरान बैलेंस समाप्त हो गया।
            results:
              type: array
              description: >-
                प्रसंस्करण क्रम में, संसाधित की गई प्रति प्रोफ़ाइल एक प्रविष्टि।
                जॉब चलने के दौरान बढ़ती है; स्थिति COMPLETED होने पर पूर्ण होती
                है। API के माध्यम से शुरू की गई जॉब्स के लिए रिकॉर्ड किया गया।
              items:
                type: object
                properties:
                  didit_internal_id:
                    type: string
                    format: uuid
                    description: प्रोफ़ाइल की Didit आंतरिक id।
                  vendor_data:
                    type: string
                    nullable: true
                    description: प्रोफ़ाइल के लिए आपका अपना पहचानकर्ता।
                  outcome:
                    type: string
                    enum:
                      - enabled
                      - screened_and_enabled
                      - already_enabled
                      - disabled
                      - skipped_no_identity_data
                      - skipped_blocked
                      - skipped_sandbox
                      - failed_provider
                      - failed_insufficient_balance
            error:
              type: string
              nullable: true
              description: >-
                स्थिति FAILED होने पर सामान्य विफलता संदेश; विस्तृत कारण
                प्लेटफ़ॉर्म-साइड पर रखा जाता है।
            created_at:
              type: string
              format: date-time
            completed_at:
              type: string
              format: date-time
              nullable: true
            estimate:
              type: object
              description: >-
                लागत पूर्वावलोकन। estimate_only true होने पर सीधे लौटाया जाता है
                (कुछ भी लिखा नहीं जाता है)।
              properties:
                users_total:
                  type: integer
                  description: चयन द्वारा मिलान की गई प्रोफ़ाइल।
                already_enabled:
                  type: integer
                  description: >-
                    पहले से मॉनिटर की जा रही प्रोफ़ाइल (सक्षम करते समय कुछ करने
                    की आवश्यकता नहीं है; अक्षम करने पर इन्हें ही बंद किया जाता
                    है)।
                with_existing_aml:
                  type: integer
                  description: >-
                    वे प्रोफ़ाइल जिनकी मौजूदा AML स्क्रीनिंग को निगरानी में बदल
                    दिया जाएगा (कोई नई स्क्रीनिंग नहीं)।
                needing_screening:
                  type: integer
                  description: >-
                    बिना किसी AML स्क्रीनिंग वाली प्रोफ़ाइल जिनकी पहले
                    स्क्रीनिंग की जाएगी (नियमित AML स्क्रीनिंग के रूप में बिल
                    किया जाएगा)।
                skipped_no_identity_data:
                  type: integer
                  description: >-
                    वे प्रोफ़ाइल जिनकी स्क्रीनिंग नहीं की जा सकती क्योंकि पहचान
                    डेटा मौजूद नहीं है।
                skipped_blocked:
                  type: integer
                  description: >-
                    ब्लॉक किए गए उपयोगकर्ता जिन्हें छोड़ दिया जाएगा (व्यवसायों
                    के लिए हमेशा 0)।
                estimated_screening_cost_usd:
                  type: number
                  example: 0.2
                  description: नई स्क्रीनिंग की एकमुश्त लागत।
                estimated_annual_monitoring_cost_usd:
                  type: number
                  example: 0.07
                  description: >-
                    उन प्रोफ़ाइलों की वार्षिक निगरानी लागत जिनकी निगरानी शुरू की
                    जाएगी।
                balance_sufficient:
                  type: boolean
                  description: >-
                    क्या संगठन का बैलेंस स्क्रीनिंग और निगरानी के पहले वर्ष को
                    कवर करता है।
            unmatched:
              type: array
              items:
                type: string
              description: >-
                अनुरोध के वे पहचानकर्ता जिनका इस एप्लिकेशन में किसी प्रोफ़ाइल से
                मिलान नहीं हुआ, बिल्कुल वैसे ही जैसे भेजे गए थे। वे जॉब का
                हिस्सा नहीं हैं।
    AMLMonitoringJob:
      type: object
      properties:
        job_id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - COMPLETED
            - FAILED
        is_enabled:
          type: boolean
          description: >-
            जब जॉब निगरानी सक्षम करता है तो true, जब यह इसे अक्षम करता है तो
            false।
        target_type:
          type: string
          enum:
            - user
            - business
          description: जॉब किस प्रोफ़ाइल फ़ैमिली को टॉगल करता है।
        total:
          type: integer
          description: वे प्रोफ़ाइल जिन्हें जॉब संसाधित करता है।
        processed:
          type: integer
          description: अब तक संसाधित की गई प्रोफ़ाइल।
        outcomes:
          type: object
          description: >-
            प्रति-रिकॉर्ड परिणाम काउंटर। प्रत्येक चयनित प्रोफ़ाइल का परिणाम ठीक
            एक काउंटर में दर्ज होता है; कुछ भी चुपचाप छोड़ा नहीं जाता है।
          properties:
            enabled:
              type: integer
              description: मौजूदा AML स्क्रीनिंग पर निगरानी सक्षम कर दी गई।
            screened_and_enabled:
              type: integer
              description: >-
                एक नई AML स्क्रीनिंग बनाई गई (बिल की गई) और उस पर निगरानी सक्षम
                की गई।
            already_enabled:
              type: integer
              description: >-
                निगरानी पहले से ही सक्रिय थी; कुछ भी नहीं बदला और कोई बिलिंग
                नहीं की गई।
            disabled:
              type: integer
              description: प्रोफ़ाइल की प्रत्येक AML स्क्रीनिंग में निगरानी बंद कर दी गई।
            skipped_no_identity_data:
              type: integer
              description: >-
                छोड़ा गया: प्रोफ़ाइल में स्क्रीनिंग के लिए आवश्यक पूरा नाम, जन्म
                तिथि और देश (उपयोगकर्ता) या नाम (व्यवसाय) का अभाव है।
            skipped_blocked:
              type: integer
              description: 'छोड़ा गया: उपयोगकर्ता ब्लॉक है।'
            skipped_sandbox:
              type: integer
              description: >-
                छोड़ा गया: सैंडबॉक्स एप्लिकेशन, कोई स्क्रीनिंग नहीं बनाई जाती
                है।
            failed_provider:
              type: integer
              description: स्क्रीनिंग पूरी नहीं की जा सकी; बाद में पुनः प्रयास करें।
            failed_insufficient_balance:
              type: integer
              description: कार्य चलने के दौरान बैलेंस समाप्त हो गया।
        results:
          type: array
          description: >-
            प्रसंस्करण क्रम में, संसाधित की गई प्रति प्रोफ़ाइल एक प्रविष्टि। जॉब
            चलने के दौरान बढ़ती है; स्थिति COMPLETED होने पर पूर्ण होती है। API
            के माध्यम से शुरू की गई जॉब्स के लिए रिकॉर्ड किया गया।
          items:
            type: object
            properties:
              didit_internal_id:
                type: string
                format: uuid
                description: प्रोफ़ाइल की Didit आंतरिक id।
              vendor_data:
                type: string
                nullable: true
                description: प्रोफ़ाइल के लिए आपका अपना पहचानकर्ता।
              outcome:
                type: string
                enum:
                  - enabled
                  - screened_and_enabled
                  - already_enabled
                  - disabled
                  - skipped_no_identity_data
                  - skipped_blocked
                  - skipped_sandbox
                  - failed_provider
                  - failed_insufficient_balance
        error:
          type: string
          nullable: true
          description: >-
            स्थिति FAILED होने पर सामान्य विफलता संदेश; विस्तृत कारण
            प्लेटफ़ॉर्म-साइड पर रखा जाता है।
        created_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
          nullable: true
        estimate:
          type: object
          description: >-
            लागत पूर्वावलोकन। estimate_only true होने पर सीधे लौटाया जाता है
            (कुछ भी लिखा नहीं जाता है)।
          properties:
            users_total:
              type: integer
              description: चयन द्वारा मिलान की गई प्रोफ़ाइल।
            already_enabled:
              type: integer
              description: >-
                पहले से मॉनिटर की जा रही प्रोफ़ाइल (सक्षम करते समय कुछ करने की
                आवश्यकता नहीं है; अक्षम करने पर इन्हें ही बंद किया जाता है)।
            with_existing_aml:
              type: integer
              description: >-
                वे प्रोफ़ाइल जिनकी मौजूदा AML स्क्रीनिंग को निगरानी में बदल दिया
                जाएगा (कोई नई स्क्रीनिंग नहीं)।
            needing_screening:
              type: integer
              description: >-
                बिना किसी AML स्क्रीनिंग वाली प्रोफ़ाइल जिनकी पहले स्क्रीनिंग की
                जाएगी (नियमित AML स्क्रीनिंग के रूप में बिल किया जाएगा)।
            skipped_no_identity_data:
              type: integer
              description: >-
                वे प्रोफ़ाइल जिनकी स्क्रीनिंग नहीं की जा सकती क्योंकि पहचान डेटा
                मौजूद नहीं है।
            skipped_blocked:
              type: integer
              description: >-
                ब्लॉक किए गए उपयोगकर्ता जिन्हें छोड़ दिया जाएगा (व्यवसायों के
                लिए हमेशा 0)।
            estimated_screening_cost_usd:
              type: number
              example: 0.2
              description: नई स्क्रीनिंग की एकमुश्त लागत।
            estimated_annual_monitoring_cost_usd:
              type: number
              example: 0.07
              description: >-
                उन प्रोफ़ाइलों की वार्षिक निगरानी लागत जिनकी निगरानी शुरू की
                जाएगी।
            balance_sufficient:
              type: boolean
              description: >-
                क्या संगठन का बैलेंस स्क्रीनिंग और निगरानी के पहले वर्ष को कवर
                करता है।
        unmatched:
          type: array
          items:
            type: string
          description: >-
            अनुरोध के वे पहचानकर्ता जिनका इस एप्लिकेशन में किसी प्रोफ़ाइल से
            मिलान नहीं हुआ, बिल्कुल वैसे ही जैसे भेजे गए थे। वे जॉब का हिस्सा
            नहीं हैं।
  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.