curl -X POST 'https://verification.didit.me/v3/businesses/aml-monitoring/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"is_enabled": true, "vendor_data_list": ["company-123", "company-456"]}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.businesses.set_aml_monitoring(
is_enabled=True,
estimate_only=True,
vendor_data_list=["company-123", "company-456"],
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.businesses.setAmlMonitoring({
is_enabled: true,
estimate_only: true,
vendor_data_list: ["company-123", "company-456"],
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Businesses.SetAMLMonitoring(ctx, didit.BusinessesSetAMLMonitoringParams{
IsEnabled: true,
EstimateOnly: didit.Bool(true),
VendorDataList: didit.Some([]string{"company-123", "company-456"}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.BusinessesSetAmlMonitoringParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.businesses().setAmlMonitoring(BusinessesSetAmlMonitoringParams.builder()
.isEnabled(true)
.estimateOnly(true)
.vendorDataList(List.of("company-123", "company-456"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->businesses->setAmlMonitoring([
'is_enabled' => true,
'estimate_only' => true,
'vendor_data_list' => ['company-123', 'company-456'],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.businesses.set_aml_monitoring(
is_enabled: true,
estimate_only: true,
vendor_data_list: ["company-123", "company-456"]
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Businesses.SetAmlMonitoringAsync(new BusinessesSetAmlMonitoringParams
{
IsEnabled = true,
EstimateOnly = true,
VendorDataList = new string[] { "company-123", "company-456" },
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"users_total": 123,
"already_enabled": 123,
"with_existing_aml": 123,
"needing_screening": 123,
"skipped_no_identity_data": 123,
"skipped_blocked": 123,
"estimated_screening_cost_usd": 0.2,
"estimated_annual_monitoring_cost_usd": 0.07,
"balance_sufficient": true,
"unmatched": [
"<string>"
]
}{
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "PENDING",
"is_enabled": true,
"target_type": "user",
"total": 123,
"processed": 123,
"outcomes": {
"enabled": 123,
"screened_and_enabled": 123,
"already_enabled": 123,
"disabled": 123,
"skipped_no_identity_data": 123,
"skipped_blocked": 123,
"skipped_sandbox": 123,
"failed_provider": 123,
"failed_insufficient_balance": 123
},
"results": [
{
"didit_internal_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"vendor_data": "<string>",
"outcome": "enabled"
}
],
"error": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"estimate": {
"users_total": 123,
"already_enabled": 123,
"with_existing_aml": 123,
"needing_screening": 123,
"skipped_no_identity_data": 123,
"skipped_blocked": 123,
"estimated_screening_cost_usd": 0.2,
"estimated_annual_monitoring_cost_usd": 0.07,
"balance_sufficient": true
},
"unmatched": [
"<string>"
]
}{
"error": "<string>",
"estimate": {
"users_total": 123,
"already_enabled": 123,
"with_existing_aml": 123,
"needing_screening": 123,
"skipped_no_identity_data": 123,
"skipped_blocked": 123,
"estimated_screening_cost_usd": 0.2,
"estimated_annual_monitoring_cost_usd": 0.07,
"balance_sufficient": true
}
}AMLモニタリングを企業単位でオン/オフ切り替えるAPI
Diditのこのエンドポイントは、複数企業のAML継続的なモニタリングを1回の呼び出しで一括オン/オフします。費用見積もりのドライラン、ポーリング可能なジョブ、企業ごとの結果に対応しています。
curl -X POST 'https://verification.didit.me/v3/businesses/aml-monitoring/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"is_enabled": true, "vendor_data_list": ["company-123", "company-456"]}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.businesses.set_aml_monitoring(
is_enabled=True,
estimate_only=True,
vendor_data_list=["company-123", "company-456"],
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.businesses.setAmlMonitoring({
is_enabled: true,
estimate_only: true,
vendor_data_list: ["company-123", "company-456"],
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Businesses.SetAMLMonitoring(ctx, didit.BusinessesSetAMLMonitoringParams{
IsEnabled: true,
EstimateOnly: didit.Bool(true),
VendorDataList: didit.Some([]string{"company-123", "company-456"}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.BusinessesSetAmlMonitoringParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.businesses().setAmlMonitoring(BusinessesSetAmlMonitoringParams.builder()
.isEnabled(true)
.estimateOnly(true)
.vendorDataList(List.of("company-123", "company-456"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->businesses->setAmlMonitoring([
'is_enabled' => true,
'estimate_only' => true,
'vendor_data_list' => ['company-123', 'company-456'],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.businesses.set_aml_monitoring(
is_enabled: true,
estimate_only: true,
vendor_data_list: ["company-123", "company-456"]
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Businesses.SetAmlMonitoringAsync(new BusinessesSetAmlMonitoringParams
{
IsEnabled = true,
EstimateOnly = true,
VendorDataList = new string[] { "company-123", "company-456" },
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"users_total": 123,
"already_enabled": 123,
"with_existing_aml": 123,
"needing_screening": 123,
"skipped_no_identity_data": 123,
"skipped_blocked": 123,
"estimated_screening_cost_usd": 0.2,
"estimated_annual_monitoring_cost_usd": 0.07,
"balance_sufficient": true,
"unmatched": [
"<string>"
]
}{
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "PENDING",
"is_enabled": true,
"target_type": "user",
"total": 123,
"processed": 123,
"outcomes": {
"enabled": 123,
"screened_and_enabled": 123,
"already_enabled": 123,
"disabled": 123,
"skipped_no_identity_data": 123,
"skipped_blocked": 123,
"skipped_sandbox": 123,
"failed_provider": 123,
"failed_insufficient_balance": 123
},
"results": [
{
"didit_internal_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"vendor_data": "<string>",
"outcome": "enabled"
}
],
"error": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"estimate": {
"users_total": 123,
"already_enabled": 123,
"with_existing_aml": 123,
"needing_screening": 123,
"skipped_no_identity_data": 123,
"skipped_blocked": 123,
"estimated_screening_cost_usd": 0.2,
"estimated_annual_monitoring_cost_usd": 0.07,
"balance_sufficient": true
},
"unmatched": [
"<string>"
]
}{
"error": "<string>",
"estimate": {
"users_total": 123,
"already_enabled": 123,
"with_existing_aml": 123,
"needing_screening": 123,
"skipped_no_identity_data": 123,
"skipped_blocked": 123,
"estimated_screening_cost_usd": 0.2,
"estimated_annual_monitoring_cost_usd": 0.07,
"balance_sufficient": true
}
}概要
選択した企業エンティティに対して継続的なAMLモニタリングを有効化または無効化します。動作はBusiness ConsoleのAML Ongoing monitoringアクションとまったく同じです。Consoleとこのエンドポイントは同じ内部処理を実行するため、ルール、請求、結果はすべて同一です。 まずestimate_only: trueを送信すると、選択された企業の数、新たにAMLスクリーニングが必要な企業の数、1回限りのスクリーニング費用、年間のモニタリング費用を確認できます。ドライランでは何も書き込まれません。見積もりはユーザーエンドポイントと同じフィールド名を使用するため、users_totalは選択された企業の数を表します。
選択内容の処理方法
- モニタリング対象のスクリーニングは企業1社につき1件です。 複数回認証を行った企業でも、モニタリングと請求は1回のみです。無効化すると、その企業のすべてのスクリーニングでモニタリングがオフになります。
- AMLスクリーニングがない企業は、先にスクリーニングされます。 Diditはその企業用に新しいAML検証を作成し(企業のVerificationsタブに表示されます)、通常のAMLスクリーニングとして請求したうえで、そのスクリーニングのモニタリングを有効にします。スクリーニングには企業の法人名(または表示名)と国が使用されます。名前がまったくない企業は、何も通知されずに除外されるのではなく、
skipped_no_identity_dataとして報告されます。 - サンドボックスのアプリケーションではスクリーニングは作成されません(
skipped_sandbox)。 - 残高は事前に確認されます。 残高が見積額に満たない場合、有効化は
403で拒否されます。レスポンスには見積もりが含まれるため、チャージが必要な金額がわかります。 - 年次更新。 新たにモニタリング対象となった企業には、次回の更新日に年間モニタリング料金が請求されます。この日付は、ConsoleのOngoing monitoring列に表示される日付と同じです。無効化すると更新は停止しますが、すでに請求済みの期間について払い戻しは行われません。
選択とバッチサイズ
企業はvendor_data_list、didit_internal_id_list、またはその両方を使用して選択できます。2つのリストはOR条件で結合されます。1回のリクエストで受け付けられる識別子は、両リストの合計で最大1000件です。アプリケーション内のどの企業にも一致しない識別子は、送信されたとおりの形でunmatchedに返され、それによってリクエストが失敗することはありません。何にも一致しない選択は空のジョブ(total: 0)として完了し、すべての識別子が一覧に含まれます。これは一括削除エンドポイントと同じ規則です。
インライン処理とバックグラウンド処理
20社以下の企業を選択した場合はインラインで処理され、完了したジョブとともに200が返されます。それを超える数の企業を選択した場合は、PENDING状態のジョブとともに202が返されます。statusがCOMPLETEDまたはFAILEDになるまでAMLモニタリングジョブの取得をポーリングしてください。いずれの場合も、ジョブには企業ごとにoutcomeを含むresultsエントリが1件ずつ含まれます。
outcome | 意味 |
|---|---|
enabled | 既存のAMLスクリーニングでモニタリングが有効になりました。 |
screened_and_enabled | 新しいAMLスクリーニングが作成され(請求対象)、そのスクリーニングでモニタリングが有効になりました。 |
already_enabled | モニタリングはすでに有効でした。変更はなく、請求も発生していません。 |
disabled | その企業のすべてのスクリーニングでモニタリングがオフになりました。 |
skipped_no_identity_data | その企業にはスクリーニングに使用できる法人名や表示名がありません。 |
skipped_sandbox | サンドボックスのアプリケーションです。スクリーニングは作成されません。 |
failed_provider | スクリーニングを完了できませんでした。後で再試行してください。 |
failed_insufficient_balance | ジョブの実行中に残高が不足しました。 |
Webhook
モニタリングの切り替え自体ではWebhookは送信されません。モニタリングが有効になると、再スクリーニングのたびに継続的なAMLモニタリングで説明されている通常のstatus.updatedおよびdata.updatedイベントが引き続き送信されます。
権限
アプリケーションの有効なAPIキーであれば、どれでもこのエンドポイントを呼び出せます。DiditのAPIキーは役割単位ではなく、アプリケーション単位です。Consoleの役割と権限は、人がConsoleで何をできるかを決めるものであり、Management APIのトラフィックに対しては評価されません。関連ページ
承認
お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys
ボディ
vendor_data_list、didit_internal_id_list、またはその両方で企業を選択します(2つのリストはORで結合されます)。1回のリクエストで指定できる識別子は、両方のリストを合わせて最大1000件です。
モニタリングを有効にする場合はtrue、無効にする場合はfalseです。
trueの場合、費用の見積もりを返し、書き込みは一切行いません(スクリーニング、請求、ジョブのいずれも発生しません)。
切り替える企業のお客様独自の識別子で、送信した値と完全一致で照合されます。
切り替える企業のDidit内部IDです。作成、取得、一覧の各エンドポイントが返すdidit_internal_idを指定します。
レスポンス
estimate_onlyがtrueの場合は見積もり、インラインで処理された選択の場合は完了したジョブです。
- Option 1
- Option 2
費用のプレビュー。estimate_onlyがtrueの場合に直接返されます(何も書き込まれません)。
選択条件に一致したプロフィール。
すでにモニタリング中のプロフィール(有効化時には何も行われず、無効化するとこれらがオフになります)。
既存のAMLスクリーニングがモニタリング対象に切り替えられるプロファイル(新たなスクリーニングは行われません)。
AMLスクリーニングが一度も行われておらず、最初にスクリーニングが行われるプロファイル(通常のAMLスクリーニングとして請求されます)。
本人情報が不足しているためスクリーニングできないプロフィール。
スキップされるブロック済みユーザーの数(企業の場合は常に0)。
新しいスクリーニングの1回限りの費用です。
0.2
モニタリング対象となるプロファイルの年間モニタリング費用。
0.07
組織の残高でスクリーニングと初年度のモニタリングを賄えるかどうか。
このアプリケーション内のどのプロフィールにも一致しなかったリクエストの識別子。送信されたとおりの値で返されます。