Saltar al contenido principal
A veces el OCR lee mal un documento de identidad, una factura de servicios o una entrada de un registro. Didit ofrece tres endpoints PATCH a los que puedes llamar para corregir los datos extraídos sin tener que repetir toda la verificación. Los cuatro aceptan tu clave de API de cliente o un encabezado de autorización de usuario, y los cuatro emiten un webhook data.updated cuando la operación se completa correctamente, para que tu sistema y tus sistemas de análisis posteriores se mantengan sincronizados.

Requisitos comunes

  • Autorización: clave de API de cliente (x-api-key estándar o bearer en Authorization) o token de autenticación de usuario.
  • Privilegio:
    • KYC y POA: write:sessions
    • Empresa KYB y parte de Personas clave: write:businesses
  • Estado de la sesión (solo KYC / POA): debe ser APPROVED, DECLINED, IN_REVIEW o KYC_EXPIRED. Las sesiones que no han llegado a un estado revisable no se pueden modificar. Las actualizaciones de empresas KYB no tienen restricción de estado.
  • Debe existir un registro de la función: solo puedes modificar campos KYC si la sesión capturó un KYC, campos POA si capturó un POA y campos de empresa KYB si la sesión tiene una comprobación del registro de empresas.
  • Actualizaciones parciales: solo cambian los campos que incluyas. Omite un campo para dejarlo como está. Envía null para eliminar una clave de extra_fields.
  • Webhooks: una actualización exitosa dispara data.updated con session_kind: "user" o "business", y el historial de auditoría de la sesión registra qué campos concretos cambiaron y quién los cambió.

Actualizar los datos de identidad KYC

PATCH /v3/session/{sessionId}/update-data/ Modifica cualquier campo extraído del documento de identidad. Admite flujos de verificación (workflows) basados en grafos con varias instancias mediante un parámetro de consulta o campo del cuerpo node_id opcional: apunta a un registro KYC concreto cuando una misma sesión tiene varios pasos KYC.

Campos modificables

parsed_address solo acepta estas claves anidadas: address_type, city, region, street_1, street_2, postal_code, country (ISO 3166-1 alfa-2).

Ejemplo

En un flujo basado en grafos con varias instancias, añade ?node_id=feature_ocr_2 a la URL (o pasa "node_id": "feature_ocr_2" en el cuerpo) para seleccionar un registro KYC concreto.

Actualizar los datos de Prueba de domicilio (POA)

PATCH /v3/session/{sessionId}/update-poa-data/ Modifica los campos extraídos de un documento de prueba de domicilio. Se aplican las mismas restricciones de estado y el mismo privilegio que en las actualizaciones KYC. También admite node_id para flujos con varias instancias.

Campos modificables

Ejemplo

Actualizar los datos de empresa de KYB

PATCH /v3/session/{sessionId}/kyb/{companyUuid}/update-data/ Corrige los campos extraídos del registro de una empresa de KYB. El endpoint edita tanto las columnas canónicas de la empresa como registry_data, de modo que la vista “Extracted from Registry” de la consola refleja tus correcciones. user_provided_data (lo que el usuario final confirmó en el flujo alojado) no se modifica. Se registra last_console_edit_at y se envía un webhook data.updated con trigger: "console_registry_edit".

Requisitos

  • Permiso: write:businesses (distinto del permiso de KYC / POA).
  • El companyUuid de la URL debe pertenecer al sessionId indicado; de lo contrario, recibes un 404.
  • No hay restricción por estado de la sesión: los datos de empresa de KYB se pueden corregir en cualquier momento.

Campos modificables

Los campos que omitas no se modifican. Los campos que envíes se escriben en la columna canónica (cuando existe) y se combinan en registry_data. Las fechas se serializan como cadenas ISO 8601 al combinarse en registry_data.

Ejemplo

Respuesta: el objeto completo de la empresa de KYB, con la misma estructura que registry_checks[].company en la decisión de la sesión.

