# DataSubjectRequest

Representan las solicitudes de ejercicio de derechos de los usuarios.

### Guías relacionadas

-   [Gestión de derechos](https://docs.soyio.id/docs/integration-guide/rights-management/introduction)
-   [Centro de privacidad](https://docs.soyio.id/docs/integration-guide/privacy-center/introduction)

| Field | Type | Required | Description | Example |
| --- | --- | --- | --- | --- |
| id | string | optional | Identificador único del data subject request. Debe empezar con dsreq_ | dsreq_ |
| humanized_identifier | string | optional | Identificador de la solicitud. | FME4607 |
| subject_id | string | optional | Identificador único del sujeto de datos que se está modificando. Puede corresponder al identificador de un Identity o Entity. | Identity |
| user_reference | string | optional | Referencia del usuario en el sistema del cliente. | user_123 |
| request_reference | string | optional | Referencia opcional de la solicitud proporcionada por el cliente para correlacionar webhooks y eventos. | ticket-12345 |
| company_branch_id | string | optional | Identificador de la sucursal a la que está asociada esta solicitud. | branch_1B2M2Y8AsgTpgAmY7PhCfg |
| kind | string | null | required | Tipo de solicitud. Es null cuando el titular pide más de un derecho, porque en ese caso no hay uno solo: la lista está en kinds y el detalle de cada derecho en processes. Un bloqueo pedido por sí solo sí aparece acá; el bloqueo derivado, que acompaña a otro derecho, no cuenta para esto y aparece solo en kinds. | null |
| kinds | string[] | optional | Todos los derechos de la solicitud, incluidos los derivados. Trae siempre la lista completa, así que es el campo a leer: una solicitud de supresión con bloqueo llega con kind en suppression y kinds en ["suppression", "blocking"]. | kind |
| status | string | optional | Estado actual de la solicitud. | awaiting_verification |
| terminal_state | string | optional | Estado terminal de la solicitud cuando status es resolved. | status |
| approved | boolean | optional | Indica si la resolución fue aprobada (true) o rechazada (false). Campo legacy derivado de terminal_state y puede ser null si la resolución es parcial. | terminal_state |
| data_usage_during_request | string | null | optional | Indica si el uso de los datos queda bloqueado mientras se tramita la solicitud. Si no lo envías al crearla y la solicitud incluye una rectificación, oposición o supresión, Soyio lo completa: block cuando la solicitud lleva un proceso de bloqueo y allow cuando no. En el resto de los casos refleja el valor que enviaste, y es null si no enviaste ninguno. | block |
| data_usage_block_justification | string | optional | Justificación que el titular puede proveer cuando elige bloquear el uso de sus datos durante la solicitud (data_usage_during_request: "block"). Es opcional por defecto, pero pasa a ser obligatoria si la configuración data_usage_block_justification_required está activada. | data_usage_during_request: "block" |
| rejection_reason | string | optional | Razón de rechazo si la solicitud fue rechazada. | Documentación insuficiente |
| contact_information | object | required | Información de contacto del titular. La visibilidad / obligatoriedad de alguno de estos campos es configurable. | 123456785 |
| contact_information.nin | string | required | Número de identificación del usuario. No configurable. | 123456785 |
| contact_information.email | email | required | Email del usuario. Este email se usa para enviar confirmaciones. No configurable. | user@example.com |
| contact_information.names | string | optional | Nombres del usuario. Configurable | <= 50 characters |
| contact_information.last_names | string | optional | Apellidos del usuario. Configurable | <= 50 characters |
| contact_information.phone | string | optional | Número de teléfono del usuario. Configurable | +56 9 1234 5678 |
| request_detail | object | required | Detalle de la solicitud. Puede ser null cuando la solicitud es creada directamente por la compañía (a través de la API). Cuando se crea a través del widget del centro de privacidad, este campo siempre estará presente. | null |
| request_detail.kind | string | required | Alcance de la consulta: | all |
| request_detail.data_categories | string[] | optional | Categorías de datos a solicitar. Requerido cuando kind es 'specific'. Debe ser una categoría válida de la taxonomía o 'other'. | ["user.name","user.contact.email"] |
| request_detail.detail | string | optional | Detalle adicional de la solicitud. | Solicitud de acceso a datos personales |
| request_detail.file | string | optional | Archivo adjunto opcional. Se envía como data URI y se devuelve como URL. |  |
| request_detail.kind | string | required | Alcance de la consulta: | all |
| request_detail.data_categories | string[] | optional | Categorías de datos a solicitar. Requerido cuando kind es 'specific'. Debe ser una categoría válida de la taxonomía o 'other'. | ["user.name","user.contact.email"] |
| request_detail.detail | string | optional | Detalle adicional de la solicitud. | Solicitud de acceso a datos personales |
| request_detail.file | string | optional | Archivo adjunto opcional. Se envía como data URI y se devuelve como URL. |  |
| request_detail.requested_fields | object[] | required | Campos que pides modificar o eliminar. Cada elemento lleva data_category (opcional: una categoría de la taxonomía o all), detail (obligatorio) y file (opcional, adjunto como data URI). | data_category |
| request_detail.requested_fields.data_category | string | optional | Categoría de datos según taxonomía válida o 'all'. Debe ser una categoría válida de la taxonomía. | user.name |
| request_detail.requested_fields.detail | string | required | Detalle específico del campo solicitado. | Corrección de fecha de nacimiento |
| request_detail.requested_fields.file_url | string | optional | URL del archivo adjunto, si se envió uno. |  |
| request_detail.redec_id | string | optional | Identificador del caso en REDEC. | redec_123 |
| request_detail.reason_code | integer | required | Código de razón definido por REDEC. Debe ser válido para el tipo de solicitud REDEC. | 2 |
| request_detail.entry_channel_code | integer | optional | Código de la vía de ingreso de la solicitud. | 11 |
| request_detail.reason | string | optional | Texto asociado al código de razón. Solo de respuesta. | Diferencias en la morosidad informada de la deuda objetada |
| request_detail.detail | string | required | Detalle adicional de la solicitud. | Actualización de monto informado |
| request_detail.operation_id | string | required | Código de la operación crediticia asociada a la solicitud. | op_123456 |
| request_detail.file_url | string | optional | URL del archivo adjunto (PDF), si aplica. |  |
| request_detail.detail | string | optional | Motivo por el que el titular pide el bloqueo. Es obligatorio cuando la configuración data_usage_block_justification_required está activada. | data_usage_block_justification_required |
| request_detail.file | string | optional | Archivo de respaldo opcional. Se envía como data URI y se devuelve como URL. |  |
| subject_provided_files | object[] | required | Archivos proporcionados por el titular que pueden adjuntarse a la respuesta de resolución. | dsrp_1B2M2Y8AsgTpgAmY7PhCfg:query |
| subject_provided_files.id | string | required | Identificador estable del archivo dentro de la solicitud. Nombra el derecho al que pertenece el archivo seguido de su identificador dentro de ese derecho. | dsrp_1B2M2Y8AsgTpgAmY7PhCfg:query |
| subject_provided_files.file_url | string | required | URL del archivo proporcionado por el titular. |  |
| subject_provided_files.file_name | string | null | required | Nombre original del archivo. | antecedente.pdf |
| subject_provided_files.byte_size | integer | null | required | Tamaño del archivo en bytes. Permite anticipar el límite de tamaño total de los adjuntos de la resolución, que suma estos archivos junto con los que sube el operador. | 20480 |
| subject_provided_files.description | string | null | required | Justificación o detalle asociado al archivo. | Necesito revisar mis datos |
| has_validation_attempt | boolean | optional | Indica si la solicitud tiene un intento de validación activo o histórico. | true |
| validation_source | string | optional | Origen de la validación de identidad del titular. soyio cuando existe al menos un intento de validación trazable; external cuando la solicitud avanzó a processing/resolved sin ningún intento (se validó fuera del producto); pending cuando la solicitud sigue abierta y aún no se valida. | soyio |
| authentication_metadata | object | null | optional | Metadata libre que el cliente registra sobre cómo autenticó al titular cuando la validación fue externa (modo autenticado). El esquema lo define el cliente. null cuando no aplica. | null |
| authentication_metadata.property name\* | any | optional | Metadata libre que el cliente registra sobre cómo autenticó al titular cuando la validación fue externa (modo autenticado). El esquema lo define el cliente. null cuando no aplica. | null |
| identity_verification_type | IdentityVerificationType | optional | Tipo semántico de validación de identidad configurado para el intento. | biometric |
| validation_attempt | object | optional | Resumen no sensible del intento de validación más reciente (excluye intentos cancelados). | va_1B2M2Y8AsgTpgAmY7PhCfg |
| validation_attempt.id | string | optional | ID del intento de validación. | va_1B2M2Y8AsgTpgAmY7PhCfg |
| validation_attempt.status | string | optional | Estado del intento de validación. | pending |
| validation_attempt.identity_verification_type | IdentityVerificationType | optional | Tipo semántico de validación de identidad configurado para el intento. | biometric |
| validation_attempt.successful_at | date-time | optional | Fecha en que el intento fue exitoso, si aplica. |  |
| validation_attempt.error_reason | string | null | optional | Motivo del error del intento, si falló. | matcher_error |
| validation_attempt.created_at | date-time | optional | Fecha de creación del intento. |  |
| validation_attempt.government_id_validation | object | optional | GovernmentIdValidationSummary | pending |
| validation_attempt.government_id_validation.status | string | optional | Estado de la validación gubernamental. | pending |
| validation_attempt.government_id_validation.government_check_provider | string | null | optional | Proveedor usado para la validación gubernamental. | certificadora_del_sur |
| validation_attempt.government_id_validation.error_reason | string | null | optional | Motivo del error si la validación gubernamental falló. | document_not_valid |
| validation_attempts | object[] | optional | Intentos de validación con Soyio en orden cronológico (excluye los cancelados). Vacío cuando la validación fue externa. | va_1B2M2Y8AsgTpgAmY7PhCfg |
| validation_attempts.id | string | optional | ID del intento de validación. | va_1B2M2Y8AsgTpgAmY7PhCfg |
| validation_attempts.status | string | optional | Estado del intento de validación. | pending |
| validation_attempts.identity_verification_type | IdentityVerificationType | optional | Tipo semántico de validación de identidad configurado para el intento. | biometric |
| validation_attempts.successful_at | date-time | optional | Fecha en que el intento fue exitoso, si aplica. |  |
| validation_attempts.error_reason | string | null | optional | Motivo del error del intento, si falló. | matcher_error |
| validation_attempts.created_at | date-time | optional | Fecha de creación del intento. |  |
| validation_attempts.government_id_validation | object | optional | GovernmentIdValidationSummary | pending |
| validation_attempts.government_id_validation.status | string | optional | Estado de la validación gubernamental. | pending |
| validation_attempts.government_id_validation.government_check_provider | string | null | optional | Proveedor usado para la validación gubernamental. | certificadora_del_sur |
| validation_attempts.government_id_validation.error_reason | string | null | optional | Motivo del error si la validación gubernamental falló. | document_not_valid |
| processes | object[] | required | Derechos que agrupa la solicitud, cada uno con su estado, su plazo y su responsable. | dsrp_ |
| processes.id | string | optional | Identificador único del proceso. Empieza con dsrp_ | dsrp_ |
| processes.kind | string | optional | Derecho que este proceso ejerce. | suppression |
| processes.derived | boolean | optional | true cuando Soyio creó el proceso para acompañar a otro derecho, y false cuando el titular lo pidió por su cuenta. Hoy solo el bloqueo llega derivado, y en ese caso vence en días hábiles en vez del plazo común. | true |
| processes.status | string | optional | Estado del proceso. | pending |
| processes.terminal_state | string | null | optional | Resultado del proceso una vez resuelto. | approved |
| processes.expires_at | date-time | optional | Plazo legal de este derecho. |  |
| processes.deadline_stage | string | optional | Etapa del plazo del proceso. | resolved |
| processes.deadline_days_left | integer | null | optional | Días calendario que restan del plazo del proceso, contados en hora de Chile: 0 si vence o venció hoy, negativo si venció un día anterior. Es null cuando el proceso está resuelto o su plazo aún no corre. | 0 |
| processes.resolved_at | date-time | optional | Fecha de resolución del proceso. |  |
| processes.assignee | object | required | Responsable de este derecho. | cusr_1B2M2Y8AsgTpgAmY7PhCfg |
| processes.assignee.id | string | required | Token único del usuario de compañía. | cusr_1B2M2Y8AsgTpgAmY7PhCfg |
| processes.assignee.email | email | required | Email del usuario de compañía. | dashboard.user@example.com |
| processes.assignee.name | string | required | Nombre del usuario de compañía. | Dashboard User |
| processes.assignee.created_at | date-time | required | Fecha y hora de creación del usuario. | 2024-03-20T15:30:00Z |
| processes.assignee.updated_at | date-time | required | Fecha y hora de última actualización del usuario. | 2024-03-20T15:30:00Z |
| processes.assignee.roles | object[] | required | Roles actualmente asignados al usuario. | role_1B2M2Y8AsgTpgAmY7PhCfg |
| processes.assignee.roles.id | string | required | Token del rol asignado. | role_1B2M2Y8AsgTpgAmY7PhCfg |
| processes.assignee.roles.name | string | required | Nombre del rol asignado. | editor |
| processes.assignee.permissions | DashboardPermission[] | required | Permisos efectivos del usuario, derivados de sus roles. | dashboard.read |
| processes.assignee.enabled_environments | CompanyUserEnvironment[] | required | Entornos del dashboard a los que puede acceder el usuario. | sandbox |
| processes.assignee.status | string | required | Estado de la invitación. Es pending mientras el usuario no haya aceptado la invitación, y active una vez que la aceptó y configuró su contraseña. | pending |
| processes.assignee.invitation_sent_at | date-time | required | Fecha y hora del último envío de invitación. Es null si nunca se envió una. | null |
| processes.assignee.invitation_accepted_at | date-time | required | Fecha y hora en que el usuario aceptó la invitación. Es null mientras siga pendiente. | null |
| processes.assignee.is_live_mode | boolean | required | Indica si la compañía del usuario tiene el modo productivo habilitado. | false |
| processes.created_at | date-time | optional |  |  |
| processes.updated_at | date-time | optional | Última vez que este derecho cambió. |  |
| workflow_run_id | string | optional | ID del workflow run asociado a la solicitud. | wfr_1B2M2Y8AsgTpgAmY7PhCfg |
| expires_at | date-time | optional | Fecha y hora de expiración de la solicitud. Cuando la solicitud incluye varios derechos, corresponde al vencimiento más próximo entre los que siguen abiertos, y se recalcula a medida que se resuelven. El bloqueo que acompaña a otro derecho vence en 2 días hábiles, antes que el resto; el que se pide por sí solo usa el plazo común en días corridos. | 2024-03-20T15:30:00Z |
| deadline_stage | string | optional | Etapa del plazo de la solicitud. | resolved |
| deadline_days_left | integer | null | optional | Días calendario que restan del plazo, contados en hora de Chile: 0 si vence o venció hoy, negativo si venció un día anterior. Es null cuando la solicitud está resuelta o su plazo aún no corre. | 0 |
| legal_deadline_met | boolean | null | optional | Indica si la solicitud se resolvió dentro de su plazo legal. Es null mientras la solicitud no esté resuelta o cuando no tiene plazo. | null |
| created_at | date-time | optional | Fecha y hora de creación de la solicitud. | 2024-03-20T15:30:00Z |
| updated_at | date-time | optional | Fecha y hora de la última actualización de la solicitud. | 2024-03-20T15:30:00Z |