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
document
file
obbligatorio

Il documento di Prova di residenza. Estensioni consentite: tiff, jpg, jpeg, png, pdf, webp. Dimensione massima di caricamento: 15 MB (i file più grandi vengono rifiutati con 400). I PDF multipagina sono supportati (è prevista una latenza maggiore); i PDF crittografati richiedono document_password. Le immagini vengono compresse automaticamente prima dell'elaborazione.

document_password
string
write-only

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

expected_address
string

Indirizzo da verificare a fronte del documento. Viene geocodificato e confrontato con l'indirizzo estratto; una mancata corrispondenza (o un indirizzo previsto che non può essere geocodificato/verificato) aggiunge ADDRESS_MISMATCH_WITH_PROVIDED, regolato da poa_address_mismatch_action. La forma geocodificata viene restituita in expected_details_formatted_address / expected_details_parsed_address.

Esempio:

"Av. Monseñor Tavella 1291, Salta, Argentina"

expected_country
string

Paese da verificare rispetto al documento (codice ISO 3166-1, ad es. ARG o AR). Una mancata corrispondenza con il paese del documento aggiunge POA_COUNTRY_MISMATCH_WITH_PROVIDED, regolata da poa_address_mismatch_action.

Esempio:

"ARG"

expected_first_name
string

Nome da verificare a fronte di name_on_document (confronto fuzzy, tiene conto della traslitterazione). Un punteggio inferiore alla soglia di corrispondenza aggiunge NAME_MISMATCH_WITH_PROVIDED, gestito da poa_address_mismatch_action.

Esempio:

"Sophia"

expected_last_name
string

Cognome da verificare rispetto a name_on_document, combinato con expected_first_name per il punteggio di corrispondenza.

Esempio:

"Martinez"

poa_languages_allowed
string

Elenco separato da virgole delle lingue dei documenti accettate come codici ISO 639-1 (ad es. en,es,fr). Se omesso o vuoto, vengono accettate tutte le 51 lingue supportate. Un documento in una lingua non inclusa nell'elenco aggiunge UNSUPPORTED_DOCUMENT_LANGUAGE (regolato da poa_unsupported_language_action); un codice sconosciuto nell'elenco restituisce 400 con l'insieme completo dei codici supportati.

Esempio:

"en,es"

poa_document_age_months
string

Coppie key:value separate da virgole che impostano l'età massima del documento in mesi per ciascun tipo di documento — chiavi: utility_bill, bank_statement, government_issued_document, other_poa_document; valori: 1–120, oppure -1 per illimitato (nessun controllo dell'età). Valori predefiniti se omesso: utility_bill:3,bank_statement:3,government_issued_document:12,other_poa_document:12. Un documento più vecchio del relativo limite viene rifiutato con POA_DOCUMENT_EXPIRED. Attenzione: quando fornisci questo campo, elenca ogni tipo che accetti: i tipi omessi vengono considerati non accettati (POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION informativo) e il loro controllo dell'età viene saltato.

Esempio:

"utility_bill:3,bank_statement:6"

poa_name_mismatch_action
enum<string>
predefinito:DECLINE

Accettato ma attualmente non applicato — gli avvisi di mancata corrispondenza del nome (NAME_MISMATCH_WITH_PROVIDED) seguono invece poa_address_mismatch_action. Imposta poa_address_mismatch_action per controllare il comportamento di mancata corrispondenza sia del nome che dell'indirizzo.

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

Cosa fare in caso di problemi di integrità del file — in pratica questo endpoint genera solo DOCUMENT_METADATA_MISMATCH.

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

Cosa fare quando si sospetta una manipolazione del documento (SUSPECTED_DOCUMENT_MANIPULATION) — ad esempio se il PDF è stato modificato dopo la firma digitale, elaborato da un editor PDF noto, mostra una manipolazione del testo in sovrimpressione o presenta date EXIF incoerenti. Regola anche POA_DOCUMENT_UNPROVEN_TEXT_REPLACEMENT (un campo di testo ridigitato per il quale il file non può dimostrare se sia stato modificato o meno): DECLINE rifiuta anche questo, NO_ACTION lo mantiene come avviso.

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

Cosa fare quando la lingua del documento è al di fuori di poa_languages_allowed (UNSUPPORTED_DOCUMENT_LANGUAGE).

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

Cosa fare quando i dettagli estratti non concordano con i campi expected_*: ADDRESS_MISMATCH_WITH_PROVIDED, NAME_MISMATCH_WITH_PROVIDED e POA_COUNTRY_MISMATCH_WITH_PROVIDED seguono tutti questa azione.

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

Cosa fare quando non è possibile identificare alcuna azienda/organizzazione emittente sul documento (ISSUER_NOT_IDENTIFIED).

Opzioni disponibili:
DECLINE,
NO_ACTION
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 il documento caricato che viene archiviato. Quando è false, non viene memorizzato nulla e request_id è un UUID temporaneo utilizzabile solo per la correlazione della risposta.

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. poa.status è Approved o Declined; ogni problema rilevato è dettagliato in poa.warnings. Un documento scaduto, non corrispondente o sospetto 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.

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.

poa
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