Saltar al contingut principal
POST
curl

Suport de KYC i KYB

Didit decodifica el token de compartició, llegeix el session_kind incrustat i clona el tipus de sessió corresponent:
  • session_kind: "user": clona la sessió d’usuari més les files relacionades d’identitat, imatge facial, prova de vida, coincidència facial, AML, ubicació, POA, telèfon, correu electrònic, validació de bases de dades i registres.
  • session_kind: "business": clona la sessió d’empresa més les files relacionades de comprovació del registre mercantil, registres de persones clau, documents, cribratges AML, telèfon, correu electrònic, ubicació, qüestionari i registres.
Si el token és anterior a la implantació de la compartició unificada i no té el camp session_kind, Didit assigna per defecte "user" per mantenir la compatibilitat amb versions anteriors.

Què es crea

  • Una sessió nova del mateix tipus a la teva aplicació, amb un session_id, session_number i session_url nous.
  • El camp shared_from_session de la sessió nova apunta a la sessió original de l’aplicació d’origen.
  • L’estat de la sessió nova és l’estat original (trust_review: true) o IN_REVIEW (trust_review: false).
  • Es crea automàticament una entitat nova (Usuari o Empresa) per al vendor_data si no n’existeix cap.

Exemples

Resposta (201 Created):

Paràmetre trust_review

Errors

Idempotència

Importar el mateix share_token dues vegades a la mateixa aplicació es rebutja amb 403, tant per a sessions d’usuari com per a sessions d’empresa.

Relacionat

Autoritzacions

x-api-key
string
header
requerit

La clau d'API de la teva aplicació, des de Developers -> API keys a la Business Console. La clau primària té accés complet. Una clau amb nom pot tenir l'abast limitat: cap, lectura o escriptura per recurs, limitada a determinats fluxos de treball o a sessions aprovades, a una llista d'adreces IP i a una data de caducitat. 401 significa que la clau és incorrecta, revocada o caducada; 403 significa que no s'ha enviat cap clau, que la clau no té accés a aquest recurs o acció, o que la sol·licitud prové d'una adreça fora de la seva llista d'IP; 404 en una ruta de sessió significa que la sessió està fora dels fluxos de treball o estats de la clau. Una clau sense accés a fitxers multimèdia rep els URL d'imatge, vídeo i PDF com a null, i una clau sense permís d'escriptura de sessions rep els enllaços de sessió i els tokens com a null. Consulta https://docs.didit.me/console/api-keys.

Cos

application/json
share_token
string
requerit

Token per compartir JWT emès per POST /v3/session/{sessionId}/share/.

Exemple:

"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

trust_review
boolean
requerit

Si és true, la sessió clonada conserva el status final de l'origen. Si és false, es força a l'estat In Review.

Exemple:

false

workflow_id
string<uuid>
requerit

UUID d'un flux de treball de l'aplicació que fa la crida. Els ID d'altres aplicacions es rebutgen amb un 404.

Exemple:

"9f9b1234-aaaa-bbbb-cccc-1234567890ab"

vendor_data
string | null

Substitució opcional per al vendor_data de la sessió clonada.

Exemple:

"user-1"

Resposta

Sessió clonada. El cos és el payload de decisió V3 per a tots dos tipus, discriminat per session_kind: "user" (KYC) amb blocs de funcionalitats basats en llistes com ara id_verifications, liveness_checks, aml_screenings; "business" (KYB) amb blocs com ara registry_checks i key_people_checks. Tots dos inclouen shared_from_session, el session_id de la sessió original a l'aplicació d'origen. Amb trust_review: false, l'status de la sessió clonada es força a In Review.

session_id
string<uuid>

L'identificador únic de la sessió.

session_kind
enum<string>

