Vai al contenuto principale
POST
cURL

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

multipart/form-data
front_image
file
obbligatorio

Fronte del documento d'identità. Estensioni consentite: tiff, jpg, jpeg, png, webp, pdf. Dimensione massima di caricamento: 10 MB (i file più grandi vengono rifiutati con 400). I PDF vengono convertiti in immagine prima dell'OCR; i PDF crittografati richiedono front_image_password. Le immagini vengono compresse automaticamente a ~0.5 MB e viene applicato l'orientamento EXIF. Carica l'acquisizione completa e non ritagliata, con tutti e quattro gli angoli del documento visibili.

front_image_password
string
write-only

Password per decrittografare front_image quando è un PDF crittografato. L'invio di un PDF crittografato senza password (o con una errata) restituisce 400.

back_image
file

Retro del documento: invialo ogni volta che il documento ne dispone (molte carte d'identità presentano la MRZ o un codice a barre sul retro; ometterlo lascia semplicemente vuoti la MRZ e i campi del retro nella risposta; questo endpoint non genera un avviso di MRZ mancante). Stesso formato e limiti di dimensione di front_image. Se omesso, back_image e i campi del retro risultano null nella risposta.

back_image_password
string
write-only

Password per decrittografare back_image quando è un PDF crittografato.

perform_document_liveness
boolean
predefinito:true

Esegue lo screening di entrambe le immagini per rilevare frodi di presentazione: riproduzioni da schermo (SCREEN_CAPTURE_DETECTED), copie stampate (PRINTED_COPY_DETECTED) e manipolazione del ritratto (PORTRAIT_MANIPULATION_DETECTED). Ognuna di queste comporta il rifiuto automatico. Abilitato per impostazione predefinita; imposta su false per saltare lo screening antifrode e ridurre la latenza. Quando è abilitato e il provider non restituisce alcun punteggio utilizzabile, la risposta è In Review con un avviso DOCUMENT_LIVENESS_NOT_COMPUTED anziché Approved.

Esempio:

true

minimum_age
integer | null

Accettato e convalidato (1–120) ma attualmente non applicato da questo endpoint — non produce mai un avviso MINIMUM_AGE_NOT_MET da questo campo. Applica le regole sull'età a partire da date_of_birth/age restituiti, oppure utilizza un workflow di sessione di verifica con restrizioni di età.

Intervallo richiesto: 1 <= x <= 120
expiration_date_not_detected_action
enum<string>
predefinito:NO_ACTION

Cosa fare quando non è possibile leggere alcuna data di scadenza (EXPIRATION_DATE_NOT_DETECTED). Il valore predefinito è NO_ACTION perché molti documenti di identità non riportano alcuna data di scadenza stampata. Nota: una data di scadenza rilevata e trascorsa comporta sempre il rifiuto (DOCUMENT_EXPIRED), indipendentemente da questa opzione.

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

Cosa fare quando la MRZ estratta non supera la convalida delle cifre di controllo (MRZ_VALIDATION_FAILED). Una MRZ mancante non genera alcun avviso su questo endpoint. Rilevante solo per i documenti che contengono una MRZ. REVIEW non è supportato su questo endpoint e restituisce 400.

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

Cosa fare quando i dati estratti sono internamente incoerenti: DATA_INCONSISTENT, MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME (la zona visiva non concorda con la MRZ) o DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS.

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

Cosa fare quando un campo stampato critico è stato fisicamente coperto nell'acquisizione (CRITICAL_FIELD_OCCLUSION_DETECTED) - un numero di identità, un nome, la data di nascita o la data di scadenza. Rifiuta per impostazione predefinita, come gli altri rischi di integrità del documento di questo endpoint: coprire i numeri rispetto ai quali viene riconciliato un report è l'aspetto tipico di un documento oscurato. Il valore letto per un campo coperto viene comunque escluso dall'estrazione, quindi l'avviso *_NOT_DETECTED corrispondente di solito lo accompagna. REVIEW non è supportato su questo endpoint e restituisce 400.

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

Cosa fare quando un numero non corrisponde al formato utilizzato dall'autorità emittente per quel tipo di documento (DOCUMENT_NUMBER_FORMAT_MISMATCH, PERSONAL_NUMBER_FORMAT_MISMATCH). Il valore predefinito è NO_ACTION, che segnala l'avviso senza modificare lo stato. REVIEW non è supportato su questo endpoint e restituisce 400.

Opzioni disponibili:
NO_ACTION,
DECLINE
preferred_characters
enum<string>
predefinito:latin

Sistema di scrittura preferito per i campi nome/indirizzo sui documenti che stampano sia testo in caratteri latini sia in caratteri non latini (arabo, cirillico, CJK, …). latin restituisce valori traslitterati/latini; non_latin preferisce il sistema di scrittura nativo.

Opzioni disponibili:
latin,
non_latin
save_api_request
boolean
predefinito:true

Quando è true (predefinito), rende persistente la chiamata come sessione di tipo API — visibile nella Business Console, recuperabile tramite GET /v3/session/{sessionId}/decision/ utilizzando il request_id restituito, notificata tramite un webhook status.updated, e con le immagini del documento restituite come URL multimediali. Quando è false, non viene memorizzato nulla, request_id è un UUID temporaneo e le immagini vengono restituite inline come stringhe JPEG in base64.

Esempio:

true

vendor_data
string

Stringa opaca opzionale (il tuo ID utente interno, email, UUID...) memorizzata nella sessione persistita e restituita nella risposta. Usala per correlare le chiamate API con i tuoi record e per filtrare le sessioni in un secondo momento.

Esempio:

"user-123"

metadata
object

Oggetto JSON opzionale memorizzato con la sessione (quando save_api_request=true) e restituito nella risposta. Nelle richieste multipart, invialo come campo stringa con codifica JSON (ad es. metadata={"flow":"onboarding"}): viene interpretato come oggetto.

Esempio:

Risposta

Documento elaborato. id_verification.status è Approved, Declined o In Review; ogni problema rilevato è dettagliato in id_verification.warnings. Viene restituito In Review quando un controllo del rilevamento della vitalità del documento richiesto non ha prodotto alcun risultato utilizzabile (DOCUMENT_LIVENESS_NOT_COMPUTED). Un documento problematico restituisce comunque 200 con status: "Declined" — esamina il corpo, non solo il codice HTTP. Quando save_api_request=true, request_id è l'ID di sessione persistito e i campi immagine sono URL multimediali di breve durata; con save_api_request=false sono stringhe JPEG base64 inline.

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.

id_verification
object
vendor_data
string | null

Eco del vendor_data inviato, o null.

metadata
object | null

Eco dell'oggetto metadata inviato, o null.

created_at
string<date-time>

Timestamp ISO 8601 (UTC) di generazione della risposta.

Ultima modifica il 7 novembre 2026