curl 'https://verification.didit.me/v3/aml-monitoring/jobs/JOB_ID/' \
-H 'x-api-key: YOUR_API_KEY'import time
import requests
url = 'https://verification.didit.me/v3/aml-monitoring/jobs/JOB_ID/'
while True:
job = requests.get(url, headers={'x-api-key': 'YOUR_API_KEY'}).json()
if job['status'] in ('COMPLETED', 'FAILED'):
break
time.sleep(2)
print(job['outcomes'])const url = 'https://verification.didit.me/v3/aml-monitoring/jobs/JOB_ID/';
let job;
do {
await new Promise((r) => setTimeout(r, 2000));
job = await (await fetch(url, { headers: { 'x-api-key': process.env.DIDIT_API_KEY } })).json();
} while (job.status === 'PENDING' || job.status === 'PROCESSING');
console.log(job.outcomes);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/aml-monitoring/jobs/{job_id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/aml-monitoring/jobs/{job_id}/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/aml-monitoring/jobs/{job_id}/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/aml-monitoring/jobs/{job_id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"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"
}Get AML Monitoring Job
Poll the status, outcome counters and per-record results of an AML ongoing monitoring job started from the users or businesses endpoint.
curl 'https://verification.didit.me/v3/aml-monitoring/jobs/JOB_ID/' \
-H 'x-api-key: YOUR_API_KEY'import time
import requests
url = 'https://verification.didit.me/v3/aml-monitoring/jobs/JOB_ID/'
while True:
job = requests.get(url, headers={'x-api-key': 'YOUR_API_KEY'}).json()
if job['status'] in ('COMPLETED', 'FAILED'):
break
time.sleep(2)
print(job['outcomes'])const url = 'https://verification.didit.me/v3/aml-monitoring/jobs/JOB_ID/';
let job;
do {
await new Promise((r) => setTimeout(r, 2000));
job = await (await fetch(url, { headers: { 'x-api-key': process.env.DIDIT_API_KEY } })).json();
} while (job.status === 'PENDING' || job.status === 'PROCESSING');
console.log(job.outcomes);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/aml-monitoring/jobs/{job_id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/aml-monitoring/jobs/{job_id}/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/aml-monitoring/jobs/{job_id}/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/aml-monitoring/jobs/{job_id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"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"
}Overview
Returns an AML ongoing monitoring job started from Toggle AML Monitoring for Users or Toggle AML Monitoring for Businesses: its status, the per-outcome counters and oneresults entry per processed user or business.
Selections of more than 20 profiles run in the background and the toggle call returns 202 with a PENDING job. Poll this endpoint every couple of seconds until status is COMPLETED or FAILED. results fills in as profiles are processed, in processing order, and is complete once the job is COMPLETED. Per-record results are recorded for jobs started through the API; a job started from the Business Console reports counters only.
Job status
status | Meaning |
|---|---|
PENDING | Accepted, not started yet. |
PROCESSING | Running; processed, outcomes and results are updating. |
COMPLETED | Every profile has a result. |
FAILED | The job stopped early. error carries a short generic message and the results recorded before the failure are kept. Re-send the toggle request for the profiles that have no result yet. |
outcome values are documented on the toggle pages.
Permissions
Any active API key of the application can call this endpoint. A job is only visible to the application that created it; any otherjob_id returns 404.
Related
Authorizations
Path Parameters
The job_id returned by the toggle endpoint.
Response
The job.
PENDING, PROCESSING, COMPLETED, FAILED true when the job enables monitoring, false when it disables it.
Which profile family the job toggles.
user, business Profiles the job processes.
Profiles processed so far.
Per-record outcome counters. Every selected profile resolves to exactly one counter; nothing is silently skipped.
Show child attributes
Show child attributes
One entry per processed profile, in processing order. Grows while the job runs; complete once status is COMPLETED. Recorded for jobs started through the API; a job started from the Business Console reports counters only.
Show child attributes
Show child attributes
Generic failure message when status is FAILED; the detailed cause is kept on the platform side.