Discriminador que indica si es tracta d'una sessió de Verificació d'usuaris (KYC) o de Verificació d'empreses (KYB). Quan és user, s'apliquen les matrius de funcionalitats de KYC (id_verifications, nfc_verifications, liveness_checks, face_matches, poa_verifications, document_ai_documents, database_validations, ...) i les matrius d'empresa no hi són presents. Quan és business, el payload conté en el seu lloc registry_checks, document_verifications, key_people_checks a més de les matrius compartides (aml_screenings, phone_verifications, email_verifications, ip_analyses, questionnaire_responses). S'omet quan es passa include=events — l'estructura d'esdeveniments només existeix per a sessions d'usuari, de manera que el discriminador s'elimina d'aquesta variant.

Opcions disponibles:
user,
business
shared_from_session
string<uuid> | null

Per a una sessió clonada amb POST /v3/session/import-shared/: el session_id de la sessió original a l'aplicació d'origen. null per a qualsevol altra sessió. S'omet quan es passa include=events.

shared_from_session_number
integer | null

session_number de la sessió d'origen quan aquesta sessió s'ha importat des d'una altra aplicació de la teva organització. En cas contrari, null.

session_number
integer | null

El número de la sessió.

session_url
string<uri> | null

L'URL de la sessió.

status
enum<string>

Estat global del cicle de vida de la sessió — el resultat agregat del flux de treball. Els valors finals són Approved, Declined, In Review, Expired, Kyc Expired i Abandoned; Not Started, In Progress, Awaiting User i Resubmitted indiquen que la sessió encara està avançant pel flux de treball.

Opcions disponibles:
Not Started,
In Progress,
Awaiting User,
In Review,
Approved,
Declined,
Resubmitted,
Expired,
Kyc Expired,
Abandoned
status_override
object | null

Present quan un revisor ha definit status manualment. null quan l'estat s'ha establert automàticament. Fes-lo servir per distingir una aprovació manual d'una d'automàtica.

decision_trace
object

Com s'ha assolit l'estat: qui l'ha establert i quines advertències hi han contribuït.

linked_records
object | null

Un resum d'altres registres vinculats a la sessió. null quan no hi ha res a mostrar i per a fluxos de treball que declaren un estàndard d'assegurament de l'edat.

workflow_id
string<uuid> | null

Identificador estable del grup del flux de treball que ha generat aquesta sessió. Els fluxos de treball tenen versions: aquest valor identifica el flux de treball en si, no la versió específica.

features
string[]

Llista de funcionalitats de verificació configurades per a aquesta sessió, com a noms visibles: ID_VERIFICATION, NFC, LIVENESS, FACE_MATCH, POA, PHONE, EMAIL_VERIFICATION, AML, IP_ANALYSIS, DATABASE_VALIDATION, QUESTIONNAIRE, AGE_ESTIMATION, FACE_SEARCH, GEOLOCATION (verificació d'ubicació) (les sessions de Verificació d'empreses utilitzen el conjunt de funcionalitats de KYB: KYB_REGISTRY, KYB_DOCUMENTS, KYB_KEY_PEOPLE, AML, PHONE, EMAIL_VERIFICATION, IP_ANALYSIS, QUESTIONNAIRE). Amb include=events cada entrada es converteix en un objecte {feature, node_id} en comptes d'una cadena simple, i la funcionalitat de correu electrònic es reanomena: apareix com a EMAIL en mode d'esdeveniments en lloc del EMAIL_VERIFICATION utilitzat aquí.

La funcionalitat de la sessió.

vendor_data
string | null

El vendor_data de la sessió.

metadata
object | null

Les metadades de la sessió.

expected_details
object | null

Detalls esperats proporcionats en crear la sessió — s'utilitzen per a la validació creuada amb les dades extretes (KYC) o per emplenar prèviament la cerca al registre mercantil (KYB). Retorna exactament les claus que s'han proporcionat; null quan no se n'ha proporcionat cap. Les sessions de KYC contenen els camps de persona; les sessions d'empreses (KYB) contenen company_name, registry_country i registration_number.

contact_details
object | null

