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
Verificació d'identitat global - API d'enriquiment
Consulta global a la xarxa d’identitats amb la infraestructura de Didit. Des de $0.20 per crida, sense contractes ni mínims.
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": {}
}
]
}
Resol persones (noms, data de naixement, adreces, telèfons, correus electrònics i documents d’identitat nacionals) i una puntuació de coincidència de nom a partir d’un correu electrònic i/o un número de telèfon, mitjançant una xarxa mundial d’informació de risc. Es cobra per sol·licitud. Didit exposa aquest servei a través de
POST /v3/database-validation/ perquè puguis contrastar les dades enviades amb la xarxa d’identitat connectada i rebre resultats de coincidència normalitzats. Es tracta d’una xarxa d’enriquiment de tercers, no d’un registre oficial governamental; no presentis els seus resultats com a verificació de fonts primàries.
Cobertura
- Cobertura: 50+ mercats
- País: Global
- ID del servei:
glb_identity_enrichment - Domini de dades: Identitat
- Categoria: IdentityEnrichment
Entrades
| Camp | Obligatori | Exemple |
|---|---|---|
email | No | john.doe@example.com |
phone | No | +15550101000 |
first_name | No | John |
last_name | No | Doe |
full_name | No | John Doe |
country_of_residence | No | US |
vendor_data | No | user-1234 |
- Entrades obligatòries: -
- Entrades opcionals:
email,phone,first_name,last_name,full_name,country_of_residence,vendor_data - Consentiment: Obligatori
- Disponibilitat al flux de treball: Només API autònoma
- Cobertura: 50+ mercats
- Preu: $0.20 per consulta satisfactòria
Paràmetres del cos
string
predeterminat:"GLB"
requerit
Codi de país ISO 3166-1 alpha-3 per a aquest servei de bases de dades.Exemple:
GLBstring
predeterminat:"glb_identity_enrichment"
requerit
Matriu que conté aquest ID de servei. Fixar el servei manté la sol·licitud limitada a aquesta base de dades exacta.Exemple:
glb_identity_enrichmentboolean
predeterminat:"true"
requerit
Consentiment explícit de l’usuari final per a aquest servei.Exemple:
truestring
predeterminat:"john.doe@example.com"
Adreça de correu electrònic.Exemple:
john.doe@example.comstring
predeterminat:"+15550101000"
Número de telèfon en format internacional.Exemple:
+15550101000string
predeterminat:"John"
Nom de pila a validar.Exemple:
Johnstring
predeterminat:"Doe"
Cognom a validar.Exemple:
Doestring
Nom legal complet a validar.Exemple:
John Doestring
predeterminat:"US"
Codi de país ISO 3166-1 alpha-2 de residència, opcional. Només s’utilitza per centrar la cerca d’identitat.Exemple:
USstring
predeterminat:"user-1234"
La teva referència estable d’usuari per a aquesta persona, com ara el teu ID d’usuari intern. Didit l’utilitza per vincular les comprovacions autònomes al mateix usuari final i reduir el soroll de detecció de duplicats.Exemple:
user-1234Regles d’entrada i notes de validació
- Proporciona almenys un dels camps
emailophone: són les claus de consulta. Una sol·licitud sense cap dels dos no pot fer una consulta d’enriquiment i es rebutja abans de la consulta a la font (no es cobra). - Afegeix un nom sempre que en tinguis: la font puntua la consulta segons aquest nom. Envia
first_name+last_name: són els camps que compara el mapavalidationde la resposta. Una sol·licitud que només enviafull_nameés igualment puntuada per la font, però torna amb unvalidationbuit i unmatch_typede nivell superior nul. country_of_residenceés un codi ISO 3166-1 alpha-2 que s’utilitza per centrar la consulta.- Cada consulta completada es cobra, inclosa una que no resol cap persona (
persons_found: 0). Només és gratuïta una sol·licitud rebutjada abans de la consulta, és a dir, quan no s’ha enviat niemailniphone.
Com fer la crida
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));
Cada crida satisfactòria retorna HTTP 200. El camp outcome_code t’indica què ha passat realment, i distingeix, per exemple, una discrepància biomètrica real (BIOMETRIC_NO_MATCH) d’una selfie que no s’ha pogut llegir (BIOMETRIC_IMAGE_UNUSABLE). L’status mostrat és l’estat per defecte de la funcionalitat; les accions Partial Match / No Match que hagis configurat el poden substituir.MATCH: El correu electrònic o el telèfon han permès identificar una persona, i el nom de la millor coincidència coincideix amb el nom que has enviat.{
"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: El correu electrònic o el telèfon han permès identificar una persona, però el nom de la millor coincidència només coincideix parcialment amb el nom que has enviat.{
"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: El correu electrònic o el telèfon han permès identificar una persona, però el nom de la millor coincidència no coincideix amb el nom que has enviat.{
"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: El correu electrònic o el telèfon han permès identificar una persona, però no s’ha obtingut cap puntuació de nom, per exemple perquè la sol·licitud no incloïa cap nom. No s’afirma res, així que validation està buit, match_type és null i la verificació s’envia a revisió. Envia first_name + last_name per obtenir un resultat puntuat: són els camps que llegeix la comparació de validation, i una sol·licitud que només inclou full_name obté un outcome_code puntuat però encara un validation buit.{
"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: El correu electrònic o el telèfon no han permès identificar cap persona (persons_found: 0). No hi ha cap nom per comparar, així que validation està buit i match_type és null; el resultat és un negatiu definitiu i segueix l’acció de No Match configurada. La consulta es factura igualment.{
"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": {}
}
]
}
Dades retornades
Els camps exactes que apareixen asource_data depenen del que retorni el registre. L’exemple generat per a glb_identity_enrichment documenta actualment aquesta forma normalitzada:
first_namelast_namepersons_found
Preus i SLA
Les consultes de Global - Identity Enrichment només es facturen quan Didit rep un resultat concloent de la font de validació.- Preu per crida: $0.20 USD.
- Facturació: per consulta satisfactòria. No se’t factura quan el registre és inaccessible, quan falten camps obligatoris o quan la sol·licitud es rebutja abans d’arribar a la font.
- Latència: p95 típica < 2 s.
- Disponibilitat: 99.9% per trimestre per part de Didit; la disponibilitat de la font externa varia segons el país i el conjunt de dades.
Continua llegint
Darrera modificació el 7 de novembre del 2026