Vai al contenuto principale
POST
curl

Servizi basati sull’indirizzo

Per i servizi che verificano un indirizzo di residenza o di utenza, puoi inviare un unico campo address e Didit lo suddividerà prima di eseguire il controllo. Per ottenere la migliore percentuale di corrispondenza, invia direttamente i campi strutturati dell’indirizzo di Didit: I campi strutturati sostituiscono il valore del singolo campo address. postal_code è accettato come alias di address_element_5.

Consenso

Alcuni servizi di database richiedono il consenso esplicito dell’utente finale prima che il fornitore possa essere interrogato. Il catalogo dei servizi contrassegna queste righe con requires_consent=true. Invia consent=true quando il consenso dell’utente si applica ai servizi selezionati. Didit rifiuta la richiesta prima di qualsiasi chiamata al fornitore o evento di fatturazione se un servizio selezionato richiede il consenso e tu non lo invii.

Caricamento dei file

La validazione su database utilizza multipart/form-data. I servizi biometrici che richiedono selfie la espongono come campo di caricamento file nel playground delle API, così puoi selezionare direttamente un’immagine invece di incollare un percorso o una stringa base64. Nel codice, carica il file con la sintassi multipart standard:

Errori di validazione

Didit convalida i campi obbligatori, la struttura dell’indirizzo e i formati specifici di ciascun servizio prima di chiamare il fornitore. Ad esempio, i servizi di registro cinesi come chn_national_id e chn_passport_verification si aspettano full_name nel sistema di scrittura cinese originale, e chn_national_id richiede inoltre un numero di identità nazionale cinese valido di 15 o 18 caratteri con una cifra di controllo corretta. Se una richiesta non può essere eseguita, l’API restituisce errori espliciti sui campi e non viene addebitato alcun utilizzo. Se si verifica un errore del fornitore dopo il controllo preliminare, la risposta include validation_errors, e le richieste API salvate memorizzano tali errori nel risultato della validazione su database.

Input rifiutato e risultati non disponibili

Quando nessun servizio restituisce un risultato utilizzabile, controlla ogni voce di validation_errors prima di decidere se riprovare. Lo stato HTTP da solo non determina se un nuovo tentativo sia appropriato. Una risposta 400 con code: "provider_rejected_input" e retryable: false significa che ogni tentativo che non ha prodotto una risposta ha esplicitamente rifiutato l’input. Correggi i dati forniti prima di riprovare. Questi tentativi non vengono fatturati. Una risposta 502 con code: "empty_provider_response" e retryable: true significa che il servizio non è riuscito a produrre un risultato utilizzabile per un altro motivo. Rientrano in questo caso un input rifiutato seguito da un fallback non disponibile oppure un fallback che non fornisce alcuna spiegazione. Riprova più tardi; la risposta non stabilisce che l’input sia errato. Se un database continua a non funzionare, Didit invia un’email alle organizzazioni che lo hanno usato di recente, quando l’interruzione persiste, e di nuovo quando controlli reali confermano che risponde nuovamente — vedi Notifiche di disponibilità. Quando solo alcuni dei servizi selezionati non funzionano, la richiesta riesce comunque: la risposta è 200 e i servizi non riusciti sono elencati in database_validation.errors[], ciascuno con gli stessi campi code e retryable. database_validation.status segue quindi i servizi che hanno risposto e può essere Approved, perciò controlla errors[] in ogni risposta e non solo nelle risposte 4xx o 5xx. Un servizio segnalato lì non compare in validations e services_used, e non viene fatturato; riprova quel servizio da solo. Altri errori 502 possono richiedere un input corretto. Ad esempio, provider_invalid_input e provider_validation_error descrivono un input rifiutato dalla fonte e l’input non deve essere sottoposto a un nuovo tentativo senza modifiche, anche quando la risposta legacy non include retryable. Le indicazioni per i nuovi tentativi relative a empty_provider_response non si applicano a questi codici. Un risultato di mancata corrispondenza definitivo è un controllo completato, non un guasto di disponibilità.

Autorizzazioni

x-api-key
string
header
obbligatorio

La chiave API della tua applicazione, da Developers -> API keys nella Business Console. La chiave primaria ha accesso completo. Una chiave con nome può avere un ambito definito: nessuno, lettura o scrittura per risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco di indirizzi IP e a una data di scadenza. 401 indica che la chiave è errata, revocata o scaduta; 403 indica che non è stata inviata alcuna chiave, che la chiave non ha accesso a questa risorsa o azione, oppure che la richiesta proviene da un indirizzo non incluso nel suo elenco IP; 404 su una route di sessione indica che la sessione non rientra nei workflow o negli stati previsti dalla chiave. Una chiave senza accesso ai media riceve gli URL di immagini, video e PDF come null, e una chiave senza permessi di scrittura sulle sessioni riceve link e token di sessione come null. Consulta https://docs.didit.me/console/api-keys.