Dades de contacte facilitades en crear la sessió (utilitzades per als correus electrònics de notificació, la verificació de telèfon/correu electrònic amb les dades emplenades prèviament i l'idioma de comunicació). null quan no s'ha proporcionat cap correu electrònic ni número de telèfon.

callback
string<uri> | null

L'URL de callback de la sessió.

id_verifications
object[] | null

Matriu d'informes de verificació d'identitat (OCR) generats per passos de document d'identitat al graf del flux de treball. Sempre és una matriu JSON — llegeix id_verifications[0] i itera si el teu flux de treball pot executar més d'una comprovació d'identitat (per exemple, una comprovació principal més un pas d'escalada). null fins que almenys un pas d'identitat hagi generat dades. Cada element és l'informe complet, incloent-hi node_id, l'status a nivell de funcionalitat, camps del document extrets, URL de les imatges, puntuacions de qualitat, MRZ, anàlisi de l'adreça, coincidències entre sessions i warnings[].

nfc_skip_reason
enum<string> | null

Per què no s'ha executat la verificació del xip NFC, omplert sempre que el flux de treball inclogui un pas d'NFC. null mentre l'NFC estigui pendent o quan el xip s'hagi llegit. Valors: USER_SKIPPED - l'usuari ha triat ometre-ho en un dispositiu compatible amb NFC (permès per allow_nfc_skip); DOCUMENT_WITHOUT_CHIP - el document no té cap xip NFC llegible (no és un document electrònic ICAO 9303); CHIP_CERTIFICATE_UNAVAILABLE - el certificat de signatura del país emissor (CSCA) que cobreix el període d'emissió del document no està disponible, de manera que no es pot verificar la signatura del xip; DEVICE_WITHOUT_NFC - el dispositiu ha indicat que no té lector NFC; INTEGRATION_WITHOUT_NFC_ACCESS - la verificació s'ha executat sense un SDK natiu (p. ex. en un navegador web), que no té accés al lector NFC del telèfon; MRZ_KEY_UNAVAILABLE - no s'ha pogut obtenir la clau d'accés al xip a partir de la MRZ del document; JPKI_UNAVAILABLE - el document és una targeta My Number del Japó, el xip de la qual es llegeix mitjançant JPKI, i JPKI no estava disponible per a aquesta verificació: no està habilitat o l'SDK natiu de l'aplicació no pot llegir targetes My Number.

Opcions disponibles:
USER_SKIPPED,
DOCUMENT_WITHOUT_CHIP,
CHIP_CERTIFICATE_UNAVAILABLE,
DEVICE_WITHOUT_NFC,
INTEGRATION_WITHOUT_NFC_ACCESS,
MRZ_KEY_UNAVAILABLE,
JPKI_UNAVAILABLE
nfc_verifications
object[] | null

Matriu d'informes d'NFC / ePassport generats per passos d'NFC al graf del flux de treball. Això és sempre una matriu JSON, mai un objecte nfc singular — llegeix nfc_verifications[0] i itera si el teu flux de treball pot executar NFC més d'una vegada. null fins que almenys un pas d'NFC hagi generat dades. Cada element és l'informe complet, incloent-hi node_id, l'status a nivell de funcionalitat, chip_protocol, chip_data, authenticity (integritat de SOD + DG), certificate_summary i warnings[]. Una My Number Card del Japó es llegeix mitjançant JPKI en lloc d'ICAO 9303: el seu element té chip_protocol: "jpki", inclou les seves proves sota jpki i deixa els camps ICAO com a null. Quan el pas d'NFC s'ha omès abans que es pogués arribar a oferir (document sense xip, certificat absent, cap capacitat NFC reportada, clau MRZ il·legible, JPKI no disponible per a una My Number Card), aquest valor roman com a null i nfc_skip_reason n'explica el motiu; una omissió en el pas mateix (l'usuari ha premut ometre, o el lector no estava disponible en el moment de l'escaneig) continua generant un informe amb is_nfc_skipped: true.

liveness_checks
object[] | null

Matriu d'informes de prova de vida generats per passos de prova de vida al graf del flux de treball. Sempre és una matriu JSON — mai un objecte liveness singular. null fins que almenys un pas de prova de vida hagi generat dades. Cada element és l'informe complet, incloent-hi node_id, l'status a nivell de funcionalitat, method, score, reference_image, video_url, age_estimation opcional, matches[] entre sessions i warnings[].

