curl -X POST 'https://verification.didit.me/v3/users/aml-monitoring/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"is_enabled": true, "vendor_data_list": ["user-123", "user-456"]}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.users.set_aml_monitoring(
is_enabled=True,
estimate_only=True,
vendor_data_list=["user-123", "user-456"],
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.users.setAmlMonitoring({
is_enabled: true,
estimate_only: true,
vendor_data_list: ["user-123", "user-456"],
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Users.SetAMLMonitoring(ctx, didit.UsersSetAMLMonitoringParams{
IsEnabled: true,
EstimateOnly: didit.Bool(true),
VendorDataList: didit.Some([]string{"user-123", "user-456"}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.UsersSetAmlMonitoringParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.users().setAmlMonitoring(UsersSetAmlMonitoringParams.builder()
.isEnabled(true)
.estimateOnly(true)
.vendorDataList(List.of("user-123", "user-456"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->users->setAmlMonitoring([
'is_enabled' => true,
'estimate_only' => true,
'vendor_data_list' => ['user-123', 'user-456'],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.users.set_aml_monitoring(
is_enabled: true,
estimate_only: true,
vendor_data_list: ["user-123", "user-456"]
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Users.SetAmlMonitoringAsync(new UsersSetAmlMonitoringParams
{
IsEnabled = true,
EstimateOnly = true,
VendorDataList = new string[] { "user-123", "user-456" },
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"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
한 번의 호출로 여러 사용자의 지속적인 AML 모니터링을 켜거나 끕니다. 비용 추정 드라이런, 폴링 가능한 작업, 사용자별 결과를 제공합니다. Didit 제공.
curl -X POST 'https://verification.didit.me/v3/users/aml-monitoring/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"is_enabled": true, "vendor_data_list": ["user-123", "user-456"]}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.users.set_aml_monitoring(
is_enabled=True,
estimate_only=True,
vendor_data_list=["user-123", "user-456"],
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.users.setAmlMonitoring({
is_enabled: true,
estimate_only: true,
vendor_data_list: ["user-123", "user-456"],
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Users.SetAMLMonitoring(ctx, didit.UsersSetAMLMonitoringParams{
IsEnabled: true,
EstimateOnly: didit.Bool(true),
VendorDataList: didit.Some([]string{"user-123", "user-456"}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.UsersSetAmlMonitoringParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.users().setAmlMonitoring(UsersSetAmlMonitoringParams.builder()
.isEnabled(true)
.estimateOnly(true)
.vendorDataList(List.of("user-123", "user-456"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->users->setAmlMonitoring([
'is_enabled' => true,
'estimate_only' => true,
'vendor_data_list' => ['user-123', 'user-456'],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.users.set_aml_monitoring(
is_enabled: true,
estimate_only: true,
vendor_data_list: ["user-123", "user-456"]
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Users.SetAmlMonitoringAsync(new UsersSetAmlMonitoringParams
{
IsEnabled = true,
EstimateOnly = true,
VendorDataList = new string[] { "user-123", "user-456" },
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"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 모니터링을 활성화하거나 비활성화합니다. 이는 비즈니스 콘솔에서 AML 지속적인 모니터링 작업을 수행하는 것과 정확히 같습니다. 콘솔과 이 endpoint는 동일한 기본 작업을 실행하므로 규칙, 결제, 결과가 동일합니다. 먼저estimate_only: true를 전송하여 선택된 사용자 수, 새 AML 스크리닝이 필요한 사용자 수, 일회성 스크리닝 비용, 연간 모니터링 비용을 확인하십시오. 드라이런에서는 아무것도 기록되지 않습니다.
사용 시기
- 프로그래밍 방식 온보딩: API를 통해 가져오거나 생성한 사용자에 대해 수동으로 다시 스크리닝하지 않고 모니터링을 켭니다.
- 오프보딩: 플랫폼을 떠난 사용자에 대해 모니터링과 연간 갱신을 중지합니다.
- 비용 관리: 선택 항목을 확정하기 전에 정확한 비용 영향을 미리 확인합니다.
선택 항목 처리 방식
- 사용자당 모니터링 스크리닝 1건. 여러 번 인증한 사용자는 한 번만 모니터링되며 한 번만 청구됩니다. 비활성화하면 해당 사용자의 모든 스크리닝에 대한 모니터링이 꺼집니다.
- AML 스크리닝이 없는 사용자는 먼저 스크리닝됩니다. Didit는 이러한 사용자에 대해 새 AML 인증을 생성하고(사용자의 인증 탭에 표시됨), 일반 AML 스크리닝과 같이 청구한 뒤 해당 인증에 모니터링을 활성화합니다. 이를 위해서는 사용자의 성명, 생년월일, 국가가 필요합니다. 이 중 하나라도 없는 사용자는 조용히 제외되지 않고
skipped_no_identity_data로 보고됩니다. - 차단된 사용자는 건너뜁니다(
skipped_blocked). 샌드박스 애플리케이션은 스크리닝을 생성하지 않습니다(skipped_sandbox). - 잔액은 미리 확인됩니다. 잔액이 예상 비용을 충당하지 못하면 활성화 요청이
403으로 거부되며, 응답에는 예상 비용이 포함되어 충전할 금액을 알 수 있습니다. - 연간 갱신. 새로 모니터링되는 사용자는 다음 갱신일에 연간 모니터링 가격이 청구됩니다. 이 날짜는 콘솔의 지속적인 모니터링 열에 표시되는 날짜와 같습니다. 비활성화하면 갱신이 중지되지만, 이미 청구된 기간은 환불되지 않습니다.
선택 항목과 배치 크기
vendor_data_list, didit_internal_id_list 중 하나 또는 둘 다로 사용자를 선택합니다. 두 목록은 OR 조건으로 결합됩니다. 하나의 요청에는 두 목록을 합쳐 최대 1000개의 식별자를 포함할 수 있습니다. 애플리케이션에서 일치하는 사용자가 없는 식별자는 전송된 그대로 unmatched에 반환되며, 요청을 실패시키지 않습니다. 일치하는 사용자가 없는 선택은 total: 0인 빈 작업으로 완료되며, 모든 식별자가 나열됩니다. 이는 일괄 삭제 endpoint와 같은 방식입니다.
인라인 처리 또는 백그라운드 처리
20명 이하의 사용자를 선택하면 인라인으로 처리되며, 호출은 완료된 작업과 함께200을 반환합니다. 더 큰 선택은 PENDING 작업과 함께 202를 반환합니다. status가 COMPLETED 또는 FAILED가 될 때까지 AML 모니터링 작업 조회를 폴링하십시오. 어느 경우든 작업에는 사용자별 results 항목이 하나씩 outcome과 함께 포함됩니다.
outcome | 의미 |
|---|---|
enabled | 기존 AML 스크리닝에서 모니터링이 활성화되었습니다. |
screened_and_enabled | 새 AML 스크리닝이 생성되어(청구됨) 모니터링이 활성화되었습니다. |
already_enabled | 모니터링이 이미 활성 상태였습니다. 변경되지 않았으며 청구되지 않았습니다. |
disabled | 사용자의 모든 스크리닝에서 모니터링이 꺼졌습니다. |
skipped_no_identity_data | 스크리닝에 필요한 성명, 생년월일 또는 국가가 사용자에게 없습니다. |
skipped_blocked | 사용자가 차단되었습니다. |
skipped_sandbox | 샌드박스 애플리케이션입니다. 스크리닝이 생성되지 않습니다. |
failed_provider | 스크리닝을 완료할 수 없습니다. 나중에 다시 시도하십시오. |
failed_insufficient_balance | 작업이 실행되는 동안 잔액이 소진되었습니다. |
webhook
모니터링 전환 자체는 webhook을 전송하지 않습니다. 모니터링이 켜지면 재스크리닝 시 지속적인 AML 모니터링에 설명된 일반status.updated 및 data.updated 이벤트가 계속 발생합니다.
권한
애플리케이션의 활성 API 키는 모두 이 endpoint를 호출할 수 있습니다. Didit API 키는 역할이 아닌 애플리케이션 범위입니다. 콘솔의 역할 및 권한은 콘솔에서 사람이 수행할 수 있는 작업을 결정하며, Management API 트래픽에 대해서는 평가되지 않습니다.관련 문서
인증
Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본 키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며 특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나 만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된 IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를 벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write 권한이 없는 키는 세션 링크와 token을 null로 수신합니다. https://docs.didit.me/console/api-keys 를 참고하십시오.
본문
vendor_data_list, didit_internal_id_list 또는 둘 다를 사용하여 사용자를 선택합니다(두 목록은 OR 조건으로 결합됨). 두 목록을 합쳐 요청당 최대 1,000개의 식별자까지 가능합니다.
모니터링을 활성화하려면 true, 비활성화하려면 false입니다.
true인 경우, 예상 비용을 반환하며 쓰기 작업(스크리닝, 결제, 작업)을 수행하지 않습니다.
상태를 전환할 사용자들의 귀하 고유 식별자 목록이며, 전송된 내용과 정확히 일치합니다.
토글할 사용자의 Didit 내부 ID입니다. 생성, 조회 및 목록 endpoint에서 반환된 didit_internal_id입니다.
응답
견적(estimate_only가 true인 경우) 또는 인라인으로 처리된 선택 항목에 대한 완료된 작업입니다.
- Option 1
- Option 2
예상 비용입니다. estimate_only가 true인 경우 직접 반환됩니다(아무것도 기록되지 않음).
선택 조건과 일치하는 프로필 수입니다.
이미 모니터링 중인 프로필(활성화 시 수행할 작업 없음. 비활성화 시 해제되는 대상임).
기존 AML 스크리닝이 모니터링 상태로 전환될 프로필 수(신규 스크리닝 없음).
AML 스크리닝 이력이 없어 먼저 스크리닝을 진행할 프로필 수(일반 AML 스크리닝으로 청구됨).
신원 데이터가 누락되어 스크리닝할 수 없는 프로필 수입니다.
건너뛸 차단된 사용자 수입니다(기업의 경우 항상 0).
새 스크리닝의 일회성 비용입니다.
0.2
모니터링 대상이 될 프로필의 연간 모니터링 비용입니다.
0.07
조직 잔액이 스크리닝과 첫해 모니터링 비용을 충당할 수 있는지 여부입니다.
이 애플리케이션의 어떤 프로필과도 일치하지 않는 요청의 식별자로, 전송된 형태 그대로입니다.