curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=GLB" \
-F "services=glb_identity_enrichment" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "email=john.doe@example.com" \
-F "phone=+15550101000" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "country_of_residence=US"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="GLB",
services=["glb_identity_enrichment"],
consent=True,
first_name="John",
last_name="Doe",
phone="+15550101000",
email="john.doe@example.com",
country_of_residence="US",
vendor_data="user-1234",
)
print(result)
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "GLB",
services: ["glb_identity_enrichment"],
consent: true,
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
email: "john.doe@example.com",
country_of_residence: "US",
vendor_data: "user-1234",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "GLB",
Services: didit.Some([]string{"glb_identity_enrichment"}),
Consent: didit.Bool(true),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
Phone: didit.String("+15550101000"),
Email: didit.String("john.doe@example.com"),
CountryOfResidence: didit.String("US"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
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("GLB")
.services(List.of("glb_identity_enrichment"))
.consent(true)
.firstName("John")
.lastName("Doe")
.phone("+15550101000")
.email("john.doe@example.com")
.countryOfResidence("US")
.vendorData("user-1234")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'GLB',
'services' => ['glb_identity_enrichment'],
'consent' => true,
'first_name' => 'John',
'last_name' => 'Doe',
'phone' => '+15550101000',
'email' => 'john.doe@example.com',
'country_of_residence' => 'US',
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "GLB",
services: ["glb_identity_enrichment"],
consent: true,
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
email: "john.doe@example.com",
country_of_residence: "US",
vendor_data: "user-1234"
)
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 = "GLB",
Services = new string[] { "glb_identity_enrichment" },
Consent = true,
FirstName = "John",
LastName = "Doe",
Phone = "+15550101000",
Email = "john.doe@example.com",
CountryOfResidence = "US",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "GLB",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"first_name": "John",
"last_name": "Doe",
"persons_found": 1
},
"validation": {
"full_name": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "GLB",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"first_name": "John",
"last_name": "Dow",
"persons_found": 1
},
"validation": {
"full_name": "partial_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "GLB",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"first_name": "Jane",
"last_name": "Roe",
"persons_found": 1
},
"validation": {
"full_name": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "GLB",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"persons_found": 1
},
"validation": {}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "GLB",
"match_type": null,
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"persons_found": 0
},
"validation": {}
}
]
}
🌐 Global
Pengayaan Identitas Global - API Verifikasi Identitas
Pencarian jaringan identitas global lewat infrastruktur identitas Didit. Bayar per panggilan mulai $0.20, tanpa kontrak, tanpa minimum.
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=GLB" \
-F "services=glb_identity_enrichment" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "email=john.doe@example.com" \
-F "phone=+15550101000" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "country_of_residence=US"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="GLB",
services=["glb_identity_enrichment"],
consent=True,
first_name="John",
last_name="Doe",
phone="+15550101000",
email="john.doe@example.com",
country_of_residence="US",
vendor_data="user-1234",
)
print(result)
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "GLB",
services: ["glb_identity_enrichment"],
consent: true,
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
email: "john.doe@example.com",
country_of_residence: "US",
vendor_data: "user-1234",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "GLB",
Services: didit.Some([]string{"glb_identity_enrichment"}),
Consent: didit.Bool(true),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
Phone: didit.String("+15550101000"),
Email: didit.String("john.doe@example.com"),
CountryOfResidence: didit.String("US"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
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("GLB")
.services(List.of("glb_identity_enrichment"))
.consent(true)
.firstName("John")
.lastName("Doe")
.phone("+15550101000")
.email("john.doe@example.com")
.countryOfResidence("US")
.vendorData("user-1234")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'GLB',
'services' => ['glb_identity_enrichment'],
'consent' => true,
'first_name' => 'John',
'last_name' => 'Doe',
'phone' => '+15550101000',
'email' => 'john.doe@example.com',
'country_of_residence' => 'US',
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "GLB",
services: ["glb_identity_enrichment"],
consent: true,
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
email: "john.doe@example.com",
country_of_residence: "US",
vendor_data: "user-1234"
)
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 = "GLB",
Services = new string[] { "glb_identity_enrichment" },
Consent = true,
FirstName = "John",
LastName = "Doe",
Phone = "+15550101000",
Email = "john.doe@example.com",
CountryOfResidence = "US",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "GLB",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"first_name": "John",
"last_name": "Doe",
"persons_found": 1
},
"validation": {
"full_name": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "GLB",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"first_name": "John",
"last_name": "Dow",
"persons_found": 1
},
"validation": {
"full_name": "partial_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "GLB",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"first_name": "Jane",
"last_name": "Roe",
"persons_found": 1
},
"validation": {
"full_name": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "GLB",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"persons_found": 1
},
"validation": {}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "GLB",
"match_type": null,
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"persons_found": 0
},
"validation": {}
}
]
}
Mengidentifikasi orang (nama, tanggal lahir, alamat, nomor telepon, email, dan ID nasional) serta skor kecocokan nama dari email dan/atau nomor telepon melalui jaringan wawasan risiko global. Dikenai biaya per permintaan. Didit menyediakan layanan ini melalui
POST /v3/database-validation/ sehingga Anda dapat memeriksa data yang dikirim terhadap jaringan identitas yang terhubung dan menerima hasil kecocokan yang sudah dinormalisasi. Ini adalah jaringan pengayaan pihak ketiga, bukan registri pemerintah yang resmi. Jangan sajikan hasilnya sebagai verifikasi dari sumber primer.
Cakupan
- Cakupan: 50+ pasar
- Negara: Global
- ID layanan:
glb_identity_enrichment - Domain data: Identitas
- Kategori: IdentityEnrichment
Input
| Kolom | Wajib | Contoh |
|---|---|---|
email | Tidak | john.doe@example.com |
phone | Tidak | +15550101000 |
first_name | Tidak | John |
last_name | Tidak | Doe |
full_name | Tidak | John Doe |
country_of_residence | Tidak | US |
vendor_data | Tidak | user-1234 |
- Input wajib: —
- Input opsional:
email,phone,first_name,last_name,full_name,country_of_residence,vendor_data - Persetujuan: Wajib
- Ketersediaan alur kerja: Hanya API mandiri
- Cakupan: 50+ pasar
- Harga: $0.20 per kueri yang berhasil
Parameter body
string
default:"GLB"
wajib
Kode negara ISO 3166-1 alpha-3 untuk layanan database ini.Contoh:
GLBstring
default:"glb_identity_enrichment"
wajib
Array yang berisi ID layanan ini. Mengunci layanan membuat permintaan tetap terbatas pada database yang tepat ini.Contoh:
glb_identity_enrichmentboolean
default:"true"
wajib
Persetujuan eksplisit dari pengguna akhir untuk layanan ini.Contoh:
truestring
default:"john.doe@example.com"
Alamat email.Contoh:
john.doe@example.comstring
default:"+15550101000"
Nomor telepon dalam format internasional.Contoh:
+15550101000string
default:"John"
Nama depan yang akan divalidasi.Contoh:
Johnstring
default:"Doe"
Nama belakang yang akan divalidasi.Contoh:
Doestring
Nama lengkap sah yang akan divalidasi.Contoh:
John Doestring
default:"US"
Kode negara tempat tinggal ISO 3166-1 alpha-2 (opsional). Hanya digunakan untuk memfokuskan pencarian identitas.Contoh:
USstring
default:"user-1234"
Referensi pengguna yang stabil untuk orang ini, misalnya ID pengguna internal Anda. Didit menggunakannya untuk menautkan pemeriksaan melalui API mandiri ke pengguna akhir yang sama dan mengurangi gangguan deteksi duplikat.Contoh:
user-1234Aturan input & catatan validasi
- Sediakan setidaknya salah satu dari
emailatauphone. Keduanya adalah kunci pencarian. Permintaan tanpa keduanya tidak dapat menjalankan pencarian pengayaan dan ditolak sebelum pencarian ke sumber (tidak dikenai biaya). - Tambahkan nama setiap kali Anda memilikinya, karena sumber memberi skor pencarian berdasarkan nama tersebut. Kirim
first_namedanlast_name, karena kedua kolom itu yang dibandingkan oleh petavalidationpada respons. Permintaan yang hanya mengirimfull_nametetap diberi skor oleh sumber, tetapi respons akan kembali denganvalidationkosong danmatch_typetingkat atas bernilai null. country_of_residenceadalah kode ISO 3166-1 alpha-2 yang digunakan untuk memfokuskan pencarian.- Setiap pencarian yang selesai dikenai biaya, termasuk pencarian yang tidak menemukan orang sama sekali (
persons_found: 0). Hanya permintaan yang ditolak sebelum pencarian, yaitu tanpaemailmaupunphone, yang gratis.
Cara memanggilnya
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=GLB" \
-F "services=glb_identity_enrichment" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "email=john.doe@example.com" \
-F "phone=+15550101000" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "country_of_residence=US"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="GLB",
services=["glb_identity_enrichment"],
consent=True,
first_name="John",
last_name="Doe",
phone="+15550101000",
email="john.doe@example.com",
country_of_residence="US",
vendor_data="user-1234",
)
print(result)
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "GLB",
services: ["glb_identity_enrichment"],
consent: true,
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
email: "john.doe@example.com",
country_of_residence: "US",
vendor_data: "user-1234",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "GLB",
Services: didit.Some([]string{"glb_identity_enrichment"}),
Consent: didit.Bool(true),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
Phone: didit.String("+15550101000"),
Email: didit.String("john.doe@example.com"),
CountryOfResidence: didit.String("US"),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
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("GLB")
.services(List.of("glb_identity_enrichment"))
.consent(true)
.firstName("John")
.lastName("Doe")
.phone("+15550101000")
.email("john.doe@example.com")
.countryOfResidence("US")
.vendorData("user-1234")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'GLB',
'services' => ['glb_identity_enrichment'],
'consent' => true,
'first_name' => 'John',
'last_name' => 'Doe',
'phone' => '+15550101000',
'email' => 'john.doe@example.com',
'country_of_residence' => 'US',
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "GLB",
services: ["glb_identity_enrichment"],
consent: true,
first_name: "John",
last_name: "Doe",
phone: "+15550101000",
email: "john.doe@example.com",
country_of_residence: "US",
vendor_data: "user-1234"
)
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 = "GLB",
Services = new string[] { "glb_identity_enrichment" },
Consent = true,
FirstName = "John",
LastName = "Doe",
Phone = "+15550101000",
Email = "john.doe@example.com",
CountryOfResidence = "US",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
Setiap panggilan yang berhasil mengembalikan HTTP
200. Kolom outcome_code menunjukkan apa yang sebenarnya terjadi, misalnya membedakan ketidakcocokan biometrik yang sebenarnya (BIOMETRIC_NO_MATCH) dari swafoto yang tidak dapat dibaca (BIOMETRIC_IMAGE_UNUSABLE). status yang ditampilkan adalah status fitur default; tindakan Partial Match / No Match yang Anda konfigurasi dapat menimpanya.MATCH — Email atau telepon berhasil menemukan seseorang, dan nama pada kecocokan terbaik sesuai dengan nama yang Anda kirim.{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "GLB",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"first_name": "John",
"last_name": "Doe",
"persons_found": 1
},
"validation": {
"full_name": "full_match"
}
}
]
}
PARTIAL_MATCH — Email atau telepon berhasil menemukan seseorang, tetapi nama pada kecocokan terbaik hanya sebagian sesuai dengan nama yang Anda kirim.{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "GLB",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"first_name": "John",
"last_name": "Dow",
"persons_found": 1
},
"validation": {
"full_name": "partial_match"
}
}
]
}
NO_MATCH — Email atau telepon berhasil menemukan seseorang, tetapi nama pada kecocokan terbaik tidak sesuai dengan nama yang Anda kirim.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "GLB",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"first_name": "Jane",
"last_name": "Roe",
"persons_found": 1
},
"validation": {
"full_name": "no_match"
}
}
]
}
INCONCLUSIVE — Email atau telepon berhasil menemukan seseorang, tetapi tidak ada skor nama yang dikembalikan, misalnya karena permintaan tidak menyertakan nama. Tidak ada kesimpulan yang dibuat, sehingga validation kosong, match_type bernilai null, dan pemeriksaan dikirim ke peninjauan. Kirim first_name + last_name untuk mendapatkan hasil dengan skor: perbandingan validation membaca kolom-kolom tersebut, dan permintaan yang hanya membawa full_name mendapatkan outcome_code dengan skor, tetapi validation tetap kosong.{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "GLB",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"persons_found": 1
},
"validation": {}
}
]
}
DOCUMENT_NOT_FOUND — Email atau telepon tidak berhasil menemukan siapa pun (persons_found: 0). Tidak ada nama untuk dibandingkan, sehingga validation kosong dan match_type bernilai null; hasilnya adalah negatif yang pasti dan mengikuti tindakan No Match Anda. Pencarian ini tetap dikenai biaya.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "GLB",
"match_type": null,
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "glb_identity_enrichment",
"service_name": "Global - Identity Enrichment",
"source_data": {
"persons_found": 0
},
"validation": {}
}
]
}
Data yang dikembalikan
Bidang yang tepat yang muncul disource_data bergantung pada apa yang dikembalikan registri. Contoh yang dihasilkan untuk glb_identity_enrichment saat ini mendokumentasikan bentuk ternormalisasi berikut:
first_namelast_namepersons_found
Harga & SLA
Kueri Global - Identity Enrichment hanya ditagih ketika Didit menerima hasil yang konklusif dari sumber validasi.- Harga per panggilan: $0.20 USD.
- Penagihan: per kueri yang berhasil. Anda tidak dikenai biaya ketika registri tidak dapat dijangkau, ketika kolom wajib tidak ada, atau ketika permintaan ditolak sebelum mencapai sumber.
- Latensi: tipikal p95 < 2 s.
- Ketersediaan: 99.9% per kuartal di sisi Didit; ketersediaan sumber hilir bervariasi menurut negara dan dataset.
Lanjutkan membaca
Terakhir diubah pada 7 November 2026