face_matches
object[] | null

Matriu d'informes de coincidència facial generats per passos de coincidència facial al graf del flux de treball. Sempre és una matriu JSON — mai un objecte face_match singular. null fins que almenys un pas de coincidència facial hagi generat dades. Cada element és l'informe complet, incloent-hi node_id, l'status a nivell de funcionalitat, l'score de similitud, source_image, target_image i warnings[].

phone_verifications
object[] | null

Matriu d'informes de verificació de telèfon — sempre és una matriu JSON, mai un objecte phone singular. null fins que almenys un pas de telèfon hagi generat dades. Cada element és l'informe complet, incloent-hi node_id, l'status a nivell de funcionalitat, el número de telèfon i metadades del país, lifecycle[], matches[] i warnings[].

email_verifications
object[] | null

Matriu d'informes de verificació de correu electrònic — sempre és una matriu JSON, mai un objecte email singular. null fins que almenys un pas de correu electrònic hagi generat dades. Cada element és l'informe complet, incloent-hi node_id, l'status a nivell de funcionalitat, l'adreça de correu electrònic, dades de filtracions, lifecycle[], matches[] i warnings[].

poa_verifications
object[] | null

Matriu d'informes de Comprovant de domicili (POA) — sempre és una matriu JSON, mai un objecte poa singular. null fins que almenys un pas de POA hagi generat dades. Cada element és l'informe complet, incloent-hi node_id, l'status a nivell de funcionalitat, l'URL del fitxer del document, l'emissor, les dates, l'adreça analitzada i warnings[].

document_ai_documents
object[] | null

Informes de Document AI agrupats per node del flux de treball — sempre una matriu JSON, mai un objecte singular. null fins que almenys un pas de Document AI hagi generat dades. Present només quan session_kind = user. Cada element és un grup de nodes amb un status agregat, el node_id, una matriu items[] dels resultats per document (dades extretes indexades per la clau de camp configurada) i warnings.

questionnaire_responses
object[] | null

Matriu d'informes de respostes de qüestionaris — sempre és una matriu JSON, mai un objecte questionnaire singular. null fins que almenys un pas de qüestionari hagi generat dades. Cada element és l'informe complet, incloent-hi node_id, les metadades del qüestionari, seccions amb elements de formulari i les respostes de l'usuari.

bank_verifications
object[] | null

Resultats de la Verificació bancària, un element per pas de Verificació bancària, per a Verificació d'usuaris i d'empreses. null fins que un pas en produeixi un. El camp method de cada element indica com s'ha verificat el compte: open_banking (inici de sessió bancari) o account_lookup (comprovació de compte), o bé un mètode alternatiu statement o microdeposits, i none quan la persona ha continuat sense banc abans que s'avalués cap intent (continued_without_bank). Consulta Mètodes de verificació bancària.

signatures
object[]

Resultats de la signatura electrònica, un element per signant i pas de signatura, per a Verificació d'usuaris i Verificació d'empreses (KYB). Només és present quan el flux de treball té un pas de Signatura electrònica; una matriu buida fins que un signant hi arriba. Consulta l'Informe de signatura electrònica.

aml_screenings
object[] | null

Array d'informes de cribratge AML — sempre és un array JSON, mai un objecte aml singular. null fins que almenys un pas d'AML hagi produït dades. Cada element és l'informe complet, incloent-hi node_id, status a nivell de funcionalitat, total_hits, entity_type, hits[], score, screened_data, is_ongoing_monitoring_enabled i warnings[].

ip_analyses
object[] | null

Matriu d'informes d'Anàlisi de dispositiu i IP — sempre és una matriu JSON, mai un objecte ip_analysis singular. null fins que almenys un pas d'anàlisi d'IP hagi generat dades. Cada element és l'informe complet, incloent-hi node_id, l'status a nivell de funcionalitat, dades d'IP i geolocalització, empremta digital del dispositiu i warnings[]. Les entrades amb (node_id, ip_address, device_fingerprint) duplicats es dedupliquen al servidor.

