curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=BRA" \
-F "services=bra_cnh_facial_qrcode" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "tax_number=11111111111" \
-F "selfie=@./selfie.jpg" \
-F "cnh_qr_code_image=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB"
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "BRA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"cnh_qrcode": "sample_value",
"date_of_birth": "1990-01-01",
"face_match_probability": "Altíssima probabilidade",
"face_match_score": "0.990",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"name_match_score": "1.000",
"verifications": {
"identification_number": true
}
},
"validation": {
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_IMAGE_UNUSABLE",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
🇧🇷 Brasile
Brasile CNH QR code e confronto facciale (Datavalid) API
Didit: verifica su database ufficiale brasiliano della CNH tramite QR code e confronto facciale. Da $0.62 a chiamata, senza contratti né minimi.
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=BRA" \
-F "services=bra_cnh_facial_qrcode" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "tax_number=11111111111" \
-F "selfie=@./selfie.jpg" \
-F "cnh_qr_code_image=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB"
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "BRA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"cnh_qrcode": "sample_value",
"date_of_birth": "1990-01-01",
"face_match_probability": "Altíssima probabilidade",
"face_match_score": "0.990",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"name_match_score": "1.000",
"verifications": {
"identification_number": true
}
},
"validation": {
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_IMAGE_UNUSABLE",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
SERPRO Datavalid v4 pf-facial-qrcode decodifica il codice QR stampato sulle patenti di guida brasiliane CNH (fisiche o digitali, emesse dal maggio 2017), convalida CPF, nome e data di nascita presso la Receita Federal e confronta il selfie acquisito dal vivo con il ritratto della CNH conservato presso Senatran. Didit espone questo servizio tramite
POST /v3/database-validation/, così puoi verificare i dati inviati rispetto alla fonte autorevole e ricevere risultati di confronto normalizzati. Formato di input: tax_number accetta il CPF brasiliano (esattamente 11 cifre).
Copertura
- Copertura: —
- Paese: Brasile
- ID servizio:
bra_cnh_facial_qrcode - Dominio dei dati: Biometrico
- Categoria: Patente di guida
Input
| Campo | Obbligatorio | Esempio |
|---|---|---|
tax_number | Sì | 11111111111 |
selfie | Sì | @./selfie.jpg |
cnh_qr_code_image | Sì | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB |
first_name | No | John |
last_name | No | Doe |
date_of_birth | No | 1990-01-01 |
vendor_data | No | user-1234 |
- Input obbligatori:
tax_number,selfie,cnh_qr_code_image - Input facoltativi:
first_name,last_name,date_of_birth,vendor_data - Consenso: Obbligatorio
- Disponibilità nel workflow: Disponibile nel workflow
- Copertura: —
- Prezzo: $0.62 per query riuscita
Parametri del body
string
predefinito:"BRA"
obbligatorio
Codice paese ISO 3166-1 alpha-3 per questo servizio di validazione su database.Esempio:
BRAstring
predefinito:"bra_cnh_facial_qrcode"
obbligatorio
Array che contiene questo ID servizio. Fissare il servizio mantiene la richiesta limitata a questo database specifico.Esempio:
bra_cnh_facial_qrcodeboolean
predefinito:"true"
obbligatorio
Consenso esplicito dell’utente finale per questo servizio.Esempio:
truestring
predefinito:"11111111111"
obbligatorio
Numero di identificazione fiscale.Esempio:
11111111111file
obbligatorio
File immagine del selfie da caricare per la validazione biometrica su database. Formati accettati: JPEG, PNG o WebP.Esempio:
@./selfie.jpgstring
obbligatorio
Valore di
cnh_qr_code_image richiesto da questo servizio di validazione su database.Esempio: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABstring
Nome di battesimo da validare.Esempio:
Johnstring
Cognome da validare.Esempio:
Doestring
Data di nascita nel formato
YYYY-MM-DD.Esempio: 1990-01-01string
predefinito:"user-1234"
Il tuo riferimento utente stabile per questa persona, ad esempio il tuo ID utente interno. Didit lo usa per collegare i controlli autonomi allo stesso utente finale e ridurre il rumore dovuto ai duplicati.Esempio:
user-1234Regole di input e note sulla validazione
- CPF brasiliano (esattamente 11 cifre)
tax_numberdeve contenere solo cifre; rimuovi spazi, trattini e punteggiatura prima di inviare la richiesta.tax_numberdeve essere lungo esattamente 11 caratteri.
Come effettuare la chiamata
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=BRA" \
-F "services=bra_cnh_facial_qrcode" \
-F "vendor_data=user-1234" \
-F "consent=true" \
-F "tax_number=11111111111" \
-F "selfie=@./selfie.jpg" \
-F "cnh_qr_code_image=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB"
Ogni chiamata riuscita restituisce HTTP 200. Il campo outcome_code indica cosa è effettivamente accaduto, distinguendo ad esempio una vera mancata corrispondenza biometrica (BIOMETRIC_NO_MATCH) da un selfie che non è stato possibile leggere (BIOMETRIC_IMAGE_UNUSABLE). Lo status mostrato è lo stato predefinito della funzionalità; le tue azioni configurate per la corrispondenza parziale / la mancata corrispondenza possono sostituirlo.MATCH: il registro ha confermato l’identità e tutti i campi verificati corrispondono.{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "BRA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"cnh_qrcode": "sample_value",
"date_of_birth": "1990-01-01",
"face_match_probability": "Altíssima probabilidade",
"face_match_score": "0.990",
"first_name": "John",
"identification_number": "SAMPLE-ID-12345",
"last_name": "Doe",
"name_match_score": "1.000",
"verifications": {
"identification_number": true
}
},
"validation": {
"identification_number": "full_match"
}
}
]
}
NO_MATCH: il registro non ha restituito alcuna corrispondenza per i dati inviati.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "NO_MATCH",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
BIOMETRIC_NO_MATCH: il punteggio di confronto facciale è inferiore alla soglia di accettazione; il selfie non appartiene alla stessa persona della foto del registro.{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
BIOMETRIC_IMAGE_UNUSABLE: non è stato possibile elaborare il selfie (vuoto, senza volto, di bassa qualità o il registro non è riuscito a leggerlo). Chiedi all’utente di rifare il selfie.{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "BRA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_IMAGE_UNUSABLE",
"service_id": "bra_cnh_facial_qrcode",
"service_name": "Brazil - CNH QR code + face match (Datavalid)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
Dati restituiti
I campi esatti riportati insource_data dipendono da ciò che restituisce il registro. L’esempio generato per bra_cnh_facial_qrcode documenta attualmente questa struttura normalizzata:
cnh_qrcodedate_of_birthface_match_probabilityface_match_scorefirst_nameidentification_numberlast_namename_match_score
Prezzi e SLA
Brasile: le query di codice QR CNH + confronto facciale (Datavalid) vengono fatturate solo quando Didit riceve un risultato conclusivo dalla fonte di validazione.- Prezzo per chiamata: $0.62 USD.
- Fatturazione: per query riuscita. Non ti viene addebitato nulla quando il registro non è raggiungibile, quando mancano i campi obbligatori o quando la richiesta viene rifiutata prima di raggiungere la fonte.
- Latenza: p95 tipico < 2 s.
- Disponibilità: 99.9% per trimestre dal lato di Didit; la disponibilità della fonte a valle varia per paese e dataset.
Continua la lettura
Ultima modifica il 7 novembre 2026