> ## 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スクリーニングAPIは、1,300+の世界のウォッチリストとリアルタイムで照合します。制裁、PEP、ネガティブメディアに対応。2つのスコアによるリスク評価、1件$0.20、月額最低料金なし。



## OpenAPI

````yaml ja/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、制裁、警告/ウォッチリスト、ネガティブメディアの各データセットに対して、個人または企業を1回の呼び出しでスクリーニングします。


        **2スコアモデル。**
        各ヒットには`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`が0以外で、かつ承認しきい値以上の場合は必ず`POSSIBLE_MATCH_FOUND`警告が追加されます(スコアがちょうど0の場合、警告は出ません)。


        **一致スコアの重み。**
        `aml_name_weight`、`aml_dob_weight`、`aml_country_weight`の合計はちょうど100である必要があります(デフォルトは60/25/15)。リクエストに含まれない要素は除外したうえで再正規化されます。`document_number`が一致した場合はゴールデンキーとして扱われ、`match_score`が100に上書きされます。


        **レイテンシ。**
        通常のスクリーニングは通常数秒で完了します。`include_adverse_media=true`の場合、APIはネガティブメディアのエンリッチメントを待機します(最初に約5秒の待機、その後最大約25秒のポーリング)。クライアントのタイムアウトは**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クレジットが1件分課金されます。冪等性により再送されたレスポンスは再度課金されません。残高が不足している場合は、新しいスクリーニングが行われる前に`403`が返されます。


        **サンドボックス。**
        サンドボックスアプリケーションのキーでは、スクリーニングと請求が完全にスキップされ、モックの結果が返されます。`sandbox_scenario`を渡さない限り、結果はヒット0件の`Approved`です。`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文字の任意の再試行安全キーです。同じキーを同じリクエストボディで再利用すると、2回目のスクリーニングを実行・請求することなく元のレスポンスが返されます。異なるボディでキーを再利用すると`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`形式。生年月日の重みにより照合精度が向上します。
                  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`になるリスクスコアのしきい値です。2つのしきい値の間のスコアは`In
                    Review`になります。
                aml_name_weight:
                  type: integer
                  minimum: 0
                  maximum: 100
                  default: 60
                  description: >-
                    ヒットごとの一致スコアにおける氏名類似度の重み。3つの重みの合計はちょうど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: >-
                    スクリーニングをセッションとして保存します（コンソールでの表示、判定エンドポイント、Webhook、ヒットのレビュー）。ステートレスなチェックにするには`false`に設定します。
                vendor_data:
                  type: string
                  description: スクリーニング対象ユーザーに対するお客様側の識別子です。そのまま返され、セッションとともに保存されます。
                metadata:
                  type: object
                  nullable: true
                  description: リクエストとともに保存され、そのまま返される自由形式のJSON。
                sandbox_scenario:
                  type: string
                  description: >-
                    サンドボックス専用のシナリオスラッグ。APIキーがサンドボックスモードのアプリケーションに属する場合にのみ受け付けられ、本番アプリケーションでは拒否されます。単体のスクリーニングには準備対象のセッションがないため、スラッグはスクリーニングリクエスト自体に指定します。`decline_aml_hit`は本番と同じ形式のヒットを1件返してスクリーニングを`Declined`として確定し、`review_aml_possible_match`は`In
                    Review`として確定します。AMLの結果を準備しないシナリオでは、スクリーニングはクリーンのままです。シナリオカタログはGET
                    /v1/sandbox/scenarios/または[サンドボックスとテストデータ](/ja/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: >-
                          `score` >
                          `aml_score_review_threshold`の場合は`Declined`、`score` >
                          `aml_score_approve_threshold`の場合は`In
                          Review`、それ以外（スコアが取得できない場合を含む）は`Approved`です。
                      total_hits:
                        type: integer
                        description: '`hits`内のエントリー数。'
                      entity_type:
                        type: string
                        enum:
                          - person
                          - company
                        description: スクリーニング対象のエンティティタイプをそのまま返します。
                      hits:
                        type: array
                        items:
                          type: object
                          description: >-
                            スクリーニングのヒット1件です。`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_`の後に16進数24文字が続きます。対象者を再度スクリーニングした場合も、一致した同じエンティティは同じ`id`を保持します。AMLヒットレビューのエンドポイントには`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: 設定済みの生年月日の重み（`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`。2つのしきい値によって`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: 人が読める1行の要約です。
                            long_description:
                              type: string
                              description: 人が読める形式の詳細な説明。
                        description: >-
                          `score`が0以外で、かつ`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: 'クリーンなスクリーニング: ヒット0件'
                  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の一致候補が1件あり、リスクスコア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の標準エンベロープ（問題のあるフィールドごとにメッセージの配列1つ）で返されます。フィールド間のルール（重みの合計、しきい値の順序、保存なしのモニタリング）は`{"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: >-
                    `include_ongoing_monitoring=true`と`save_api_request=false`の併用
                  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エンドポイントは、APIキーごとに1分あたり300件の書き込みリクエストという共通の上限を共有します。レスポンスには`X-RateLimit-Limit`、`X-RateLimit-Remaining`、`X-RateLimit-Reset`、`Retry-After`ヘッダーが含まれます。
          content:
            application/json:
              examples:
                Write rate limit exceeded:
                  summary: 現在の1分間に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で取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権（なし、読み取り、書き込み）、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください:
        https://docs.didit.me/console/api-keys

````

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