Omitir a una parte de Personas clave

PATCH /v3/session/{sessionId}/kyb/parties/{partyUuid}/ Exime de la verificación a una parte de Personas clave: es la vía de escape para una parte que nunca podrá completar su propia comprobación. La causa habitual es una sesión hija eliminada: una vez eliminado el KYC individual asignado a un UBO o a un director, su estado queda congelado y nunca puede resolverse, por lo que el KYB no tiene nada que pueda sacarlo de Awaiting User. Al omitir la parte, esta sale de la agregación de Personas clave, la comprobación se recalcula en el acto y la sesión puede resolverse y ser aprobada o rechazada.

Requisitos

  • Permiso: write:businesses.
  • El partyUuid de la URL debe pertenecer al sessionId indicado; de lo contrario, recibes un 404.
  • No depende de allow_skip. Esa configuración del rol limita lo que el solicitante puede omitir mientras completa la pantalla alojada de Personas clave; este endpoint es la anulación del operador, por lo que funciona incluso en roles que el solicitante no podría haber omitido.

Cuerpo

requires_verification se deja intacto de forma deliberada, de modo que una parte excluida aparece con requires_verification: true y is_skipped: true: el registro sigue mostrando que las reglas exigían una comprobación.

Ejemplo

Respuesta: la parte actualizada, con la misma forma que una entrada de key_people_checks[].submitted.parties[] en la decisión de la sesión. Se envía un webhook data.updated con trigger: "console_key_people_skip".
Una parte cuya sesión hija se eliminó aparece marcada en el payload de la decisión con kyc_session_deleted: true (o kyb_sub_session_deleted: true en el caso de partes corporativas), y su kyc_session_url / kyb_sub_session_url se devuelve como null porque el enlace ya no se resuelve. Eliminar una sesión hija nunca aprueba a la parte por sí solo: la comprobación de Personas clave pasa a In Review para que una persona tome la decisión.

Qué ocurre después de una actualización

  • Webhook: se activa data.updated en la sesión, con el session_kind de la sesión en el payload ("user" o "business"). Suscríbete una sola vez a nivel de destino y enruta según session_kind.
  • Registro de auditoría: la sesión registra exactamente qué campos cambiaron, los valores anteriores y nuevos y (en las llamadas autenticadas como usuario) el correo electrónico de quien hizo el cambio. Se puede ver en la pestaña Events de la consola.
  • Nueva geocodificación de la dirección: en las actualizaciones de KYC y POA que cambian address / poa_address, Didit vuelve a ejecutar la geocodificación en segundo plano. Los fallos se ignoran, de modo que la actualización nunca falla por un problema de geocodificación.
  • Nueva evaluación AML: las actualizaciones de KYC que cambian el nombre, la fecha de nacimiento o la nacionalidad pueden volver a disparar el análisis AML si este no había terminado en la sesión. Los resultados aparecen en la decisión de la sesión.

Cuándo no usar estos endpoints

  • Volver a ejecutar toda la verificación: si el cliente tiene que volver a tomar la foto de su documento de identidad o volver a subir un documento, usa update-status para pasar la sesión a Resubmitted.
  • Cambiar campos del perfil de la entidad User o Business: usa PATCH /v3/users/{vendor_data}/ o PATCH /v3/businesses/{vendor_data}/; esos endpoints actualizan datos a nivel de entidad, no a nivel de sesión.
  • Editar los datos de Personas clave: no existe una API pública para modificar el nombre, los roles o la propiedad de una parte; esos datos se envían a través del flujo alojado. El único campo modificable es is_skipped (consulta Omitir a una parte de Personas clave).

Errores

Próximos pasos

Obtener sesión

Obtén la decisión completa para ver los campos actualizados.

Actualizar estado

Aprueba, rechaza o reabre una sesión después de corregir datos.

Webhooks

Suscríbete a los eventos data.updated.
Última modificación el 1 de noviembre de 2026