> ## 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: प्रतिबंध, PEP और वॉचलिस्ट

> Didit का रीयल-टाइम AML स्क्रीनिंग 1,300+ वैश्विक वॉचलिस्ट पर: प्रतिबंध, PEP, प्रतिकूल मीडिया। दो-स्कोर जोखिम प्रणाली, $0.20/जाँच, कोई मासिक न्यूनतम नहीं।



## OpenAPI

````yaml hi/openapi-25.json POST /v3/aml/
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/aml/:
    post:
      tags:
        - Standalone APIs
      summary: AML स्क्रीनिंग (स्टैंडअलोन)
      description: >-
        एक ही कॉल में किसी व्यक्ति या कंपनी को PEP, प्रतिबंध, चेतावनी/वॉचलिस्ट,
        और प्रतिकूल मीडिया डेटासेट के विरुद्ध स्क्रीन करें。


        **दो-स्कोर मॉडल।** प्रत्येक हिट में एक `match_score` (0–100, पहचान का
        विश्वास) और एक `risk_score` (0–100, निकाय का जोखिम) होता है। जिन हिट्स
        का `match_score` `aml_match_score_threshold` (डिफ़ॉल्ट **93**) से कम
        होता है, उन्हें `review_status: "False Positive"` के रूप में टैग किया
        जाता है और जोखिम के उद्देश्यों के लिए अनदेखा कर दिया जाता है; शेष हिट्स
        में से उच्चतम `risk_score` `aml.score` बन जाता है। अंतिम `aml.status`
        आपके थ्रेशोल्ड का पालन करता है: `score` > `aml_score_review_threshold`
        (डिफ़ॉल्ट **100**) → `Declined`; `score` > `aml_score_approve_threshold`
        (डिफ़ॉल्ट **80**) → `In Review`; अन्यथा `Approved`। जब भी `score`
        गैर-शून्य हो और approve थ्रेशोल्ड से अधिक या उसके बराबर हो, तो एक
        `POSSIBLE_MATCH_FOUND` चेतावनी जोड़ी जाती है (ठीक 0 का स्कोर कभी चेतावनी
        नहीं देता)।


        **मिलान स्कोर वेट।** `aml_name_weight` + `aml_dob_weight` +
        `aml_country_weight` का योग ठीक 100 होना चाहिए (डिफ़ॉल्ट 60/25/15)।
        अनुरोध से अनुपस्थित घटकों को फिर से सामान्य (re-normalize) कर दिया जाता
        है; एक मेल खाने वाला `document_number` गोल्डन की के रूप में कार्य करता
        है जो `match_score` को ओवरराइड करके 100 कर देता है।


        **लेटेंसी।** सामान्य स्क्रीनिंग आमतौर पर कुछ सेकंड में पूरी हो जाती है।
        `include_adverse_media=true` के साथ API प्रतिकूल मीडिया संवर्धन की
        प्रतीक्षा करता है (शुरुआती ~5 s का पॉज़ और साथ ही ~25 s तक का पोलिंग) —
        **कम से कम 60 सेकंड** का क्लाइंट टाइमआउट कॉन्फ़िगर करें।


        **पर्सिस्टेंस।** `save_api_request` डिफ़ॉल्ट रूप से **true** होता है:
        स्क्रीनिंग को एक सत्र के रूप में संग्रहीत किया जाता है (`request_id`
        `GET /v3/session/{sessionId}/decision/` के साथ काम करता है), यह कंसोल
        में दिखाई देता है, एक `status.updated` webhook ट्रिगर होता है, और हिट की
        समीक्षा स्थितियों को बाद में अपडेट किया जा सकता है।
        `save_api_request=false` के साथ कुछ भी संग्रहीत नहीं किया जाता है और
        `request_id` एक अस्थायी कोरिलेशन ID होता है।
        `include_ongoing_monitoring=true` प्रोफ़ाइल को फिर से स्क्रीन करता रहता
        है और इसके लिए `save_api_request=true` आवश्यक होता है (`400` के साथ लागू
        किया गया)।


        **आइडेम्पोटेंसी।** टाइमआउट या अस्थायी त्रुटि के बाद पुनः प्रयास करते समय
        `Idempotency-Key` हेडर भेजें। कुंजी आपके एप्लिकेशन और सटीक अनुरोध बॉडी
        तक सीमित होती है। पहला पूरा हुआ अनुरोध अपने रिस्पॉन्स को संग्रहीत करता
        है; बाद के समान पुनः प्रयास वही रिस्पॉन्स लौटाते हैं और किसी अन्य AML
        स्क्रीनिंग को न तो चलाते हैं और न ही उसका बिल बनाते हैं। यदि मूल अनुरोध
        अभी भी चल रहा है, तो उसी कुंजी के साथ बाद में पुनः प्रयास करें। यदि उसी
        कुंजी का पुनः उपयोग किसी भिन्न बॉडी के साथ किया जाता है, तो API `409`
        लौटाता है।


        **बिलिंग।** पहली सफल स्क्रीनिंग के बाद एक AML API क्रेडिट चार्ज किया
        जाता है। दोबारा चलाए गए आइडेम्पोटेंट रिस्पॉन्स पर दोबारा शुल्क नहीं लिया
        जाता है; अपर्याप्त बैलेंस होने पर किसी भी नई स्क्रीनिंग से पहले `403`
        लौटता है।


        **सैंडबॉक्स।** सैंडबॉक्स एप्लिकेशन से कुंजियाँ स्क्रीनिंग और बिलिंग को
        पूरी तरह से छोड़ देती हैं और एक मॉक परिणाम लौटाती हैं — शून्य हिट के साथ
        `Approved`, जब तक कि आप `sandbox_scenario` पास न करें।
        `save_api_request` लाइव कुंजियों की तरह ही काम करता है, इसलिए सहेजी गई
        सैंडबॉक्स स्क्रीनिंग को `GET /v3/session/{sessionId}/decision/` और `GET
        /v3/session/{sessionId}/generate-pdf/` के माध्यम से प्राप्त किया जा सकता
        है।
      operationId: post_v3aml
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          description: >-
            वैकल्पिक पुनः प्रयास-सुरक्षा कुंजी, 255 वर्णों तक। उसी अनुरोध बॉडी
            के साथ उसी कुंजी का पुन: उपयोग करने पर दूसरी स्क्रीनिंग चलाए या उसका
            बिल लिए बिना मूल रिस्पॉन्स वापस मिलता है। भिन्न बॉडी के साथ कुंजी का
            पुन: उपयोग करने पर `409` मिलता है।
          schema:
            type: string
            maxLength: 255
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - full_name
              properties:
                full_name:
                  type: string
                  minLength: 2
                  description: >-
                    स्क्रीन किए जाने वाले व्यक्ति या कंपनी का पूरा नाम। न्यूनतम
                    **2 वर्ण** - स्क्रीनिंग प्रदाता की अपनी न्यूनतम सीमा। कोई भी
                    स्क्रीनिंग चलने से पहले इस फ़ील्ड पर एक छोटा या खाली नाम
                    `400` लौटाता है, इसलिए कुछ भी बिल नहीं किया जाता है।
                  example: Antonio Ejemplo Modelo
                entity_type:
                  type: string
                  enum:
                    - person
                    - company
                  default: person
                  description: >-
                    स्क्रीन करने के लिए निकाय का प्रकार। डिफ़ॉल्ट रूप से
                    `person`।
                date_of_birth:
                  type: string
                  format: date
                  description: >-
                    जन्म तिथि (व्यक्तियों के लिए) या निगमन तिथि (कंपनियों के
                    लिए), `YYYY-MM-DD`। DOB वेट के माध्यम से मिलान की सटीकता में
                    सुधार करता है।
                  example: '1972-02-29'
                nationality:
                  type: string
                  description: >-
                    ISO 3166-1 **alpha-2** देश कोड (उदाहरण के लिए `ES`)। अमान्य
                    कोड `400` लौटाते हैं। देश के वेटेज के माध्यम से मिलान
                    परिशुद्धता में सुधार करता है।
                  example: ES
                document_number:
                  type: string
                  description: >-
                    पहचान दस्तावेज़ संख्या। भारित नहीं — यह गोल्डन की के रूप में
                    कार्य करता है: एक सटीक मिलान हिट के `match_score` को 100 में
                    बदल देता है, जबकि एक पूर्ण बेमेल इसे दंडित करता है।
                    स्क्रीनिंग प्रदाता को खोज फ़िल्टर के रूप में केवल तभी भेजा
                    जाता है जब यह **2-50 वर्ण** का हो; उस सीमा से बाहर के मान को
                    स्वीकार और संग्रहीत किया जाता है, और स्क्रीनिंग अभी भी चलती
                    है और उसका बिल लिया जाता है, बस इसे दस्तावेज़ संख्या द्वारा
                    सीमित नहीं किया जाता है।
                aml_score_approve_threshold:
                  type: number
                  minimum: 0
                  maximum: 100
                  default: 80
                  description: >-
                    जोखिम स्कोर थ्रेशोल्ड जिस पर या जिसके नीचे परिणाम `Approved`
                    होता है। `aml_score_review_threshold` से ≤ होना चाहिए
                    (अन्यथा `400`)।
                aml_score_review_threshold:
                  type: number
                  minimum: 0
                  maximum: 100
                  default: 100
                  description: >-
                    जोखिम स्कोर थ्रेशोल्ड जिसके ऊपर परिणाम `Declined` होता है।
                    दो थ्रेशोल्ड के बीच के स्कोर `In Review` उत्पन्न करते हैं।
                aml_name_weight:
                  type: integer
                  minimum: 0
                  maximum: 100
                  default: 60
                  description: >-
                    प्रति-हिट मिलान स्कोर में नाम समानता का भार। तीनों भारों का
                    योग ठीक 100 होना चाहिए (अन्यथा `400`)।
                aml_dob_weight:
                  type: integer
                  minimum: 0
                  maximum: 100
                  default: 25
                  description: प्रति-हिट मिलान स्कोर में जन्म तिथि का भार।
                aml_country_weight:
                  type: integer
                  minimum: 0
                  maximum: 100
                  default: 15
                  description: प्रति-हिट मिलान स्कोर में देश/राष्ट्रीयता का भार।
                aml_match_score_threshold:
                  type: integer
                  minimum: 0
                  maximum: 100
                  default: 93
                  description: >-
                    प्रति-हिट कटऑफ़: इससे कम `match_score` वाले हिट `False
                    Positive` हैं (जोखिम मूल्यांकन से बाहर रखे गए); इसके बराबर
                    या अधिक स्कोर वाले `Unreviewed` संभावित मिलान हैं।
                include_adverse_media:
                  type: boolean
                  default: false
                  description: >-
                    नकारात्मक कवरेज के लिए समाचार मीडिया में भी खोजें। परिणाम
                    एकत्र होने के दौरान ~30 सेकंड तक की लेटेंसी जुड़ती है — ≥60
                    सेकंड के क्लाइंट टाइमआउट का उपयोग करें।
                include_ongoing_monitoring:
                  type: boolean
                  default: false
                  description: >-
                    इस प्रोफ़ाइल की पुनः स्क्रीनिंग जारी रखें और webhook के
                    माध्यम से परिवर्तनों को पुश करें। `save_api_request=true`
                    आवश्यक है (अन्यथा `400`)।
                save_api_request:
                  type: boolean
                  default: true
                  description: >-
                    स्क्रीनिंग को एक सत्र के रूप में बनाए रखें (कंसोल दृश्यता,
                    निर्णय endpoint, webhooks, हिट समीक्षा)। स्टेटलेस जाँच के
                    लिए `false` पर सेट करें।
                vendor_data:
                  type: string
                  description: >-
                    स्क्रीन किए गए उपयोगकर्ता के लिए आपका पहचानकर्ता; वापस
                    दोहराया जाता है और सत्र के साथ संग्रहीत किया जाता है।
                metadata:
                  type: object
                  nullable: true
                  description: अनुरोध के साथ संग्रहीत और वापस लौटाया गया फ़्री-फ़ॉर्म JSON।
                sandbox_scenario:
                  type: string
                  description: >-
                    केवल-सैंडबॉक्स परिदृश्य स्लग। केवल तब स्वीकार किया जाता है
                    जब API कुंजी सैंडबॉक्स-मोड एप्लिकेशन से संबंधित हो; लाइव
                    एप्लिकेशन्स पर अस्वीकृत। एक स्टैंडअलोन स्क्रीनिंग में आर्म
                    करने के लिए कोई सत्र नहीं होता है, इसलिए स्लग स्वयं
                    स्क्रीनिंग अनुरोध पर जाता है: `decline_aml_hit` एक
                    प्रोडक्शन-आकार का हिट लौटाता है और स्क्रीनिंग को `Declined`
                    के रूप में तय करता है, `review_aml_possible_match` इसे `In
                    Review` के रूप में तय करता है, और ऐसा परिदृश्य जो किसी भी
                    AML परिणाम को आर्म नहीं करता है, वह स्क्रीनिंग को क्लीन छोड़
                    देता है। परिदृश्य कैटलॉग को GET /v1/sandbox/scenarios/ पर या
                    [Sandbox & Test Data](/hi/integration/sandbox-testing) में
                    देखें।
                  example: decline_aml_hit
            example:
              full_name: Antonio Ejemplo Modelo
              entity_type: person
              date_of_birth: '1972-02-29'
              nationality: ES
              include_adverse_media: false
              vendor_data: user-1234
      responses:
        '200':
          description: >-
            स्क्रीनिंग पूरी हुई। `aml.status` आपके थ्रेशोल्ड को दर्शाता है;
            आंतरिक समावेशन सीमा पर या उससे ऊपर का प्रत्येक हिट `aml.hits` में
            अपने पहचान संबंधी `match_score`, निकाय के `risk_score`, और मिलान की
            व्याख्या करने वाले `score_breakdown` के साथ सूचीबद्ध होता है।
          content:
            application/json:
              schema:
                type: object
                properties:
                  request_id:
                    type: string
                    format: uuid
                    description: >-
                      `save_api_request=true` होने पर सहेजी गई सत्र ID (`GET
                      /v3/session/{sessionId}/decision/` के साथ उपयोग योग्य);
                      अन्यथा एक क्षणिक सहसंबंध UUID।
                  aml:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - Approved
                          - In Review
                          - Declined
                        description: >-
                          `Declined` जब `score` > `aml_score_review_threshold`;
                          `In Review` जब `score` >
                          `aml_score_approve_threshold`; अन्यथा `Approved`
                          (जिसमें तब भी शामिल है जब कोई स्कोर उपलब्ध न हो)।
                      total_hits:
                        type: integer
                        description: '`hits` में प्रविष्टियों की संख्या।'
                      entity_type:
                        type: string
                        enum:
                          - person
                          - company
                        description: स्क्रीन किए गए निकाय प्रकार का इको।
                      hits:
                        type: array
                        items:
                          type: object
                          description: >-
                            एक स्क्रीनिंग हिट। `match_score` (0–100) पहचान
                            विश्वास को मापता है — `aml_match_score_threshold` से
                            कम वाले हिट्स को `review_status: "False Positive"`
                            के रूप में टैग किया जाता है और जोखिम मूल्यांकन से
                            बाहर रखा जाता है; इस पर या इससे ऊपर वाले हिट्स
                            `"Unreviewed"` संभावित मिलान होते हैं। `risk_score`
                            (0–100) यह मापता है कि मेल खाने वाली इकाई कितनी
                            जोखिम भरी है और शीर्ष-स्तरीय `aml.score` को
                            निर्धारित करता है।
                          properties:
                            id:
                              type: string
                              nullable: true
                              description: >-
                                हिट के लिए Didit का स्थायी आइडेंटिफ़ायर: `hit_`
                                के बाद 24 हेक्साडेसिमल वर्ण। विषय की दोबारा
                                स्क्रीनिंग होने पर भी वही मिलान की गई एंटिटी
                                समान `id` बनाए रखती है। इसे AML हिट समीक्षा
                                endpoints पर `hit_id` के रूप में पास करें।
                            url:
                              type: string
                              nullable: true
                              description: मिलान की गई इकाई के लिए स्रोत URL, जब उपलब्ध हो।
                            match:
                              type: boolean
                              nullable: true
                              description: >-
                                लीगेसी सटीक-मिलान फ़्लैग। `match_score` +
                                `review_status` को प्राथमिकता दें।
                            score:
                              type: number
                              nullable: true
                              description: >-
                                0–1 सीमा में अप्रचलित भारित मिलान स्कोर। इसके
                                बजाय `match_score` का उपयोग करें।
                            match_score:
                              type: number
                              nullable: true
                              description: >-
                                पहचान संबंधी विश्वास (0–100)। फ़ॉल्स पॉज़िटिव को
                                संभावित मिलानों से अलग करने के लिए
                                `aml_match_score_threshold` के विरुद्ध तुलना की
                                जाती है।
                            risk_score:
                              type: number
                              nullable: true
                              description: >-
                                इकाई जोखिम स्कोर (0–100)। गैर-फ़ॉल्स पॉज़िटिव
                                हिट्स के बीच उच्चतम `risk_score` शीर्ष-स्तरीय
                                `aml.score` बन जाता है।
                            target:
                              type: boolean
                              nullable: true
                            caption:
                              type: string
                              nullable: true
                              description: मिलान की गई एंटिटी का डिस्प्ले नाम।
                            datasets:
                              type: array
                              nullable: true
                              items:
                                type: string
                                enum:
                                  - PEP
                                  - PEP Level 1
                                  - PEP Level 2
                                  - PEP Level 3
                                  - PEP Level 4
                                  - Sanctions
                                  - Adverse Media
                                  - Warnings and Regulatory Enforcement
                                  - Fitness and Probity
                                  - SIP
                                  - SIE
                                  - Insolvency
                                  - Other Lists
                              description: >-
                                वे जोखिम श्रेणियां जिनमें निकाय सूचीबद्ध है:
                                `PEP` (अपने स्तर के साथ, `PEP Level 1` से `PEP
                                Level 4`), `Sanctions`, `Adverse Media`,
                                `Warnings and Regulatory Enforcement`, `Fitness
                                and Probity`, `SIP`, `SIE` या `Insolvency`। जब
                                निकाय का स्रोत इनमें से किसी भी श्रेणी का उल्लेख
                                नहीं करता है, तो `Other Lists`।
                            features:
                              type: object
                              nullable: true
                            properties:
                              type: object
                              nullable: true
                              description: >-
                                इकाई प्रोफ़ाइल: `name`, `alias`, `notes`,
                                `gender`, `birthDate`, `birthPlace`,
                                `nationality`, `position`, और अन्य बायोग्राफिकल
                                ऐरे (प्रत्येक में null मान हो सकता है)।
                            rca_name:
                              type: string
                              nullable: true
                              description: >-
                                संबंधित करीबी सहयोगी का नाम जिसके माध्यम से इकाई
                                का मिलान किया गया था, जब हिट एक RCA हो।
                            pep_matches:
                              type: array
                              description: >-
                                इस हिट का समर्थन करने वाली PEP सूची
                                प्रविष्टियाँ।
                              items:
                                type: object
                                properties:
                                  list_name:
                                    type: string
                                  publisher:
                                    type: string
                                  source_url:
                                    type: string
                                  description:
                                    type: string
                                  matched_name:
                                    type: string
                                  pep_position:
                                    type: string
                                  date_of_birth:
                                    type: string
                                  place_of_birth:
                                    type: string
                                  aliases:
                                    type: array
                                    items:
                                      type: string
                                  education:
                                    type: array
                                    items:
                                      type: string
                                  other_sources:
                                    type: array
                                    items:
                                      type: string
                            sanction_matches:
                              type: array
                              items:
                                type: object
                              description: >-
                                इस हिट का समर्थन करने वाली प्रतिबंध सूची
                                प्रविष्टियां (`pep_matches` के समान बैकिंग-लिस्ट
                                आकार, साथ ही प्रतिबंध-विशिष्ट फ़ील्ड्स)।
                            warning_matches:
                              type: array
                              items:
                                type: object
                              description: >-
                                इस हिट का समर्थन करने वाली चेतावनी/वॉचलिस्ट
                                प्रविष्टियाँ।
                            adverse_media_matches:
                              type: array
                              description: >-
                                प्रतिकूल मीडिया लेख। केवल तभी पॉप्युलेट होता है
                                जब `include_adverse_media=true` हो।
                              items:
                                type: object
                                properties:
                                  headline:
                                    type: string
                                  summary:
                                    type: string
                                  sentiment:
                                    type: string
                                  sentiment_score:
                                    type: number
                                  source_url:
                                    type: string
                                  thumbnail:
                                    type: string
                                    nullable: true
                                  country:
                                    type: string
                                    nullable: true
                                  author_name:
                                    type: string
                                    nullable: true
                                  publication_date:
                                    type: string
                                    nullable: true
                                  adverse_keywords:
                                    type: array
                                    items:
                                      type: string
                                  other_sources:
                                    type: array
                                    items:
                                      type: string
                            adverse_media_details:
                              type: object
                              nullable: true
                              description: >-
                                इकाई के लिए एकत्रित प्रतिकूल मीडिया सेंटिमेंट
                                (`sentiment`, `sentiment_score`,
                                `adverse_keywords` आवृत्ति मैप)। केवल तभी
                                पॉप्युलेट होता है जब
                                `include_adverse_media=true` हो।
                            first_seen:
                              type: string
                              format: date-time
                              nullable: true
                              description: जब निकाय पहली बार डेटासेट में दिखाई दिया।
                            last_seen:
                              type: string
                              format: date-time
                              nullable: true
                              description: >-
                                सबसे हालिया डेटासेट रीफ़्रेश जिसमें इकाई शामिल
                                थी।
                            linked_entities:
                              type: array
                              description: >-
                                मिलान की गई इकाई के ज्ञात संबंध (परिवार, सहयोगी,
                                कंपनियाँ)।
                              items:
                                type: object
                                properties:
                                  name:
                                    type: array
                                    items:
                                      type: string
                                  active:
                                    type: array
                                    items:
                                      type: string
                                  status:
                                    type: array
                                    items:
                                      type: string
                                  details:
                                    type: array
                                    items:
                                      type: string
                                  relation:
                                    type: array
                                    items:
                                      type: string
                            risk_view:
                              type: object
                              nullable: true
                              description: >-
                                प्रति-आयाम जोखिम विवरण (`crimes`, `countries`,
                                `categories`, `custom_list`), प्रत्येक में
                                `score`, `weightage`, `risk_level`, और एक
                                `risk_scores` मैप के साथ।
                            additional_information:
                              type: object
                              nullable: true
                              description: >-
                                फ़्री-फ़ॉर्म अतिरिक्त संदर्भ, उदा. एक
                                `flag_summary` ऐरे जो बताता है कि निकाय को
                                फ़्लैग क्यों किया गया है।
                            review_status:
                              type: string
                              nullable: true
                              enum:
                                - False Positive
                                - Unreviewed
                                - Confirmed Match
                                - Inconclusive
                              description: >-
                                `False Positive` — `match_score`
                                `aml_match_score_threshold` से कम, जोखिम
                                मूल्यांकन से बाहर रखा गया। `Unreviewed` —
                                संभावित मिलान जो समीक्षा की प्रतीक्षा कर रहा है।
                                `Confirmed Match` / `Inconclusive` — सहेजे गए
                                सत्रों पर समीक्षक द्वारा (Business Console के
                                माध्यम से) मैन्युअल रूप से सेट किया गया; वह
                                समीक्षा क्षमता इस विशिष्टता का हिस्सा नहीं है।
                            score_breakdown:
                              type: object
                              nullable: true
                              description: >-
                                `match_score` की गणना कैसे की गई। नाम, जन्म तिथि
                                और देश प्रत्येक `<component>_score` ×
                                `<component>_weight_normalized` अंक प्रदान करते
                                हैं; जब स्क्रीन किए गए डेटा से कोई घटक गायब होता
                                है, तो भार को पुनः सामान्यीकृत किया जाता है।
                                दस्तावेज़ संख्या भारित नहीं है — यह 'गोल्डन की'
                                के रूप में कार्य करती है: `MATCH` स्कोर को 100
                                पर ओवरराइड करता है, `NEUTRAL` इसे अपरिवर्तित
                                छोड़ देता है, `HARD_MISMATCH` पेनल्टी लागू करता
                                है।
                              properties:
                                name_score:
                                  type: integer
                                  nullable: true
                                  description: रॉ नाम समानता (0–100)।
                                name_weight:
                                  type: integer
                                  nullable: true
                                  description: >-
                                    कॉन्फ़िगर किया गया नाम वेट
                                    (`aml_name_weight`)।
                                name_weight_normalized:
                                  type: number
                                  nullable: true
                                  description: पुनः सामान्यीकरण के बाद नाम का वेट (0–100)।
                                name_contribution:
                                  type: number
                                  nullable: true
                                  description: >-
                                    `total_score` में नाम द्वारा योगदान किए गए
                                    अंक।
                                dob_score:
                                  type: integer
                                  nullable: true
                                  description: >-
                                    जन्म तिथि स्कोर उसके भार के प्रतिशत के रूप
                                    में (−100 से 100)।
                                dob_weight:
                                  type: integer
                                  nullable: true
                                  description: >-
                                    कॉन्फ़िगर किया गया DOB वेट
                                    (`aml_dob_weight`)।
                                dob_weight_normalized:
                                  type: number
                                  nullable: true
                                  description: >-
                                    पुनः सामान्यीकरण के बाद जन्म तिथि भार
                                    (0–100)।
                                dob_contribution:
                                  type: number
                                  nullable: true
                                  description: >-
                                    `total_score` में जन्म तिथि द्वारा योगदान
                                    किए गए अंक।
                                country_score:
                                  type: integer
                                  nullable: true
                                  description: >-
                                    देश का स्कोर इसके भार के प्रतिशत के रूप में
                                    (−100 से 100)।
                                country_weight:
                                  type: integer
                                  nullable: true
                                  description: >-
                                    कॉन्फ़िगर किया गया देश वेट
                                    (`aml_country_weight`)।
                                country_weight_normalized:
                                  type: number
                                  nullable: true
                                  description: पुनः सामान्यीकरण के बाद देश का भार (0–100)।
                                country_contribution:
                                  type: number
                                  nullable: true
                                  description: >-
                                    `total_score` में देश द्वारा योगदान किए गए
                                    अंक।
                                document_number_match_type:
                                  type: string
                                  nullable: true
                                  enum:
                                    - MATCH
                                    - NEUTRAL
                                    - HARD_MISMATCH
                                  description: >-
                                    दस्तावेज़ संख्या तुलना के लिए गोल्डन-की
                                    परिणाम।
                                document_number_effect:
                                  type: string
                                  nullable: true
                                  description: दस्तावेज़-संख्या प्रभाव का मानव-पठनीय विवरण।
                                total_score:
                                  type: integer
                                  nullable: true
                                  description: >-
                                    अंतिम भारित मिलान स्कोर (0–100) —
                                    `match_score` को दर्शाता है।
                      score:
                        type: number
                        nullable: true
                        description: >-
                          समग्र AML जोखिम स्कोर (0–100): उन हिट्स में उच्चतम
                          `risk_score` जो फ़ॉल्स पॉज़िटिव नहीं हैं। दो थ्रेशोल्ड
                          के माध्यम से `status` तय करता है।
                      screened_data:
                        type: object
                        description: >-
                          जो स्क्रीन किया गया था उसका इको: `full_name`,
                          `date_of_birth`, `nationality`, `document_number`
                          (अनुपस्थित फ़ील्ड `null` हैं)।
                        properties:
                          full_name:
                            type: string
                          date_of_birth:
                            type: string
                            nullable: true
                          nationality:
                            type: string
                            nullable: true
                          document_number:
                            type: string
                            nullable: true
                      warnings:
                        type: array
                        items:
                          type: object
                          properties:
                            feature:
                              type: string
                              description: सुविधा जिसने चेतावनी उत्पन्न की।
                            risk:
                              type: string
                              description: मशीन-पठनीय जोखिम पहचानकर्ता।
                            additional_data:
                              type: object
                              nullable: true
                              description: उपलब्ध होने पर, चेतावनी के लिए अतिरिक्त संदर्भ।
                            log_type:
                              type: string
                              description: >-
                                `warning`, `information`, या `error` — जोखिम ने
                                परिणाम को कैसे प्रभावित किया।
                            short_description:
                              type: string
                              description: एक पंक्ति का मानव-पठनीय सारांश।
                            long_description:
                              type: string
                              description: पूर्ण मानव-पठनीय विवरण।
                        description: >-
                          जब भी `score` गैर-शून्य और ≥
                          `aml_score_approve_threshold` होता है, तो इसमें एक
                          `POSSIBLE_MATCH_FOUND` चेतावनी शामिल होती है (बिल्कुल
                          0 का स्कोर कभी चेतावनी नहीं देता); अन्यथा खाली रहता
                          है।
                  vendor_data:
                    type: string
                    nullable: true
                    description: आपके द्वारा भेजे गए `vendor_data` का इको।
                  metadata:
                    type: object
                    nullable: true
                    description: आपके द्वारा भेजे गए `metadata` का इको।
                  created_at:
                    type: string
                    format: date-time
              examples:
                No hits (Approved):
                  summary: क्लीन स्क्रीनिंग — शून्य हिट्स
                  value:
                    request_id: d27c5509-7a66-45a9-b05e-d69d9f4c336a
                    aml:
                      status: Approved
                      total_hits: 0
                      entity_type: person
                      hits: []
                      score: 0
                      screened_data:
                        full_name: Maximilian Mustermann-Doe
                        date_of_birth: '1992-03-14'
                        nationality: DE
                        document_number: null
                      warnings: []
                    vendor_data: user-1234
                    metadata:
                      internal_ref: abc-123
                    created_at: '2026-06-11T10:21:07.013938+00:00'
                PEP hit (Approved — risk below approve threshold):
                  summary: >-
                    एक संभावित PEP मिलान; जोखिम स्कोर 73 डिफ़ॉल्ट स्वीकृति
                    थ्रेशोल्ड 80 के नीचे रहता है
                  value:
                    request_id: 0b7e7a3e-65a1-4f3d-9c7a-1de2f9a40111
                    aml:
                      status: Approved
                      total_hits: 1
                      entity_type: person
                      hits:
                        - id: hit_7c1e9a40b2d35f86e0a4c912
                          url: https://news.example.org/articles/sample
                          match: false
                          score: 0.93
                          match_score: 93
                          risk_score: 73
                          target: null
                          caption: Antonio Ejemplo Modelo
                          datasets:
                            - PEP Level 1
                            - PEP
                          features: null
                          rca_name: ''
                          first_seen: '2026-01-07T00:00:00'
                          last_seen: '2026-01-07T00:00:00'
                          review_status: Unreviewed
                          properties:
                            name:
                              - Antonio Ejemplo Modelo
                              - Antonio Ejemplo
                            alias:
                              - Antonio Ejemplo Modelo
                              - Ejemplo Modelo, Pedro
                            notes:
                              - Prime Minister of Spain
                            gender:
                              - male
                            birthDate:
                              - '1972-02-29'
                            birthPlace:
                              - Madrid, Spain
                            nationality: null
                            position: null
                          risk_view:
                            crimes:
                              score: 0
                              weightage: 20
                              risk_level: Low
                              risk_scores: {}
                            countries:
                              score: 9.64
                              weightage: 30
                              risk_level: Low
                              risk_scores:
                                Spain: 25.71
                            categories:
                              score: 62.5
                              weightage: 50
                              risk_level: High
                              risk_scores:
                                PEP: 100
                                PEP Level 1: 100
                            custom_list: {}
                          score_breakdown:
                            name_score: 89
                            name_weight: 60
                            name_weight_normalized: 60
                            name_contribution: 53.4
                            dob_score: 100
                            dob_weight: 25
                            dob_weight_normalized: 25
                            dob_contribution: 25
                            country_score: 100
                            country_weight: 15
                            country_weight_normalized: 15
                            country_contribution: 15
                            document_number_match_type: NEUTRAL
                            document_number_effect: No document number provided for screening
                            total_score: 93
                          pep_matches:
                            - aliases: []
                              education: []
                              list_name: Presidency of the Government of Spain
                              publisher: Presidency of the Government of Spain
                              source_url: https://news.example.org/articles/sample
                              description: >-
                                The Presidency of the Government is the central
                                institutional body in Spain that supports the
                                Prime Minister and coordinates the general
                                action of the central government.
                              matched_name: Antonio Ejemplo Modelo
                              pep_position: ''
                              date_of_birth: '1972-02-29'
                              other_sources: []
                              place_of_birth: Madrid, Spain
                          sanction_matches: []
                          warning_matches: []
                          adverse_media_matches: []
                          adverse_media_details: null
                          linked_entities:
                            - name:
                                - Maria Begona Gomez Fernandez
                              active: []
                              status: []
                              details: []
                              relation:
                                - spouse
                          additional_information:
                            flag_summary:
                              - >-
                                Antonio Ejemplo Modelo has been flagged as a
                                Level 1 Politically Exposed Person (PEP) from
                                Spain, serving as the President of the
                                Government of Spain.
                      score: 73
                      screened_data:
                        full_name: Pedro Sanchez Perez-Castejon
                        date_of_birth: '1972-02-29'
                        nationality: ES
                        document_number: null
                      warnings: []
                    vendor_data: null
                    metadata: null
                    created_at: '2026-06-11T10:23:44.812000+00:00'
        '400':
          description: >-
            सत्यापन त्रुटि। फ़ील्ड-स्तरीय समस्याएं DRF का मानक एनवेलप लौटाती हैं
            (प्रति समस्याग्रस्त फ़ील्ड संदेशों का एक array); क्रॉस-फ़ील्ड नियम
            (वेट सम, थ्रेशोल्ड क्रम, बिना सहेजे निगरानी) `{"error": [...]}`
            लौटाते हैं।
          content:
            application/json:
              examples:
                Missing full_name:
                  summary: '`full_name` ही एकमात्र आवश्यक फ़ील्ड है'
                  value:
                    full_name:
                      - This field is required.
                Short full_name:
                  summary: '`full_name` कम से कम 2 वर्णों का होना चाहिए'
                  value:
                    full_name:
                      - Ensure this field has at least 2 characters.
                Invalid nationality:
                  summary: '`nationality` ISO 3166-1 alpha-2 होनी चाहिए'
                  value:
                    nationality:
                      - Invalid ISO 3166-1 alpha-2 country code.
                Weights do not sum to 100:
                  summary: >-
                    `aml_name_weight` + `aml_dob_weight` + `aml_country_weight`
                    ≠ 100
                  value:
                    error:
                      - >-
                        AML weights must sum to 100. Current sum: 90 (name: 50,
                        dob: 25, country: 15)
                Thresholds out of order:
                  summary: स्वीकृति थ्रेशोल्ड समीक्षा थ्रेशोल्ड से अधिक है
                  value:
                    error:
                      - >-
                        Approve threshold (90.0) cannot be greater than review
                        threshold (80.0)
                Monitoring without saving:
                  summary: >-
                    `save_api_request=false` के साथ
                    `include_ongoing_monitoring=true`
                  value:
                    error:
                      - >-
                        Ongoing monitoring can only be enabled when the API
                        request is saved.
        '403':
          description: >-
            अनुमति अस्वीकृत। तब लौटाया जाता है जब `x-api-key` हेडर अनुपलब्ध हो,
            और तब भी जब कॉल करने वाले संगठन का बैलेंस कॉल को कवर नहीं कर सकता;
            गलत, निरस्त या समय-सीमा समाप्त कुंजी `401` लौटाती है। अनुपलब्ध कुंजी
            `{"detail": ...}` के साथ `403` लौटाती है; गलत, निरस्त या समय-सीमा
            समाप्त कुंजी `401` लौटाती है। क्रेडिट की कमी किसी भी स्क्रीनिंग या
            प्रदाता कॉल से पहले `{"error": ...}` के साथ `403` लौटाती है।
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  summary: कोई `x-api-key` हेडर नहीं, या कुंजी अमान्य/निरस्त है
                  value:
                    detail: You do not have permission to perform this action.
                Not enough credits:
                  summary: संगठन का बैलेंस कॉल को कवर नहीं कर सकता
                  value:
                    error: >-
                      You don't have enough credits to perform this request.
                      Please top up at https://business.didit.me
        '429':
          description: >-
            रेट लिमिट पार हो गई। POST/PATCH/DELETE endpoints प्रति मिनट प्रति
            API कुंजी 300 राइट अनुरोधों का बजट साझा करते हैं (लेन-देन निर्माण और
            इवेंट इनजेशन का 600 का एक अलग बजट है)। रिस्पॉन्स में
            `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` और
            `Retry-After` हेडर होते हैं।
          content:
            application/json:
              examples:
                Write rate limit exceeded:
                  summary: वर्तमान मिनट में 300 से अधिक राइट अनुरोध
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
              schema:
                type: object
                properties:
                  detail:
                    type: string
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST https://verification.didit.me/v3/aml/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -H 'Idempotency-Key: aml-user-1234-2026-08-20' \
              -d '{
                "full_name": "Antonio Ejemplo Modelo",
                "entity_type": "person",
                "date_of_birth": "1972-02-29",
                "nationality": "ES",
                "include_adverse_media": false,
                "vendor_data": "user-1234"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.aml.screen(
                full_name="Antonio Ejemplo Modelo",
                entity_type="person",
                date_of_birth="1972-02-29",
                nationality="ES",
                include_adverse_media=False,
                vendor_data="user-1234",
            )
            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.aml.screen({
              full_name: "Antonio Ejemplo Modelo",
              entity_type: "person",
              date_of_birth: "1972-02-29",
              nationality: "ES",
              include_adverse_media: false,
              vendor_data: "user-1234",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.AML.Screen(ctx, didit.AMLScreenParams{\n\tFullName:            \"Antonio Ejemplo Modelo\",\n\tEntityType:          didit.Some(didit.AMLScreenParamsEntityType(\"person\")),\n\tDateOfBirth:         didit.String(\"1972-02-29\"),\n\tNationality:         didit.String(\"ES\"),\n\tIncludeAdverseMedia: didit.Bool(false),\n\tVendorData:          didit.String(\"user-1234\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: |-
            import java.time.LocalDate;
            import me.didit.Didit;
            import me.didit.types.AmlScreenParams;

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

            var result = client.aml().screen(AmlScreenParams.builder()
                    .fullName("Antonio Ejemplo Modelo")
                    .entityType(AmlScreenParams.EntityType.of("person"))
                    .dateOfBirth(LocalDate.parse("1972-02-29"))
                    .nationality("ES")
                    .includeAdverseMedia(false)
                    .vendorData("user-1234")
                    .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->aml->screen([
                'full_name' => 'Antonio Ejemplo Modelo',
                'entity_type' => 'person',
                'date_of_birth' => '1972-02-29',
                'nationality' => 'ES',
                'include_adverse_media' => false,
                'vendor_data' => 'user-1234',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.aml.screen(
              full_name: "Antonio Ejemplo Modelo",
              entity_type: "person",
              date_of_birth: "1972-02-29",
              nationality: "ES",
              include_adverse_media: false,
              vendor_data: "user-1234"
            )
            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.Aml.ScreenAsync(new AmlScreenParams
            {
                FullName = "Antonio Ejemplo Modelo",
                EntityType = new AmlScreenParamsEntityType("person"),
                DateOfBirth = "1972-02-29",
                Nationality = "ES",
                IncludeAdverseMedia = false,
                VendorData = "user-1234",
            });
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  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.