Corpo

issuing_state
string
obbligatorio

Codice paese ISO 3166-1 alpha-3 del registro rispetto al quale convalidare (ad es. BRA, ESP, COL). Determina quali servizi sono disponibili. I codici non supportati restituiscono 400 con l'elenco completo delle opzioni valide.

Esempio:

"BRA"

services
string[]

service_id di catalogo da eseguire per questo paese (ad es. ["bra_cpf"]). Accetta anche una singola stringa o una stringa separata da virgole/codificata in JSON. Se omesso o vuoto, viene eseguito esattamente un servizio predefinito — il servizio live da più tempo attivo per il paese; i servizi più recenti, biometrici e a consumo (pay-as-you-go) devono essere indicati esplicitamente. L'invio di services passa la risposta al formato esteso (aggiunge services_used e match_score). Ogni id deve esistere ed essere attivo per lo issuing_state; i servizi che richiedono l'onboarding restituiscono 400 finché non vengono attivati per la tua organizzazione. Scopri i servizi disponibili per paese tramite GET /v1/organization/database-validation-countries/ (un endpoint di catalogo non documentato in questa specifica) o nell'editor dei workflow della Business Console.

Esempio:
validation_type
string
deprecato

DEPRECATO. Accettato per compatibilità con le versioni precedenti ma ignorato: il validation_type della risposta è ora derivato da quanti servizi hanno avuto una corrispondenza completa. Usa services per fissare servizi specifici.

Imposta su true quando l'utente finale ha acconsentito esplicitamente ai servizi di validazione selezionati. Obbligatorio per i servizi contrassegnati da requires_consent=true nel catalogo: senza di esso tali servizi restituiscono 400 con services_requiring_consent.

identification_number
string

Numero di identificazione universale — mappato automaticamente al campo specifico del paese corretto, quindi puoi usarlo al posto di personal_number/tax_number/document_number: ARG→document_number (DNI), BOL→document_number (CI), BRA→tax_number (CPF, 11 cifre), CHL→personal_number (RUT), COL→personal_number (Cédula), CRI→personal_number (Cédula), DOM→personal_number (Cédula, 11 cifre), ECU→personal_number (Cédula, 10 cifre), ESP→personal_number (DNI/NIE), GTM→document_number (DPI), HND→document_number (DNI), MEX→personal_number (CURP, 18 caratteri), PAN→personal_number (Cédula), PER→personal_number (DNI, 8 cifre), PRY→document_number (CI), SLV→document_number (DUI), URY→personal_number (CI), VEN→document_number (Cédula). Non sovrascrive mai un campo specifico del paese fornito esplicitamente.

first_name
string

Il nome proprio della persona fisica. Richiesto da alcuni servizi o paesi.

Esempio:

"John"

last_name
string

Il cognome della persona fisica. Richiesto da alcuni servizi o paesi.

Esempio:

"Doe"

middle_name
string

Secondo nome, utilizzato da alcuni servizi nazionali (AUS, NZL, …).

full_name
string

Nome completo: alcuni servizi lo accettano al posto di nome/cognome (ad es. i servizi CHN, che confrontano il nome nel sistema di scrittura nativo).

date_of_birth
string<date>

Data di nascita, YYYY-MM-DD. Richiesta da molti servizi.

Esempio:

"1980-01-01"

personal_number
string

Identificativo personale univoco rilasciato dallo stato. Utilizzato da: CHL (RUT), COL (Cédula), CRI, DOM, ECU, ESP (DNI/NIE), MEX (CURP), PAN (Cédula), PER (DNI), URY. Valuta l'uso di identification_number in alternativa.

tax_number
string

Identificativo fiscale. Usato da: BRA (CPF, 11 cifre). Considera invece identification_number.

document_number
string

Numero del documento. Utilizzato da: ARG (DNI), BOL (CI), GTM (DPI), HND (DNI), PRY (CI), SLV (DUI), VEN (Cédula). Considera invece identification_number.

document_type
enum<string>

Tipo di documento in fase di convalida: P passaporto, DL patente di guida, ID carta d'identità, RP permesso di soggiorno (oltre a SSC, HIC, WP, TC, VISA, PSC, BC, OTHER). Richiesto da alcuni servizi (es. ESP).

Opzioni disponibili:
P,
DL,
ID,
RP,
SSC,
HIC,
WP,
TC,
VISA,
PSC,
BC,
OTHER
expiration_date
string<date>

Data di scadenza del documento, YYYY-MM-DD. Obbligatoria per la validazione ESP (Spagna).

Esempio:

"2030-01-15"

date_of_issue
string<date>

