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": {}
}
]
}
🌐 Глобально
Глобальное обогащение данных личности — API верификации
Глобальное обогащение данных личности: проверка через глобальную сеть идентификации Didit. От $0.20 за вызов, без контрактов и минимальных объёмов.
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": {}
}
]
}
Находит физических лиц (имена, дату рождения, адреса, телефоны, адреса электронной почты, национальные идентификаторы) и оценку совпадения имени по адресу электронной почты и/или номеру телефона через глобальную сеть данных для оценки рисков. Оплата взимается за каждый запрос. Didit предоставляет этот сервис через
POST /v3/database-validation/, чтобы вы могли проверить переданные данные по подключённой сети идентификационных данных и получить нормализованные результаты сопоставления. Это сторонняя сеть обогащения данных, а не официальный государственный реестр, поэтому не представляйте её результаты как верификацию по первоисточнику.
Покрытие
- Покрытие: 50+ рынков
- Страна: Глобальная
- Service ID:
glb_identity_enrichment - Домен данных: Идентификация
- Категория: IdentityEnrichment
Входные данные
| Поле | Обязательное | Пример |
|---|---|---|
email | Нет | john.doe@example.com |
phone | Нет | +15550101000 |
first_name | Нет | John |
last_name | Нет | Doe |
full_name | Нет | John Doe |
country_of_residence | Нет | US |
vendor_data | Нет | user-1234 |
- Обязательные входные данные: нет
- Необязательные входные данные:
email,phone,first_name,last_name,full_name,country_of_residence,vendor_data - Согласие: обязательно
- Доступность в сценарии: только в отдельном API
- Покрытие: 50+ рынков
- Цена: $0.20 за успешный запрос
Параметры тела запроса
string
по умолчанию:"GLB"
обязательно
Код страны ISO 3166-1 alpha-3 для этого сервиса проверки по базе данных.Пример:
GLBstring
по умолчанию:"glb_identity_enrichment"
обязательно
Массив, содержащий ID этого сервиса. Закрепление сервиса ограничивает запрос этой конкретной базой данных.Пример:
glb_identity_enrichmentboolean
по умолчанию:"true"
обязательно
Явное согласие конечного пользователя на использование этого сервиса.Пример:
truestring
по умолчанию:"john.doe@example.com"
Адрес электронной почты.Пример:
john.doe@example.comstring
по умолчанию:"+15550101000"
Номер телефона в международном формате.Пример:
+15550101000string
по умолчанию:"John"
Имя, которое нужно проверить.Пример:
Johnstring
по умолчанию:"Doe"
Фамилия, которую нужно проверить.Пример:
Doestring
Полное официальное имя, которое нужно проверить.Пример:
John Doestring
по умолчанию:"US"
Необязательная страна проживания в формате ISO 3166-1 alpha-2. Используется только для уточнения поиска по идентификационным данным.Пример:
USstring
по умолчанию:"user-1234"
Ваш постоянный идентификатор этого пользователя, например внутренний ID пользователя. Didit использует его, чтобы связывать отдельные проверки с одним и тем же конечным пользователем и уменьшать количество ложных срабатываний при поиске дубликатов.Пример:
user-1234Правила ввода и примечания по валидации
- Передайте хотя бы один из параметров
emailилиphone: они являются ключами поиска. Запрос без них не может выполнить поиск для обогащения и отклоняется до поиска в источнике (без оплаты). - Добавляйте имя, когда оно у вас есть: источник сверяет результаты поиска с ним. Передавайте
first_nameиlast_name: именно эти поля сравнивает картаvalidationв ответе. Запрос, в котором передан толькоfull_name, всё равно оценивается источником, но возвращается с пустой картойvalidationи значением null для верхнеуровневогоmatch_type. country_of_residence- это код ISO 3166-1 alpha-2, который используется для уточнения поиска.- Каждый завершённый поиск оплачивается, включая поиск, который не нашёл ни одного лица (
persons_found: 0). Бесплатен только запрос, отклонённый до поиска, то есть запрос безemailиphone.
Как выполнить вызов
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));
Каждый успешный вызов возвращает HTTP 200. Поле outcome_code показывает, что произошло на самом деле. Например, оно отличает реальное несовпадение биометрии (BIOMETRIC_NO_MATCH) от селфи, которое не удалось прочитать (BIOMETRIC_IMAGE_UNUSABLE). Показанный status — это статус функции по умолчанию. Ваши настроенные действия для Partial Match / No Match могут его переопределить.MATCH: По адресу электронной почты или номеру телефона найден человек, а имя в лучшем совпадении совпадает с именем, которое вы отправили.{
"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: По адресу электронной почты или номеру телефона найден человек, но имя в лучшем совпадении совпадает с отправленным именем только частично.{
"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: По адресу электронной почты или номеру телефона найден человек, но имя в лучшем совпадении не совпадает с отправленным именем.{
"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: По адресу электронной почты или номеру телефона найден человек, но оценка имени не вернулась, например потому, что в запросе не было имени. Ничего не утверждается, поэтому validation пустой, match_type равен null, а проверка отправляется на рассмотрение. Передайте first_name + last_name, чтобы получить результат с оценкой: именно эти поля использует сравнение в validation. Запрос, который содержит только full_name, получит outcome_code с оценкой, но validation всё равно останется пустым.{
"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: Адрес электронной почты или номер телефона не сопоставлены ни с одним человеком (persons_found: 0). Сравнивать не с чем, поэтому validation пустой, а match_type равен null. Результат является окончательно отрицательным и обрабатывается согласно вашему действию No Match. Запрос всё равно тарифицируется.{
"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": {}
}
]
}
Возвращаемые данные
Точный набор полей вsource_data зависит от того, что возвращает реестр. Сгенерированный пример для glb_identity_enrichment сейчас описывает такую нормализованную структуру:
first_namelast_namepersons_found
Цены и SLA
Запросы Global - Identity Enrichment тарифицируются, только если Didit получает окончательный результат от источника валидации.- Цена за вызов: $0.20 USD.
- Биллинг: за успешный запрос. Оплата не списывается, если реестр недоступен, если не заполнены обязательные поля или если запрос отклонён до того, как попал в источник.
- Задержка: типичный p95 менее 2 с.
- Доступность: 99.9% в квартал со стороны Didit. Доступность источников зависит от страны и набора данных.
Читайте также
Последнее изменение 7 ноября 2026 г.