Vai al contenuto principale
A volte l’OCR legge in modo errato un documento d’identità, una bolletta delle utenze o una voce del registro. Didit espone tre endpoint PATCH con cui puoi correggere i dati estratti senza dover rieseguire l’intera verifica. Tutti e quattro accettano la tua chiave API del client oppure un’intestazione di autorizzazione utente, e tutti e quattro emettono un webhook data.updated in caso di successo, così il tuo sistema e le analisi a valle restano sincronizzati.

Requisiti comuni

  • Autorizzazione — chiave API del client (standard x-api-key / bearer Authorization) oppure token di autenticazione utente.
  • Privilegio —
    • KYC e POA: write:sessions
    • Azienda KYB e persona chiave: write:businesses
  • Stato della sessione (solo KYC / POA) — deve essere uno tra APPROVED, DECLINED, IN_REVIEW o KYC_EXPIRED. Le sessioni che non hanno ancora raggiunto uno stato idoneo alla revisione non possono essere modificate. Gli aggiornamenti dell’azienda KYB non hanno vincoli di stato.
  • Il record della funzionalità deve esistere — puoi modificare i campi KYC solo se la sessione contiene un record KYC, i campi POA solo se contiene un record POA, e i campi dell’azienda KYB solo se la sessione include un controllo del registro.
  • Aggiornamenti parziali — vengono modificati solo i campi che includi. Ometti un campo per lasciarlo invariato. Invia null per eliminare una chiave di extra_fields.
  • Webhook — un aggiornamento riuscito attiva data.updated con session_kind: "user" oppure "business", e il registro di audit della sessione riporta quali campi specifici sono stati modificati e da chi.

Aggiornare i dati di identità KYC

PATCH /v3/session/{sessionId}/update-data/ Modifica qualsiasi campo estratto dal documento d’identità. Supporta i workflow multi-istanza basati su grafo tramite il parametro di query opzionale node_id o il campo nel body: indica un record KYC specifico quando una sessione ha più passaggi KYC.

Campi modificabili

parsed_address accetta solo queste chiavi annidate: address_type, city, region, street_1, street_2, postal_code, country (ISO 3166-1 alpha-2).

Esempio

Per un workflow a grafo multi-istanza, aggiungi ?node_id=feature_ocr_2 all’URL (oppure passa "node_id": "feature_ocr_2" nel body) per indicare un record KYC specifico.

Aggiornare i dati della Prova di residenza (POA)

PATCH /v3/session/{sessionId}/update-poa-data/ Modifica i campi estratti da un documento di prova di residenza. Stessi vincoli di stato e stesso privilegio degli aggiornamenti KYC. Supporta anche node_id per i workflow multi-istanza.

Campi modificabili

Esempio

Aggiornare i dati di un’azienda KYB

PATCH /v3/session/{sessionId}/kyb/{companyUuid}/update-data/ Correggi i campi estratti dal registro per un’azienda KYB. L’endpoint modifica sia le colonne canoniche dell’azienda sia registry_data, così la vista “Extracted from Registry” della console riflette le tue correzioni. user_provided_data (ciò che l’utente finale ha confermato nel flusso ospitato) non viene modificato. last_console_edit_at viene aggiornato e viene inviato un webhook data.updated con trigger: "console_registry_edit".

Requisiti

  • Privilegio: write:businesses (diverso dal privilegio KYC / POA).
  • Il companyUuid nell’URL deve appartenere al sessionId indicato, altrimenti ottieni un 404.
  • Nessun vincolo sullo stato della sessione: i dati dell’azienda KYB possono essere corretti in qualsiasi momento.

Campi modificabili

I campi omessi restano invariati. Ogni campo inviato viene scritto nella colonna canonica (quando esiste) e unito a registry_data. Le date vengono serializzate come stringhe ISO 8601 quando sono unite a registry_data.

Esempio

Risposta: l’oggetto completo dell’azienda KYB, con la stessa struttura di registry_checks[].company nella decisione della sessione.