Data di emissione del documento, YYYY-MM-DD (fecha de expedición). Obbligatoria per la validazione della cédula COL (Colombia).

Esempio:

"2015-06-20"

nationality
string

Nazionalità in formato ISO 3166-1 alpha-3. Richiesta da alcuni servizi.

gender
enum<string>

Genere: M, F o X (altro/sconosciuto). Richiesto per la validazione RENAPER dell'Argentina (arg_renaper).

Opzioni disponibili:
M,
F,
X
address

Indirizzo di residenza. È preferibile l'oggetto strutturato {"street_1":"123 Main St","street_2":"Apt 4B","city":"Springfield","region":"IL","postal_code":"62701","country":"US"}; viene comunque accettata una stringa completa su riga singola. Richiesto dai servizi di verifica dell'indirizzo; quando un servizio definisce i requisiti per l'indirizzo, le parti mancanti restituiscono 400 con address_fields_required_by.

address_element_1
string

Indirizzo stradale inclusi numero civico e tipo di via. Se omesso, viene ricavato da address.

address_element_2
string

Appartamento, interno, edificio, piano o riga di indirizzo aggiuntiva. Inviare solo se si dispone esplicitamente di questo dato.

address_element_3
string

Città, sobborgo, distretto, località o quartiere. Se omesso, viene ricavato da address.

address_element_4
string

Stato, provincia, regione o città. Se omesso, viene ricavato da address.

address_element_5
string

Codice postale o CAP. postal_code è accettato come alias.

postal_code
string

Codice postale per i servizi basati sull'indirizzo (alias di address_element_5).

driver_license_number
string

Numero della patente di guida per i servizi governativi di verifica dei documenti (AUS, NZL, IND).

driver_license_card_number
string

Numero della tessera fisica della patente di guida, dove richiesto separatamente dal numero di patente (AUS).

driver_license_state
string

Stato o territorio di rilascio della patente di guida (AUS).

driver_license_version
string

Codice versione della patente di guida (NZL).

passport_number
string

Numero di passaporto per i servizi governativi di verifica del passaporto (AUS, NZL, IND, CHN).

passport_expiration_date
string<date>

Data di scadenza del passaporto, YYYY-MM-DD, per i servizi di verifica del passaporto.

passport_file_number
string

Numero di pratica del passaporto (IND).

passport_issue_country
string

Paese di emissione del passaporto (ISO 3166-1 alpha-3) per i servizi di verifica del passaporto.

medicare_card_number
string

Numero della carta Medicare (AUS).

immi_card_number
string

Numero dell'ImmiCard australiana.

immi_card_expiry_date
string<date>

Data di scadenza dell'ImmiCard australiana.

citizenship_certificate_number
string

Numero del certificato di cittadinanza (AUS).

birth_registration_number
string

Numero di registrazione del certificato di nascita (AUS).

birth_registration_date
string<date>

Data di registrazione del certificato di nascita (AUS).

birth_registration_state
string

Stato di registrazione del certificato di nascita (AUS).

marriage_certificate_number
string

Numero del certificato di matrimonio (AUS).

change_of_name_certificate_number
string

Numero del certificato di cambio nome (AUS).

first_partner_name
string

Nome del coniuge su un certificato di matrimonio (AUS).

last_partner_name
string

Cognome del partner su un certificato di matrimonio (AUS).

voter_id
string

Numero di registrazione elettorale (IND EPIC, IRL).

epic_card
string

Numero della tessera elettorale EPIC indiana.

pan
string

PAN indiano (Permanent Account Number).

national_id
string

Numero di identificazione nazionale (CHN, MYS, KEN, KHM, NGA, ZAF, …).

cic
string

Código de Identificación de Credencial (CIC) dell'INE/IFE messicano, 9 cifre. Utilizzato dal servizio di validità delle credenziali MEX INE (mex_ine_vigencia).

identificador_ciudadano
string

Identificador del Ciudadano dell'INE messicano (9 cifre). Utilizzato con cic per i modelli INE moderni (E/F/G/H) in mex_ine_vigencia.

ocr
string

Numero OCR dell'INE messicano (13 cifre, retro del documento). Utilizzato con cic per il Modello D in mex_ine_vigencia.

voter_number
string

Clave de Elector dell'INE messicano (18 caratteri). Utilizzata con emission_number per i modelli IFE legacy (A/B/C) in mex_ine_vigencia.

emission_number
string

Número de Emisión dell'INE messicano. Utilizzato con voter_number per i modelli IFE legacy (A/B/C) in mex_ine_vigencia.

bvn
string

Numero di verifica bancaria nigeriano.

bank_card_number
string

Numero di carta bancaria (verifica della carta bancaria CHN).

company_registration_number
string