geolocation_checks
object[] | null

Matriu de resultats de verificació d'ubicació, un per cada pas de verificació d'ubicació: l'intent acceptat d'aquest pas. null fins que un pas de verificació d'ubicació hagi generat dades. Els intents anteriors del mateix pas es troben a geolocation_attempts.

geolocation_attempts
object[] | null

Tots els intents de cada pas de verificació d'ubicació d'aquesta sessió, del més antic al més recent. Els intents substituïts per un reenviament s'ometen. Un flux de treball que retingui geolocation_checks mitjançant els seus atributs de resposta també reté aquesta llista.

database_validations
object[] | null

Array d'informes de Validació en bases de dades — sempre és un array JSON, mai un objecte database_validation singular. null fins que almenys un pas de validació en bases de dades hagi generat dades. Cada element és l'informe complet, incloent-hi node_id, el status a nivell de funcionalitat, screened_data, les validations[] per servei (cadascuna amb el seu source_data del registre) i warnings[]. Els camps screened_data i source_data varien segons el país:

ARG (Argentina): screened_data: {document_number, selfie, gender, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, date_of_death, tax_id, tax_id_type, face_match_score, sit_1_since, banks, last_position, highest_position, rejected_checks}. Utilitza la validació biomètrica de coincidència facial del RENAPER. El gènere s'infereix automàticament a partir de l'anàlisi facial o del nom de pila quan no està present al document (p. ex., permisos de conduir)

BOL (Bolívia): screened_data: {document_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender}

BRA (Brasil): screened_data: {tax_number, first_name, last_name, date_of_birth}. source_data sempre inclou {identification_number, first_name, last_name, date_of_birth, lgpd_minor, minor_under_18, minor_under_16} per a coincidències satisfactòries de CPF. Les consultes d'adults satisfactòries estableixen aquests indicadors a false. El servei Consulta CPF de la Receita Federal pot retornar HTTP 422 (menor de 18 anys) o 451 (menor de 16 anys) amb dades retingudes per la LGPD; en aquests casos, source_data estableix els indicadors de menor a true segons correspongui, inclou l'estat HTTP del servei d'origen i la validació a nivell de camp és no_match. Consulta la secció del Brasil de la referència de Codis de resultats de la validació en bases de dades per obtenir la llista completa de codis.

CHL (Xile): screened_data: {personal_number, first_name, last_name, date_of_birth}. source_data: {identification_number, first_name, last_name, date_of_birth, gender}

COL (Colòmbia): screened_data: {document_number, document_type, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, document_type}

