curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=ZAF" \
-F "services=zaf_criminal_face_screening" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "selfie=@./selfie.jpg"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="ZAF",
services=["zaf_criminal_face_screening"],
consent=True,
vendor_data="user-1234",
selfie=open("selfie.jpg", "rb"),
)
print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "ZAF",
services: ["zaf_criminal_face_screening"],
consent: true,
vendor_data: "user-1234",
selfie: await fileFromPath("selfie.jpg"),
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "ZAF",
Services: didit.Some([]string{"zaf_criminal_face_screening"}),
Consent: didit.Bool(true),
VendorData: didit.String("user-1234"),
Selfie: didit.Some(didit.FileFromPath("selfie.jpg")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("ZAF")
.services(List.of("zaf_criminal_face_screening"))
.consent(true)
.vendorData("user-1234")
.selfie(Path.of("selfie.jpg"))
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'ZAF',
'services' => ['zaf_criminal_face_screening'],
'consent' => true,
'vendor_data' => 'user-1234',
'selfie' => File::fromPath('selfie.jpg'),
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "ZAF",
services: ["zaf_criminal_face_screening"],
consent: true,
vendor_data: "user-1234",
selfie: Pathname("selfie.jpg")
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "ZAF",
Services = new string[] { "zaf_criminal_face_screening" },
Consent = true,
VendorData = "user-1234",
Selfie = FileUpload.FromPath("selfie.jpg"),
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "ZAF",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"criminal_matches": "sample_value",
"face_quality": "sample_value",
"request_id": "SAMPLE-12345"
},
"validation": {
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "ZAF",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "ZAF",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "ZAF",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_IMAGE_UNUSABLE",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
🇿🇦 दक्षिण अफ़्रीका
दक्षिण अफ़्रीका - चेहरे से आपराधिक स्क्रीनिंग API
Didit के ज़रिए दक्षिण अफ़्रीका के आधिकारिक डेटाबेस में चेहरे से आपराधिक स्क्रीनिंग। प्रति कॉल $8.00 से, कोई अनुबंध नहीं, कोई न्यूनतम नहीं।
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=ZAF" \
-F "services=zaf_criminal_face_screening" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "selfie=@./selfie.jpg"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="ZAF",
services=["zaf_criminal_face_screening"],
consent=True,
vendor_data="user-1234",
selfie=open("selfie.jpg", "rb"),
)
print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "ZAF",
services: ["zaf_criminal_face_screening"],
consent: true,
vendor_data: "user-1234",
selfie: await fileFromPath("selfie.jpg"),
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "ZAF",
Services: didit.Some([]string{"zaf_criminal_face_screening"}),
Consent: didit.Bool(true),
VendorData: didit.String("user-1234"),
Selfie: didit.Some(didit.FileFromPath("selfie.jpg")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("ZAF")
.services(List.of("zaf_criminal_face_screening"))
.consent(true)
.vendorData("user-1234")
.selfie(Path.of("selfie.jpg"))
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'ZAF',
'services' => ['zaf_criminal_face_screening'],
'consent' => true,
'vendor_data' => 'user-1234',
'selfie' => File::fromPath('selfie.jpg'),
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "ZAF",
services: ["zaf_criminal_face_screening"],
consent: true,
vendor_data: "user-1234",
selfie: Pathname("selfie.jpg")
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "ZAF",
Services = new string[] { "zaf_criminal_face_screening" },
Consent = true,
VendorData = "user-1234",
Selfie = FileUpload.FromPath("selfie.jpg"),
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "ZAF",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"criminal_matches": "sample_value",
"face_quality": "sample_value",
"request_id": "SAMPLE-12345"
},
"validation": {
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "ZAF",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "ZAF",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "ZAF",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_IMAGE_UNUSABLE",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
यह सेवा चेहरे की छवि को प्रकाशित आपराधिक-रिकॉर्ड डेटासेट से स्क्रीन करती है, ताकि संभावित मिलान सामने आएँ। Didit इस सेवा को
POST /v3/database-validation/ के माध्यम से उपलब्ध कराती है, ताकि आप सबमिट किए गए डेटा की प्रामाणिक स्रोत से तुलना कर सकें और सामान्यीकृत मिलान परिणाम प्राप्त कर सकें।
कवरेज
- कवरेज: —
- देश: दक्षिण अफ़्रीका
- सेवा ID:
zaf_criminal_face_screening - डेटा डोमेन: आपराधिक
- श्रेणी: आपराधिक
इनपुट
| फ़ील्ड | आवश्यक | उदाहरण |
|---|---|---|
selfie | हाँ | @./selfie.jpg |
score_level | नहीं | standard |
max_matches | नहीं | 10 |
vendor_data | नहीं | user-1234 |
- आवश्यक इनपुट:
selfie - वैकल्पिक इनपुट:
score_level,max_matches,vendor_data - सहमति: आवश्यक
- वर्कफ़्लो उपलब्धता: वर्कफ़्लो में उपलब्ध
- कवरेज: —
- कीमत: प्रति सफल क्वेरी $8.00
बॉडी पैरामीटर
string
डिफ़ॉल्ट:"ZAF"
आवश्यक
इस डेटाबेस सेवा के लिए ISO 3166-1 alpha-3 देश कोड।उदाहरण:
ZAFstring
डिफ़ॉल्ट:"zaf_criminal_face_screening"
आवश्यक
इस सेवा ID को शामिल करने वाला एरे। सेवा को पिन करने से अनुरोध इसी सटीक डेटाबेस तक सीमित रहता है।उदाहरण:
zaf_criminal_face_screeningboolean
डिफ़ॉल्ट:"true"
आवश्यक
इस सेवा के लिए अंतिम उपयोगकर्ता की स्पष्ट सहमति।उदाहरण:
truefile
आवश्यक
बायोमेट्रिक डेटाबेस सत्यापन के लिए अपलोड की जाने वाली सेल्फ़ी इमेज फ़ाइल। स्वीकृत फ़ॉर्मेट: JPEG, PNG या WebP।उदाहरण:
@./selfie.jpgstring
इस डेटाबेस सेवा के लिए आवश्यक
score_level मान।उदाहरण: standardstring
इस डेटाबेस सेवा के लिए आवश्यक
max_matches मान।उदाहरण: 10string
डिफ़ॉल्ट:"user-1234"
इस व्यक्ति के लिए आपका स्थायी उपयोगकर्ता संदर्भ, जैसे आपकी आंतरिक उपयोगकर्ता ID। Didit इसका उपयोग स्टैंडअलोन जाँचों को उसी अंतिम उपयोगकर्ता से जोड़ने और डुप्लिकेट पहचान से होने वाले शोर को कम करने के लिए करती है।उदाहरण:
user-1234इनपुट नियम और सत्यापन नोट्स
- ऊपर सूचीबद्ध फ़ील्ड उसी रूप में भेजें जैसे उन्हें उपयोगकर्ता या दस्तावेज़ से कैप्चर किया गया हो।
- Didit डेटाबेस को कॉल करने से पहले आवश्यक फ़ील्ड का सत्यापन करती है। स्रोत लुकअप से पहले अस्वीकार किए गए अनुरोधों का शुल्क नहीं लिया जाता।
इसे कैसे कॉल करें
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=ZAF" \
-F "services=zaf_criminal_face_screening" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "selfie=@./selfie.jpg"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="ZAF",
services=["zaf_criminal_face_screening"],
consent=True,
vendor_data="user-1234",
selfie=open("selfie.jpg", "rb"),
)
print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "ZAF",
services: ["zaf_criminal_face_screening"],
consent: true,
vendor_data: "user-1234",
selfie: await fileFromPath("selfie.jpg"),
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "ZAF",
Services: didit.Some([]string{"zaf_criminal_face_screening"}),
Consent: didit.Bool(true),
VendorData: didit.String("user-1234"),
Selfie: didit.Some(didit.FileFromPath("selfie.jpg")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("ZAF")
.services(List.of("zaf_criminal_face_screening"))
.consent(true)
.vendorData("user-1234")
.selfie(Path.of("selfie.jpg"))
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'ZAF',
'services' => ['zaf_criminal_face_screening'],
'consent' => true,
'vendor_data' => 'user-1234',
'selfie' => File::fromPath('selfie.jpg'),
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "ZAF",
services: ["zaf_criminal_face_screening"],
consent: true,
vendor_data: "user-1234",
selfie: Pathname("selfie.jpg")
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "ZAF",
Services = new string[] { "zaf_criminal_face_screening" },
Consent = true,
VendorData = "user-1234",
Selfie = FileUpload.FromPath("selfie.jpg"),
});
Console.WriteLine(JsonSerializer.Serialize(result));
हर सफल कॉल HTTP 200 लौटाती है। outcome_code फ़ील्ड बताता है कि वास्तव में क्या हुआ, जैसे वास्तविक बायोमेट्रिक मिलान न होना (BIOMETRIC_NO_MATCH) और ऐसी सेल्फ़ी जिसे प्रोसेस नहीं किया जा सका (BIOMETRIC_IMAGE_UNUSABLE) के बीच अंतर करना। दिखाया गया status डिफ़ॉल्ट सुविधा की स्थिति है; आपकी कॉन्फ़िगर की गई आंशिक मिलान / कोई मिलान नहीं कार्रवाइयाँ इसे बदल सकती हैं।MATCH - रजिस्ट्री ने पहचान की पुष्टि की और जाँचे गए हर फ़ील्ड का मिलान हुआ।{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "ZAF",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"criminal_matches": "sample_value",
"face_quality": "sample_value",
"request_id": "SAMPLE-12345"
},
"validation": {
"identification_number": "full_match"
}
}
]
}
NO_MATCH - सबमिट किए गए डेटा के लिए रजिस्ट्री से कोई मिलान नहीं मिला।{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "ZAF",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
BIOMETRIC_NO_MATCH - चेहरा मिलान स्कोर स्वीकृति सीमा से नीचे था, यानी सेल्फ़ी रजिस्ट्री की फ़ोटो वाले व्यक्ति की नहीं है।{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "ZAF",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
BIOMETRIC_IMAGE_UNUSABLE - सेल्फ़ी प्रोसेस नहीं की जा सकी (खाली, चेहरा नहीं, कम गुणवत्ता, या रजिस्ट्री उसे पढ़ नहीं सकी)। उपयोगकर्ता से सेल्फ़ी दोबारा लेने के लिए कहें।{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "ZAF",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_IMAGE_UNUSABLE",
"service_id": "zaf_criminal_face_screening",
"service_name": "South Africa - Criminal Screening by Face",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
लौटाया गया डेटा
source_data में सटीक कौन-से फ़ील्ड दिखेंगे, यह इस बात पर निर्भर करता है कि रजिस्ट्री क्या लौटाती है। zaf_criminal_face_screening के लिए जनरेट किया गया उदाहरण फ़िलहाल इस सामान्यीकृत संरचना को दस्तावेज़ करता है:
criminal_matchesface_qualityrequest_id
मूल्य निर्धारण और SLA
दक्षिण अफ़्रीका - चेहरे से आपराधिक स्क्रीनिंग क्वेरी केवल तभी बिल की जाती हैं जब Didit को सत्यापन स्रोत से निर्णायक परिणाम मिलता है।- प्रति कॉल कीमत: $8.00 USD।
- बिलिंग: प्रति सफल क्वेरी। जब रजिस्ट्री तक पहुँच न हो, आवश्यक फ़ील्ड गायब हों, या अनुरोध स्रोत तक पहुँचने से पहले अस्वीकार हो जाए, तब आपसे शुल्क नहीं लिया जाता।
- विलंबता: सामान्य p95 2 s से कम।
- उपलब्धता: Didit की ओर से प्रति तिमाही 99.9%; डाउनस्ट्रीम स्रोत की उपलब्धता देश और डेटासेट के अनुसार अलग होती है।
आगे पढ़ें
अंतिम संशोधन 7 नवंबर 2026