Numero di registrazione aziendale rilasciato dal registro delle imprese: il CNPJ in Brasile (es. 11222333000181), il numero di registrazione in Sudafrica (es. 1936/007721/06). Obbligatorio per i servizi del registro delle imprese e degli amministratori aziendali (bra_company_registry, bra_company_directors, zaf_company_registry, zaf_company_directors).

company_name
string

Ragione sociale registrata, confrontata con la voce del registro. Opzionale per zaf_company_registry.

initials
string

Le iniziali della persona come stampate sul documento. Obbligatorie per zaf_drivers_license; accettate da zaf_bank_account_holder.

licence_number
string

Numero della patente di guida come stampato sulla tessera, per zaf_drivers_license. Se omesso, viene utilizzato document_number.

refugee_file_number
string

Numero di pratica per rifugiati rilasciato dal Department of Home Affairs del Sudafrica. Richiesto da zaf_refugee.

bank_name
string

Nome della banca presso cui è detenuto il conto. Obbligatorio per zaf_bank_account_holder.

bank_account_number
string

Numero di conto bancario. Obbligatorio per zaf_bank_account_holder; accettato da zaf_fraud_prevention.

account_type
string

Tipo di conto bancario per zaf_bank_account_holder: current, savings, transmission, subscriptionShare o notKnown, senza distinzione tra maiuscole e minuscole. Qualsiasi altro valore restituisce 400. Omettilo se non conosci il tipo: la verifica incrociata del tipo di conto verrà quindi segnalata come non confermata.

phone_number
string

Numero di cellulare di contatto, per i servizi che verificano la contattabilità (zaf_bank_account_holder, zaf_fraud_prevention, zaf_refugee).

right_thumb
string

Impronta digitale del pollice destro codificata in Base64 per zaf_dha_fingerprint_match, insieme a left_thumb o da sola.

left_thumb
string

Impronta digitale del pollice sinistro codificata in Base64 per zaf_dha_fingerprint_match, insieme a right_thumb o da sola.

score_level
integer

Livello minimo del punteggio biometrico per zaf_criminal_face_screening. Il valore predefinito è 3.

max_matches
integer

Numero massimo di corrispondenze candidate restituite da zaf_criminal_face_screening. Il valore predefinito è 1.

vehicle_register_number
string

Numero di registrazione del veicolo. Obbligatorio, insieme a vehicle_licence_plate e vin, per zaf_vehicle_ownership.

vehicle_licence_plate
string

Numero di targa del veicolo. Obbligatorio, insieme a vehicle_register_number e vin, per zaf_vehicle_ownership.

vin
string

Numero di identificazione del veicolo (VIN o numero di telaio). Obbligatorio, insieme a vehicle_register_number e vehicle_licence_plate, per zaf_vehicle_ownership.

ssn
string

Social Security Number (USA).

phone
string

Numero di telefono per i servizi di verifica telefonica.

landline
string

Numero di rete fissa per i servizi di verifica telefonica.

email
string<email>

Indirizzo email per i servizi di verifica dell'identità.

country_of_residence
string

Paese di residenza ISO 3166-1 alpha-2. Utilizzato dai servizi globali di arricchimento dell'identità (ad es. glb_identity_enrichment) per concentrare la ricerca.

Esempio:

"US"

partial_match_action
enum<string>
predefinito:NO_ACTION

Effetto di un partial_match su database_validation.status. Il valore predefinito è NO_ACTION (lo stato rimane Approved, con un avviso).

Opzioni disponibili:
DECLINE,
NO_ACTION
no_match_action
enum<string>
predefinito:DECLINE

Effetto di un no_match su database_validation.status. Il valore predefinito è DECLINE.

Opzioni disponibili:
DECLINE,
NO_ACTION
save_api_request
boolean
predefinito:true

Salva la validazione come sessione (visibilità nella console, endpoint della decisione, webhook status.updated). Modifica anche la struttura della risposta di validations: oggetti per servizio quando è true (predefinito), una mappa di campi unificata quando è false.

vendor_data
string

Il tuo identificatore per l'utente validato; restituito nella risposta e memorizzato con la sessione.

metadata
object | null

JSON a struttura libera memorizzato con la richiesta e restituito nella risposta.

Risposta

Validazione completata — almeno un servizio selezionato ha restituito un risultato utilizzabile. Ispeziona database_validation.match_type per l'esito aggregato, validations per i confronti dei campi per servizio e i relativi outcome_code, ed errors (quando presente) per i servizi che hanno avuto esito negativo.

request_id
string<uuid>

ID della sessione salvata quando save_api_request=true (utilizzabile con GET /v3/session/{sessionId}/decision/); altrimenti un UUID di correlazione temporaneo.

database_validation
object
vendor_data
string | null

Eco del vendor_data inviato.

metadata
object | null

Eco del metadata inviato.

created_at
string<date-time>
Ultima modifica il 7 novembre 2026