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
فعّل مراقبة AML المستمرة للشركات أو أوقفها لعدد كبير منها بطلب واحد، مع تقدير للتكلفة قبل التنفيذ ومهمة قابلة للاستعلام ونتيجة لكل شركة. من Didit.
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 المستمرة للـكيانات الشركات المحددة، تماماً كما يفعل إجراء مراقبة AML المستمرة في Business Console. وتشغّل Business Console ونقطة النهاية هذه العملية الأساسية نفسها، لذا فالقواعد والفوترة والنتائج متطابقة. أرسلestimate_only: true أولاً لمعرفة عدد الشركات المحددة، وعدد الشركات التي تحتاج إلى فحص AML جديد، وتكلفة الفحص لمرة واحدة، وتكلفة المراقبة السنوية. لا يُكتب أي شيء في وضع التشغيل التجريبي. يستخدم التقدير أسماء الحقول نفسها المستخدمة في endpoint المستخدمين، لذا فإن users_total هو عدد الشركات المحددة.
كيفية معالجة الاختيار
- فحص واحد خاضع للمراقبة لكل شركة. تُراقَب الشركة التي خضعت للتحقق عدة مرات وتُفوَّتر مرة واحدة. يؤدي التعطيل إلى إيقاف المراقبة عبر جميع فحوص الشركة.
- تُفحص الشركات التي لا تملك فحص AML أولاً. تنشئ Didit فحص AML جديداً لها (يظهر في تبويب التحققات الخاص بالشركة)، وتُفوَّتر تكلفته كتكلفة فحص AML عادي، ثم تُفعَّل المراقبة عليه. يستخدم الفحص الاسم القانوني للشركة (أو اسم العرض) وبلدها. والشركة التي لا تملك أي اسم تُبلَّغ بالحالة
skipped_no_identity_dataبدلاً من أن تُستبعد بصمت. - لا تنشئ تطبيقات البيئة التجريبية فحوصات أبداً (
skipped_sandbox). - يُفحص الرصيد مسبقاً. يُرفض التفعيل برمز
403عندما لا يغطي رصيدك التقدير، وتتضمن الاستجابة التقدير حتى تعرف مقدار ما تحتاج إلى شحنه. - التجديد السنوي. تُحتسب على الشركة المُراقَبة حديثاً قيمة المراقبة السنوية عند تاريخ تجديدها التالي، وهو التاريخ نفسه الذي تعرضه Console في عمود المراقبة المستمرة. يوقف التعطيل التجديد، ولا يسترد فترةً سبق احتسابها.
الاختيار وحجم الدفعة
اختر الشركات باستخدامvendor_data_list أو didit_internal_id_list أو كليهما؛ والقائمتان تُجمعان بمنطق OR. يقبل الطلب 1000 معرّف كحد أقصى عبر القائمتين معاً. تُعاد المعرّفات التي لا تطابق أي شركة في تطبيقك ضمن unmatched كما أُرسلت تماماً، ولا تُفشل الطلبَ أبداً: الاختيار الذي لا يطابق شيئاً يكتمل كمهمة فارغة (total: 0) مع إدراج كل المعرّفات، وذلك وفق الأسلوب نفسه المتبع في endpoints الحذف الدفعي.
التنفيذ المباشر أو في الخلفية
تُعالَج الاختيارات التي تضم 20 شركة أو أقل مباشرة، ويعيد الاستدعاء200 مع المهمة المكتملة. أما الاختيارات الأكبر فتعيد 202 مع مهمة بحالة PENDING؛ استعلم عن الحصول على مهمة مراقبة AML حتى تصبح status بالقيمة COMPLETED أو FAILED. وفي الحالتين تحمل المهمة إدخالاً واحداً في results لكل شركة مع outcome الخاص به.
outcome | المعنى |
|---|---|
enabled | تم تفعيل المراقبة على فحص AML موجود. |
screened_and_enabled | أُنشئ فحص AML جديد (وتُفوَّتر تكلفته) وفُعّلت المراقبة عليه. |
already_enabled | كانت المراقبة مفعّلة بالفعل؛ لم يتغير شيء ولم تُفوَّتر أي تكلفة. |
disabled | أُوقفت المراقبة عبر كل فحوص الشركة. |
skipped_no_identity_data | ليس للشركة اسم قانوني ولا اسم عرض لفحصه. |
skipped_sandbox | تطبيق بيئة تجريبية؛ لا يُنشأ أي فحص. |
failed_provider | تعذّر إكمال الفحص. أعد المحاولة لاحقاً. |
failed_insufficient_balance | نفد الرصيد أثناء تشغيل المهمة. |
webhook
لا يُصدر تبديل المراقبة أي webhook خاص به. وبمجرد تفعيل المراقبة، تستمر عمليات إعادة الفحص في إطلاق الأحداث المعتادةstatus.updated وdata.updated الموضحة في مراقبة AML المستمرة.
الأذونات
يمكن لأي مفتاح API نشط للتطبيق استدعاء نقطة النهاية هذه. مفاتيح Didit API مرتبطة بالتطبيق وليست بالأدوار. أما الأدوار والأذونات في Console فتحدد ما يمكن للشخص فعله داخل Console، ولا تُطبَّق على حركة Management API.ذات صلة
- الحصول على مهمة مراقبة AML
- تبديل مراقبة AML للمستخدمين
- مراقبة AML المستمرة
- فحص AML للشركات
- عرض الشركات
التفويضات
مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console. يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير 404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع https://docs.didit.me/console/api-keys.
الجسم
حدد الشركات باستخدام vendor_data_list أو didit_internal_id_list أو كليهما (يتم الجمع بين القائمتين باستخدام المعامل OR). بحد أقصى 1000 معرّف لكل طلب عبر كلتا القائمتين.
true لتفعيل المراقبة، وfalse لتعطيلها.
عند التعيين على true، يُرجع تقدير التكلفة ولا ينفذ أي عمليات كتابة - لا فحص، ولا فوترة، ولا مهمة.
المعرّفات الخاصة بك للشركات المراد تبديل حالتها، وتتم مطابقتها تماماً كما أُرسلت.
المعرّفات الداخلية لـ Didit للشركات المراد تبديل حالتها - وهي معرّفات didit_internal_id التي تُرجعها endpoints الخاصة بالإنشاء والجلب والقائمة.
الاستجابة
التقدير (عندما يكون estimate_only صحيحاً) أو المهمة المكتملة لاختيار تمت معالجته بشكل مضمّن.
- Option 1
- Option 2
معاينة التكلفة. يتم إرجاعها مباشرة عندما يكون estimate_only صحيحاً (لا يتم كتابة أي شيء).
الملفات الشخصية المطابقة للتحديد.
الملفات الشخصية الخاضعة للمراقبة بالفعل (لا يلزم اتخاذ أي إجراء عند التفعيل؛ هذه هي الملفات التي يتم إيقافها عند التعطيل).
الملفات الشخصية التي سيتم تحويل فحص AML الحالي الخاص بها إلى قيد المراقبة (دون إجراء فحص جديد).
الملفات الشخصية التي لا تخضع لأي فحص AML وسيُجرى فحصها أولاً (تتم فوترتها كفحص AML عادي).
الملفات الشخصية التي لا يمكن فحصها بسبب نقص بيانات الهوية.
المستخدمون المحظورون الذين سيتم تخطيهم (تكون دائماً 0 للشركات).
التكلفة لمرة واحدة لعمليات الفحص الجديدة.
0.2
تكلفة المراقبة السنوية للملفات الشخصية التي ستصبح خاضعة للمراقبة.
0.07
ما إذا كان رصيد المؤسسة يغطي الفحص بالإضافة إلى السنة الأولى من المراقبة.
معرّفات الطلب التي لم تطابق أي ملف تعريف في هذا التطبيق، تماماً كما أُرسلت.