CRI (Costa Rica): screened_data: {personal_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

DOM (República Dominicana): screened_data: {personal_number}. source_data: {identification_number} (només retorna vàlid/invàlid)

ECU (Equador): screened_data: {personal_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, street, formatted_address, gender, nationality, education, marital_status, spouse, mother_name, father_name, profession}

ESP (Espanya): screened_data: {personal_number, document_type, expiration_date, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, document_type, expiration_date}

GTM (Guatemala): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

HND (Hondures): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

MEX (Mèxic): screened_data: {personal_number (CURP), first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender, nationality, curp_status, state_of_birth, doc_probatorio, registration_year, registration_state, registration_municipality, num_acta, crip, issuing_state_code, foreign_registry_number, folio_carta, folio_certificado}. Utilitza el registre civil RENAPO. També hi ha disponible un servei independent de verificació de validesa de l'INE per a MEX com a validació addicional individual.

PAN (Panamà): screened_data: {personal_number, selfie}. source_data: {identification_number}. Utilitza la validació biomètrica del SIB

PER (Perú): screened_data: {personal_number (DNI), first_name, last_name}. source_data: {identification_number, first_name, last_name, paternal_name, maternal_name, verification_number, verification_letter}

PRY (Paraguai): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

SLV (El Salvador): screened_data: {document_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

URY (Uruguai): screened_data: {personal_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

VEN (Veneçuela): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, gender, date_of_birth, document_type}

database_validation_not_performed_reason
object | null

Per què una validació en bases de dades configurada no ha produït cap resultat, com a {code, message} més camps de context. Només està present quan database_validations és null per a un flux de treball que té el pas, de manera que pots distingir entre "el registre ha donat el vistiplau" i "no s'ha executat res". null en cas contrari.

reviews
object[]
assignee
object | null

El revisor de la consola a qui s'ha assignat la sessió, o null quan ningú la té assignada.

waiting_since
string<date-time> | null

Quan la sessió va començar a esperar la revisió. null tret que la sessió estigui In Review i la teva aplicació estableixi un termini de revisió.

sla_due_at
string<date-time> | null

Data límit de la revisió. null tret que la sessió estigui In Review i la teva aplicació estableixi un termini de revisió.

created_at
string<date-time>

Marca de temps en què es va crear la sessió (ISO 8601, UTC).

expires_at
string<date-time> | null

Marca de temps en què està programada la caducitat d'aquesta sessió. S'estableix a les sessions de Verificació d'usuaris (KYC) quan se'n va configurar la caducitat en el moment de la creació (o un cop l'estat Approved activa el càlcul de caducitat de KYC). null per a sessions sense una caducitat configurada i per a tipus que no utilitzen caducitat (p. ex., sessions de Verificació d'empreses (KYB) que mai no han rebut un expires_at).

registry_checks
object[] | null

Comprovacions del registre mercantil. Només present quan session_kind = business. Cada element conté el payload complet del registre mercantil.

key_people_checks
object[] | null

Comprovacions agregades de persones clau. Present només quan session_kind = business. Cada element utilitza l'estructura de dos blocs (registry, submitted, ubo_kyc_summary).

document_verifications
object[] | null

Comprovacions de verificació de documents agrupades per node del flux de treball. Només presents quan session_kind = business.

environment
enum<string>

Si la sessió s'ha creat mitjançant una aplicació de producció (live) o una aplicació de sandbox (sandbox). Les sessions de sandbox són gratuïtes, completament simulades i mai no facturen crèdits.

Opcions disponibles:
live,
sandbox
sandbox_scenario
string | null

L'escenari de sandbox amb el qual es va crear la sessió. null per a sessions de producció i per a sessions de sandbox creades sense cap escenari.

resubmissions
object[]

Retornat només amb include=resubmissions, per a sessions d'usuari i d'empresa. Una entrada per sol·licitud de reenviament, començant per la més antiga. Cada entrada conté els resultats que els passos tornats a enviar van retornar abans de la sol·licitud, de manera que les trameses anteriors es mantenen consultables. Si s'elimina la sessió, s'eliminen totes les trameses.

Si la sessió ha requerit consentiment biomètric explícit abans d'una captura facial, per què i l'evidència de la resposta. Només per a sessions de Verificació d'usuaris (KYC); el mateix objecte es troba a la decision dels webhooks de sessió. null quan la sessió no s'ha avaluat mai, per exemple en un flux de treball sense captura facial. Els camps sense cap valor registrat són null. Un SDK natiu inferior a 4.10.0, o un que no informi de la seva versió, no pot mostrar el pas de consentiment: les seves captures facials s'executen com abans, i una sessió que requeria consentiment informa llavors de status: "pending" amb reason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK". Consulta Consentiment biomètric.

investigator
object | null

La revisió més recent d'Investigator de l'element, o null quan mai no n'ha tingut cap. S'inclou a la decisió de la sessió V3 i de la sessió d'empresa (i, per tant, als webhooks de status.updated).

biometric_retention
object

Quan s'eliminen les dades biomètriques en directe d'aquesta sessió.

fraud_check
object | null

El resultat d'una crida a la Fraud Check API. null per a qualsevol altra sessió.

full_session_video
string<uri> | null

URL temporal de la gravació completa de la sessió. Només es retorna quan la teva organització grava el vídeo de la sessió completa.

full_session_video_recorded_at
string<date-time> | null

Quan es va fer la gravació de la sessió completa. Es retorna només quan la teva organització grava el vídeo de la sessió completa.

Darrera modificació el 7 de novembre del 2026