curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=USA" \
-F "services=usa_driver_license_dmv" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "document_number=SAMPLE-DOC-12345" \
-F "driver_license_state=Sample State"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="USA",
services=["usa_driver_license_dmv"],
first_name="John",
last_name="Doe",
document_number="SAMPLE-DOC-12345",
driver_license_state="Sample State",
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: "USA",
services: ["usa_driver_license_dmv"],
first_name: "John",
last_name: "Doe",
document_number: "SAMPLE-DOC-12345",
driver_license_state: "Sample State",
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: "USA",
Services: didit.Some([]string{"usa_driver_license_dmv"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DocumentNumber: didit.String("SAMPLE-DOC-12345"),
DriverLicenseState: didit.String("Sample State"),
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("USA")
.services(List.of("usa_driver_license_dmv"))
.firstName("John")
.lastName("Doe")
.documentNumber("SAMPLE-DOC-12345")
.driverLicenseState("Sample State")
.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' => 'USA',
'services' => ['usa_driver_license_dmv'],
'first_name' => 'John',
'last_name' => 'Doe',
'document_number' => 'SAMPLE-DOC-12345',
'driver_license_state' => 'Sample State',
'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: "USA",
services: ["usa_driver_license_dmv"],
first_name: "John",
last_name: "Doe",
document_number: "SAMPLE-DOC-12345",
driver_license_state: "Sample State",
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 = "USA",
Services = new string[] { "usa_driver_license_dmv" },
FirstName = "John",
LastName = "Doe",
DocumentNumber = "SAMPLE-DOC-12345",
DriverLicenseState = "Sample State",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "USA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "usa_driver_license_dmv",
"service_name": "United States - Driver's License (DMV)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"middle_name": "Demo"
},
"validation": {
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "USA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "usa_driver_license_dmv",
"service_name": "United States - Driver's License (DMV)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"middle_name": "Demo"
},
"validation": {
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "USA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "usa_driver_license_dmv",
"service_name": "United States - Driver's License (DMV)",
"source_data": {
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
🇺🇸 États-Unis
Permis de conduire (DMV) États-Unis - API
Validez les permis de conduire DMV américains avec Didit. Consultation officielle dès $1.99 par appel, sans contrat ni 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=USA" \
-F "services=usa_driver_license_dmv" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "document_number=SAMPLE-DOC-12345" \
-F "driver_license_state=Sample State"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="USA",
services=["usa_driver_license_dmv"],
first_name="John",
last_name="Doe",
document_number="SAMPLE-DOC-12345",
driver_license_state="Sample State",
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: "USA",
services: ["usa_driver_license_dmv"],
first_name: "John",
last_name: "Doe",
document_number: "SAMPLE-DOC-12345",
driver_license_state: "Sample State",
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: "USA",
Services: didit.Some([]string{"usa_driver_license_dmv"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DocumentNumber: didit.String("SAMPLE-DOC-12345"),
DriverLicenseState: didit.String("Sample State"),
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("USA")
.services(List.of("usa_driver_license_dmv"))
.firstName("John")
.lastName("Doe")
.documentNumber("SAMPLE-DOC-12345")
.driverLicenseState("Sample State")
.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' => 'USA',
'services' => ['usa_driver_license_dmv'],
'first_name' => 'John',
'last_name' => 'Doe',
'document_number' => 'SAMPLE-DOC-12345',
'driver_license_state' => 'Sample State',
'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: "USA",
services: ["usa_driver_license_dmv"],
first_name: "John",
last_name: "Doe",
document_number: "SAMPLE-DOC-12345",
driver_license_state: "Sample State",
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 = "USA",
Services = new string[] { "usa_driver_license_dmv" },
FirstName = "John",
LastName = "Doe",
DocumentNumber = "SAMPLE-DOC-12345",
DriverLicenseState = "Sample State",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "USA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "usa_driver_license_dmv",
"service_name": "United States - Driver's License (DMV)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"middle_name": "Demo"
},
"validation": {
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "USA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "usa_driver_license_dmv",
"service_name": "United States - Driver's License (DMV)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"middle_name": "Demo"
},
"validation": {
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "USA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "usa_driver_license_dmv",
"service_name": "United States - Driver's License (DMV)",
"source_data": {
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
Vérifie un permis de conduire ou une carte d’identité d’un État américain auprès des registres des véhicules à moteur de l’État émetteur, confirmant le numéro de permis, les noms du titulaire et sa date de naissance. Didit expose ce service via
POST /v3/database-validation/ afin que vous puissiez vérifier les données soumises auprès de la source faisant autorité et recevoir des résultats de correspondance normalisés. Format d’entrée : document_number prend le numéro de permis de conduire ou de carte d’identité d’un État américain (4 à 20 lettres et chiffres ; tirets et espaces autorisés).
Couverture
- Couverture : ~ 90%
- Pays : États-Unis
- Service ID :
usa_driver_license_dmv - Domaine de données : Document
- Catégorie : DriverLicence
Entrées
| Champ | Requis | Exemple |
|---|---|---|
first_name | Oui | John |
last_name | Oui | Doe |
document_number | Oui | SAMPLE-DOC-12345 |
driver_license_state | Oui | Sample State |
middle_name | Non | Demo |
date_of_birth | Non | 1990-01-01 |
date_of_issue | Non | 1990-01-01 |
expiration_date | Non | 1990-01-01 |
gender | Non | M |
document_type | Non | DL |
vendor_data | Non | user-1234 |
- Entrées requises :
first_name,last_name,document_number,driver_license_state - Entrées facultatives :
middle_name,date_of_birth,date_of_issue,expiration_date,gender,document_type,vendor_data - Consentement : Non requis
- Disponibilité dans le workflow : Disponible dans le workflow
- Couverture : ~ 90%
- Prix : $1.99 par requête réussie
Paramètres du corps
string
défaut:"USA"
requis
Code pays ISO 3166-1 alpha-3 pour ce service de base de données.Exemple :
USAstring
défaut:"usa_driver_license_dmv"
requis
Tableau contenant cet identifiant de service. Spécifier le service permet de restreindre la requête à exactement cette base de données.Exemple :
usa_driver_license_dmvstring
défaut:"John"
requis
Prénom à valider.Exemple :
Johnstring
défaut:"Doe"
requis
Nom de famille à valider.Exemple :
Doestring
défaut:"SAMPLE-DOC-12345"
requis
Numéro de document extrait ou fourni par l’utilisateur.Exemple :
SAMPLE-DOC-12345string
défaut:"Sample State"
requis
État ou région ayant délivré le permis de conduire.Exemple :
Sample Statestring
Deuxième prénom, lorsqu’il est disponible.Exemple :
Demostring
Date de naissance au format
YYYY-MM-DD.Exemple : 1990-01-01string
Valeur
date_of_issue requise par ce service de base de données.Exemple : 1990-01-01string
Valeur
expiration_date requise par ce service de base de données.Exemple : 1990-01-01string
Genre, lorsqu’il est requis par la base de données.Valeurs autorisées :
M (masculin), F (féminin), X (autre ou inconnu).Exemple : Mstring
Type de document à valider auprès de ce service de base de données.Valeurs autorisées :
DL (permis de conduire), ID (pièce d’identité nationale).Exemple : DLstring
défaut:"user-1234"
Votre identifiant de référence stable pour cette personne, tel que votre ID utilisateur interne. Didit l’utilise pour associer les vérifications indépendantes au même utilisateur final et réduire le bruit lié à la détection des doublons.Exemple :
user-1234Règles de saisie et notes de validation
- Numéro de permis de conduire américain ou de carte d’identité d’État (4 à 20 lettres et chiffres ; tirets et espaces autorisés)
document_numberdoit comporter entre 4 et 20 caractères.document_numberdoit correspondre à[A-Za-z0-9][A-Za-z0-9 -]{2,18}[A-Za-z0-9].- Envoyez
driver_license_statesous la forme du code à deux lettres (TX) ou du nom de l’État émetteur (Texas). - Les permis de Californie et de Pennsylvanie ne sont pas vérifiés par ce service.
Comment l’appeler
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=USA" \
-F "services=usa_driver_license_dmv" \
-F "vendor_data=user-1234" \
-F "first_name=John" \
-F "last_name=Doe" \
-F "document_number=SAMPLE-DOC-12345" \
-F "driver_license_state=Sample State"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="USA",
services=["usa_driver_license_dmv"],
first_name="John",
last_name="Doe",
document_number="SAMPLE-DOC-12345",
driver_license_state="Sample State",
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: "USA",
services: ["usa_driver_license_dmv"],
first_name: "John",
last_name: "Doe",
document_number: "SAMPLE-DOC-12345",
driver_license_state: "Sample State",
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: "USA",
Services: didit.Some([]string{"usa_driver_license_dmv"}),
FirstName: didit.String("John"),
LastName: didit.String("Doe"),
DocumentNumber: didit.String("SAMPLE-DOC-12345"),
DriverLicenseState: didit.String("Sample State"),
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("USA")
.services(List.of("usa_driver_license_dmv"))
.firstName("John")
.lastName("Doe")
.documentNumber("SAMPLE-DOC-12345")
.driverLicenseState("Sample State")
.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' => 'USA',
'services' => ['usa_driver_license_dmv'],
'first_name' => 'John',
'last_name' => 'Doe',
'document_number' => 'SAMPLE-DOC-12345',
'driver_license_state' => 'Sample State',
'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: "USA",
services: ["usa_driver_license_dmv"],
first_name: "John",
last_name: "Doe",
document_number: "SAMPLE-DOC-12345",
driver_license_state: "Sample State",
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 = "USA",
Services = new string[] { "usa_driver_license_dmv" },
FirstName = "John",
LastName = "Doe",
DocumentNumber = "SAMPLE-DOC-12345",
DriverLicenseState = "Sample State",
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));
Chaque appel réussi renvoie un code HTTP 200. Le champ outcome_code vous indique ce qui s’est réellement passé — en distinguant, par exemple, une véritable non-correspondance biométrique (BIOMETRIC_NO_MATCH) d’un selfie illisible (BIOMETRIC_IMAGE_UNUSABLE). Le status affiché est le statut par défaut de la fonctionnalité ; vos actions configurées pour les correspondances partielles et les absences de correspondance peuvent le remplacer.MATCH — Le registre a confirmé l’identité et chaque champ vérifié correspondait.{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "USA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "usa_driver_license_dmv",
"service_name": "United States - Driver's License (DMV)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"middle_name": "Demo"
},
"validation": {
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
PARTIAL_MATCH — Le numéro d’identification a été trouvé, mais un ou plusieurs champs personnels (généralement le nom ou la date de naissance) ne correspondaient pas totalement.{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "USA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "usa_driver_license_dmv",
"service_name": "United States - Driver's License (DMV)",
"source_data": {
"date_of_birth": "1990-01-01",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"middle_name": "Demo"
},
"validation": {
"full_name": "no_match",
"identification_number": "full_match"
}
}
]
}
NO_MATCH — Le registre n’a renvoyé aucune correspondance pour les données soumises.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "USA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "usa_driver_license_dmv",
"service_name": "United States - Driver's License (DMV)",
"source_data": {
"full_name": "NO_MATCH",
"identification_number": "NO_MATCH"
},
"validation": {
"full_name": "no_match",
"identification_number": "no_match"
}
}
]
}
Données renvoyées
Les champs exacts restitués danssource_data dépendent de ce que renvoie le registre. L’exemple généré pour usa_driver_license_dmv documente actuellement cette structure normalisée :
date_of_birthfirst_nameidentification_numberlast_namemiddle_name
Tarifs et SLA
Les requêtes de permis de conduire (DMV) aux États-Unis ne sont facturées que lorsque Didit reçoit un résultat concluant de la source de validation.- Prix par appel : $1.99 USD.
- Facturation : par requête réussie. Vous n’êtes pas facturé lorsque le registre est inaccessible, que des champs obligatoires sont manquants ou que la requête est rejetée avant d’atteindre la source.
- Latence : p95 typique < 2 s.
- Disponibilité : 99.9% par trimestre du côté de Didit ; la disponibilité de la source en aval varie selon le pays et le jeu de données.
Poursuivre la lecture
Dernière modification le 9 novembre 2026