Escludere una parte della sezione Key People

PATCH /v3/session/{sessionId}/kyb/parties/{partyUuid}/ Esenta una persona della sezione Key People dalla verifica: è la via d’uscita per una persona che non può mai completare il proprio controllo. La causa più comune è una sessione figlia eliminata: una volta eliminata la KYC individuale assegnata a un titolare effettivo o a un amministratore, il suo stato resta bloccato e non potrà mai concludersi, quindi la KYB non ha più nulla che possa spostarla da Awaiting User. Escludere la persona la rimuove dall’aggregazione Key People, il controllo viene ricalcolato immediatamente e la sessione può concludersi ed essere approvata o rifiutata.

Requisiti

  • Privilegio: write:businesses.
  • Il partyUuid nell’URL deve appartenere al sessionId indicato, altrimenti ottieni un 404.
  • Non è vincolato da allow_skip. Quell’impostazione del ruolo limita ciò che il richiedente può escludere mentre compila la schermata Key People ospitata; questo endpoint è l’override dell’operatore, quindi funziona anche sui ruoli che il richiedente non avrebbe potuto escludere.

Corpo della richiesta

requires_verification viene volutamente lasciato invariato, quindi una persona per cui è stato applicato l’override risulta con requires_verification: true e is_skipped: true: il record mostra comunque che le regole richiedevano un controllo.

Esempio

Risposta: la persona aggiornata, con la stessa struttura di un elemento di key_people_checks[].submitted.parties[] nella decisione della sessione. Viene inviato un webhook data.updated con trigger: "console_key_people_skip".
Una persona la cui sessione figlia è stata eliminata viene segnalata nel payload della decisione con kyc_session_deleted: true (oppure kyb_sub_session_deleted: true per le persone giuridiche), e il suo kyc_session_url / kyb_sub_session_url viene restituito come null perché il collegamento non è più valido. L’eliminazione di una sessione figlia non approva da sola la persona: il controllo Key People passa a In Review, così che sia una persona a decidere.

Cosa succede dopo un aggiornamento

  • Webhook: data.updated viene inviato per la sessione, con il session_kind della sessione nel payload ("user" o "business"). Iscriviti una sola volta a livello di destinazione e smista in base a session_kind.
  • Registro di controllo: la sessione registra esattamente quali campi sono cambiati, i valori precedenti e quelli nuovi e (per le chiamate con autenticazione utente) l’email dell’attore. Visibile nella scheda Events della console.
  • Rigeocodifica dell’indirizzo: per gli aggiornamenti KYC e POA che modificano address / poa_address, Didit esegue la rigeocodifica in background. Gli errori vengono ignorati, così l’aggiornamento non fallisce mai per un problema di geocodifica.
  • Rivalutazione AML: gli aggiornamenti KYC che modificano nome / data di nascita / nazionalità possono rilanciare lo screening AML se lo screening AML sulla sessione non era ancora terminato. I risultati compaiono nella decisione della sessione.

Quando non usare questi endpoint

  • Ripetere l’intera verifica: se il cliente deve rifare la foto del documento d’identità o ricaricare un documento, usa update-status per portare la sessione in Resubmitted.
  • Modificare i campi del profilo dell’entità User o Business: usa PATCH /v3/users/{vendor_data}/ oppure PATCH /v3/businesses/{vendor_data}/; questi endpoint aggiornano i dati a livello di entità, non a livello di sessione.
  • Modificare i dettagli delle persone Key People: non esiste un’API pubblica per modificare nome, ruoli o assetto proprietario di una persona; questi dati vengono inviati tramite il flusso ospitato. L’unico campo modificabile è is_skipped (vedi Escludere una parte della sezione Key People).

Errori

Passaggi successivi

Recupera la sessione

Recupera la decisione completa per vedere i campi aggiornati.

Aggiorna lo stato

Approva, rifiuta o riapri una sessione dopo una correzione dei dati.

Webhook

Iscriviti agli eventi data.updated.
Ultima modifica il 7 novembre 2026