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"
}'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)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);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.AML.Screen(ctx, didit.AMLScreenParams{
FullName: "Antonio Ejemplo Modelo",
EntityType: didit.Some(didit.AMLScreenParamsEntityType("person")),
DateOfBirth: didit.String("1972-02-29"),
Nationality: didit.String("ES"),
IncludeAdverseMedia: didit.Bool(false),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)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);<?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());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_husing 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));{
"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"
}AMLスクリーニングAPI:制裁・PEP・ウォッチリスト照合
DiditのAMLスクリーニングAPIは、1,300+の世界のウォッチリストとリアルタイムで照合します。制裁、PEP、ネガティブメディアに対応。2つのスコアによるリスク評価、1件$0.20、月額最低料金なし。
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"
}'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)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);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.AML.Screen(ctx, didit.AMLScreenParams{
FullName: "Antonio Ejemplo Modelo",
EntityType: didit.Some(didit.AMLScreenParamsEntityType("person")),
DateOfBirth: didit.String("1972-02-29"),
Nationality: didit.String("ES"),
IncludeAdverseMedia: didit.Bool(false),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)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);<?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());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_husing 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));{
"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"
}承認
お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys
ヘッダー
最大255文字の任意の再試行安全キーです。同じキーを同じリクエストボディで再利用すると、2回目のスクリーニングを実行・請求することなく元のレスポンスが返されます。異なるボディでキーを再利用すると409が返されます。
255ボディ
スクリーニング対象の人物または企業の正式名称。最低2文字で、これはスクリーニングプロバイダー自体の下限です。これより短い名前または空の名前の場合、スクリーニングが実行される前にこのフィールドで400が返されるため、課金は発生しません。
2"Antonio Ejemplo Modelo"
スクリーニング対象のエンティティの種類。デフォルトはpersonです。
person, company 生年月日(個人)または設立日(企業)、YYYY-MM-DD形式。生年月日の重みにより照合精度が向上します。
"1972-02-29"
ISO 3166-1 alpha-2の国コード(例: ES)。無効なコードは400を返します。国の重み付けにより一致精度が向上します。
"ES"
本人確認書類の番号。重み付けはされず、決定的なキーとして機能します: 完全一致の場合はヒットのmatch_scoreが100に上書きされ、明確な不一致の場合はスコアが減点されます。スクリーニングプロバイダーに検索フィルターとして送信されるのは、2〜50文字の場合のみです。この範囲外の値も受け付けられて保存され、スクリーニングも実行されて料金が請求されますが、書類番号による絞り込みは行われません。
これ以下であれば結果がApprovedになるリスクスコアのしきい値です。aml_score_review_threshold以下である必要があります(そうでない場合は400)。
0 <= x <= 100これを超えると結果がDeclinedになるリスクスコアのしきい値です。2つのしきい値の間のスコアはIn Reviewになります。
0 <= x <= 100ヒットごとの一致スコアにおける氏名類似度の重み。3つの重みの合計はちょうど100である必要があります(そうでない場合は400)。
0 <= x <= 100ヒットごとの一致スコアにおける生年月日の重み。
0 <= x <= 100ヒットごとの一致スコアにおける国/国籍の重み。
0 <= x <= 100ヒットごとのカットオフ値。match_scoreがこの値未満のヒットはFalse Positive(リスク評価から除外)となり、この値以上のヒットはUnreviewedの一致候補となります。
0 <= x <= 100ネガティブな報道についてニュースメディアも検索します。結果の収集中に最大約30秒のレイテンシーが加わるため、60秒以上のクライアントタイムアウトを使用してください。
このプロファイルの再スクリーニングを継続し、変更をWebhookで通知します。save_api_request=trueが必要です(指定しない場合は400)。
スクリーニングをセッションとして保存します(コンソールでの表示、判定エンドポイント、Webhook、ヒットのレビュー)。ステートレスなチェックにするにはfalseに設定します。
スクリーニング対象ユーザーに対するお客様側の識別子です。そのまま返され、セッションとともに保存されます。
リクエストとともに保存され、そのまま返される自由形式のJSON。
サンドボックス専用のシナリオスラッグ。APIキーがサンドボックスモードのアプリケーションに属する場合にのみ受け付けられ、本番アプリケーションでは拒否されます。単体のスクリーニングには準備対象のセッションがないため、スラッグはスクリーニングリクエスト自体に指定します。decline_aml_hitは本番と同じ形式のヒットを1件返してスクリーニングをDeclinedとして確定し、review_aml_possible_matchはIn Reviewとして確定します。AMLの結果を準備しないシナリオでは、スクリーニングはクリーンのままです。シナリオカタログはGET /v1/sandbox/scenarios/またはサンドボックスとテストデータを参照してください。
"decline_aml_hit"
レスポンス
スクリーニングが完了しました。aml.statusは設定したしきい値を反映します。内部の掲載下限以上のヒットはすべてaml.hitsに一覧表示され、本人同一性のmatch_score、エンティティのrisk_score、および一致内容を説明するscore_breakdownが含まれます。