Api de Consultar Consentimiento
POST /detail
Obtiene los detalles completos de un consentimiento existente, incluyendo historial de auditoría
Parámetros de Entrada
Soporta múltiples formatos de entrada:
Formato 1: Directo con consent_token
{
"consent_token": "a9a628a1-b4ac-4ab2-b4d0-954f91239d60"
}
Formato 2: Directo con custom_id
{
"custom_id": "CONSENT-2024-001"
}
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
consent_token | string | Sí* | UUID del consentimiento (obtenido al crear el consentimiento) |
custom_id | string | Sí* | ID externo único (alternativa a consent_token) |
* Se requiere consent_token O custom_id (no ambos).
Ejemplo de Solicitud
curl --location '{{HOST}}/cl/consent_manager/detail' --header 'Authorization: Bearer {{TOKEN}}' --data '{
"consent_token": "a9a628a1-b4ac-4ab2-b4d0-954f91239d60"
}'
Respuesta Exitosa
{
"code": "200",
"msg": "OK",
"caseid": "a9a628a1-b4ac-4ab2-b4d0-954f91239d60",
"data": {
"item_data": {
"id": 123,
"consent_token": "a9a628a1-b4ac-4ab2-b4d0-954f91239d60",
"codigo_institucion": "001234567",
"codigo_interno_consentimiento": "C2511201752588870878",
"timestamp_otorgamiento_fecha": "20251120",
"timestamp_otorgamiento_hora": "175258",
"timestamp_expiracion_fecha": "20261120",
"timestamp_expiracion_hora": "175258",
"person_rut": "12345678-9",
"medio": 1,
"finalidad": 2,
"objetivo": "02",
"person_email": "[email protected]",
"person_cellphone": null,
"person_name": "Juan Pérez González",
"rut_empresa": "76123456-7",
"rut_ejecutivo": "11223344-5",
"current_state": "ACTIVE",
"timestamp_revocacion_fecha": null,
"timestamp_revocacion_hora": null,
"timestamp_carga": "2025-11-20 17:52:58",
"uploaded_by": "API",
"created_by": "API",
"last_updated_at": "2025-11-20 17:52:58",
"last_updated_by": "API",
"id_externo": "CONSENT-2024-001",
"ip": "172.19.0.7",
"navegador": "Mozilla/5.0...",
"meta_attachment": "https://storage.googleapis.com/bucket/path/to/file.pdf?...",
"metadata_json": null,
"fingerprint_hash": null
}
},
"audit_log": [
{
"consent_token": "a9a628a1-b4ac-4ab2-b4d0-954f91239d60",
"accion": "CREATED",
"estado_anterior": null,
"estado_nuevo": "ACTIVE",
"modificado_por_tipo": "API",
"modificado_por_id": "consent_api",
"ip_origen": "172.19.0.7",
"user_agent": "Mozilla/5.0...",
"api_endpoint": "/api/consent.php",
"metodo_http": "POST",
"timestamp_cambio": "2025-11-20 17:52:58",
"timestamp_servidor": "2025-11-20 17:52:58"
}
]
}
Estructura de Respuesta
Objeto data.item_data
data.item_dataContiene todos los campos del consentimiento almacenados en la base de datos.
Array audit_log
audit_logHistorial completo de cambios del consentimiento, ordenado por fecha (más reciente primero).
| Campo | Tipo | Descripción |
|---|---|---|
accion | string | Tipo de acción: CREATED, UPDATED, REVOKED |
estado_anterior | string | Estado antes del cambio |
estado_nuevo | string | Estado después del cambio |
modificado_por_tipo | string | Origen: API, WEB, ADMIN, SYSTEM |
modificado_por_id | string | ID del usuario/sistema que realizó el cambio |
ip_origen | string | IP desde donde se realizó el cambio |
timestamp_cambio | string | Fecha y hora del cambio (zona horaria del servidor) |
Códigos de Error
Formato Estándar de Errores
Todos los errores siguen el formato estándar de la compañía:
{
"code": 400,
"error_type": "API_ERROR",
"error_code": "INVALID_REQUEST",
"error_message": "The request is not valid. Check the body and headers and try again.",
"display_message": "La request no es válida. Revisa el body y headers e intenta nuevamente. [detalles del error]",
"caseid": ""
}
Errores Comunes
| Código HTTP | Error Code | Error Type | Causa |
|---|---|---|---|
| 400 | INVALID_REQUEST | API_ERROR | Falta un campo obligatorio |
| 400 | RUT_NO_VALIDO | INVALID_ID | RUT no tiene formato válido |
| 400 | INVALID_REQUEST | API_ERROR | Código debe ser exactamente 9 dígitos |
| 400 | INVALID_REQUEST | API_ERROR | Finalidad debe ser 1 o 2 |
| 400 | INVALID_REQUEST | API_ERROR | Medio debe ser 1, 2 o 3 |
| 400 | INVALID_REQUEST | API_ERROR | Objetivo debe estar entre 01 y 07 |
| 400 | INVALID_REQUEST | API_ERROR | El custom_id ya existe en el sistema |
| 400 | INVALID_REQUEST | API_ERROR | Email no tiene formato válido |
| 400 | INVALID_REQUEST | API_ERROR | Archivo supera 8MB |
| 400 | INVALID_REQUEST | API_ERROR | Tipo de archivo no permitido para el medio |
| 404 | NOT_FOUND | NOT_FOUND_ERROR | No existe consentimiento con ese token/ID |
| 400 | INVALID_REQUEST | API_ERROR | Se intentó usar GET u otro método no permitido |
| 401 | Unauthorized | AUTH_ERROR | Token de autenticación inválido o expirado |
| 400 | INTERNAL_ERROR | INTERNAL_ERROR | Error de conexión a base de datos |
Consideraciones de Implementación
Seguridad
- Autenticación obligatoria: Todas las requests requieren token Bearer válido.
- Auditoría completa: Cada operación se registra con IP, User-Agent y timestamp.
- URLs firmadas: Los archivos se almacenan en GCS con URLs firmadas (válidas 10 años).
- Validación estricta: Todos los campos se validan según normativa RDC30.
Duración de Consentimientos
- Vigencia por defecto: 1 año desde la fecha de otorgamiento
- Extensión: Configurable según requerimientos de la institución
- Expiración automática: El sistema marca como
EXPIREDal vencer el plazo
Fingerprinting del Navegador
Para consentimientos otorgados vía web, el sistema puede procesar y almacenar el fingerprint del navegador:
- Captura: Canvas, WebGL, fuentes, plugins, resolución, timezone
- Hash único: SHA-256 del fingerprint procesado
- Uso: Verificación de identidad y detección de fraude
Límites y Restricciones
- Tamaño máximo de archivo: 8MB
- Formatos soportados: Ver tabla según medio
- Tiempo máximo de respuesta: 30 segundos
- Rate limiting: Configurado por institución
Casos de Uso
Caso 1: Consulta de Consentimiento Existente
{
"custom_id": "LOAN-REQUEST-2024-12345"
}
Flujo de Integración
Paso 1: Autenticación
Obtener token Bearer
Paso 2: Crear Consentimiento
Enviar los datos vía /consent.
Paso 3: Almacenar Tokens
Guardar consent_token y/o custom_id.
Paso 4: Verificar Consentimiento
Consultar /detail antes de usarlo.
Paso 5: Usar Consentimiento
Pasar consent_token como evidencia al consultar datos crediticios.
Recomendaciones de Integración
- Validar localmente: RUT, email, teléfono.
- Usar custom_id: Facilita correlación interna.
- Verificar vigencia: Antes de cada uso.
- Retry: Backoff exponencial para errores 500.
- Capturar fingerprint: Útil para web.
Soporte Técnico
Para soporte, proporcionar:
consent_tokenocustom_id- Timestamp
- Request completo (sin credenciales sensibles)
- Response recibida
- Logs de la aplicación cliente
Changelog
v1.0 (Noviembre 2025)
- Versión inicial del sistema
- Implementación completa de normativa
- Endpoints
/consenty/detail - Auditoría completa
- Soporte de archivos
- Generación UUID automática
- Validaciones estrictas
Documentación actualizada: Noviembre 2025
Versión API: 1.0
Sistema: Gestión de Consentimientos RDC30
Normativa: CMF RDC30 - Chile
Updated about 19 hours ago
