Generar Reportes
POST /cl/consent_manager/generate_report
Genera reportes personalizados de cumplimiento normativo RDC30, estadísticas y análisis.
URL Completa: https://api.floid.app/cl/consent_manager/generate_report
Headers Requeridos
Authorization: Bearer {{TOKEN}}
Content-Type: application/json
Parámetros Body (JSON)
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
caseId | string | Sí | ID único del caso para trazabilidad |
tipo_reporte | string | Sí | Tipo: RDC30, PERSONAS, INSTITUCIONES, ESTADISTICAS, COMPLIANCE |
formato | string | No | Formato: json, csv, excel (default: json) |
fecha_desde | string | Sí | Fecha inicio del reporte (YYYY-MM-DD) |
fecha_hasta | string | Sí | Fecha fin del reporte (YYYY-MM-DD) |
codigo_institucion | string | No | Filtrar por institución específica |
incluir_detalle | boolean | No | Incluir detalles granulares (default: false) |
Tipos de Reportes Disponibles
1. Reporte RDC30
Cumplimiento normativo para CMF según RDC30.
2. Reporte de Personas
Análisis por persona natural (RUT).
3. Reporte de Instituciones
Análisis por institución financiera.
4. Reporte de Estadísticas
Métricas y KPIs del sistema.
5. Reporte de Compliance
Auditoría de cumplimiento normativo.
Ejemplo de Solicitud - Reporte RDC30
curl --location 'https://api.floid.app/cl/consent_manager/generate_report' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{TOKEN}}' \
--data '{
"caseId": "CASE-001",
"tipo_reporte": "RDC30",
"formato": "json",
"fecha_desde": "2026-01-01",
"fecha_hasta": "2026-01-31",
"codigo_institucion": "001234567",
"incluir_detalle": true
}'
Respuesta Exitosa - Reporte RDC30 (200)
{
"code": "200",
"msg": "Report generated successfully",
"caseid": "CASE-001",
"data": {
"reporte": {
"tipo": "RDC30",
"formato": "json",
"periodo": {
"fecha_desde": "2026-01-01",
"fecha_hasta": "2026-01-31"
},
"institucion": {
"codigo": "001234567",
"nombre": "Banco Ejemplo"
},
"resumen": {
"total_consentimientos": 145,
"activos": 132,
"revocados": 10,
"expirados": 3,
"finalidad_comercial": 58,
"finalidad_crediticia": 87,
"medio_electronico": 120,
"medio_verbal": 15,
"medio_escrito": 10
},
"cumplimiento": {
"consentimientos_con_archivo": 145,
"porcentaje_con_archivo": 100.0,
"consentimientos_con_fingerprint": 120,
"porcentaje_con_fingerprint": 82.8,
"tiempo_promedio_respuesta_ms": 234,
"sin_anomalias": true
},
"por_objetivo": [
{
"objetivo": "01",
"descripcion": "Evaluación crediticia inicial",
"cantidad": 45,
"porcentaje": 31.0
},
{
"objetivo": "02",
"descripcion": "Seguimiento de obligaciones vigentes",
"cantidad": 42,
"porcentaje": 29.0
}
],
"timeline_mensual": [
{
"periodo": "2026-01",
"creados": 145,
"revocados": 10,
"tasa_revocacion": 6.9
}
],
"detalle": [
{
"consent_token": "a9a628a1-b4ac-4ab2-b4d0-954f91239d60",
"person_rut": "12345678-9",
"finalidad": 2,
"objetivo": "01",
"medio": 1,
"estado": "ACTIVE",
"fecha_otorgamiento": "2026-01-12",
"fecha_expiracion": "2027-01-12",
"archivo_adjunto": true,
"accesos_realizados": 5
}
]
},
"metadata": {
"generado_en": "2026-01-12 19:00:00",
"generado_por": "API_USER",
"tiempo_procesamiento_ms": 567,
"registros_procesados": 145
}
}
}
Ejemplo de Solicitud - Reporte de Estadísticas
curl --location 'https://api.floid.app/cl/consent_manager/generate_report' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{TOKEN}}' \
--data '{
"caseId": "CASE-001",
"tipo_reporte": "ESTADISTICAS",
"formato": "excel",
"fecha_desde": "2026-01-01",
"fecha_hasta": "2026-01-31"
}'
Respuesta Exitosa - Formato Excel (200)
Headers de respuesta:
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Disposition: attachment; filename="reporte_estadisticas_20260112_190000.xlsx"
El archivo Excel descargado contiene múltiples hojas:
- Resumen Ejecutivo: KPIs principales
- Por Institución: Desglose por entidad financiera
- Por Finalidad: Comercial vs Crediticio
- Por Medio: Electrónico, Verbal, Escrito
- Timeline: Serie temporal de consentimientos
Posibles Errores
| Error Code | HTTP | Descripción |
|---|---|---|
INVALID_REQUEST | 400 | Tipo de reporte no válido |
INVALID_REQUEST | 400 | Formato no soportado |
INVALID_REQUEST | 400 | Rango de fechas inválido |
INVALID_REQUEST | 400 | Rango de fechas excede 1 año |
NOT_FOUND | 404 | No hay datos para generar reporte |
INTERNAL_ERROR | 400 | Error al generar reporte |
Códigos de Error
Formato Estándar de Errores
Todos los endpoints devuelven errores en el siguiente formato:
{
"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 específicos]",
"caseid": "CASE-001"
}
Tabla de Códigos de Error Comunes
| HTTP | Error Type | Error Code | Causa |
|---|---|---|---|
| 400 | API_ERROR | INVALID_REQUEST | Falta un campo obligatorio |
| 400 | API_ERROR | INVALID_REQUEST | Formato de parámetro inválido |
| 400 | API_ERROR | INVALID_REQUEST | Método HTTP no permitido |
| 400 | INVALID_ID | RUT_NO_VALIDO | RUT no tiene formato válido chileno |
| 400 | VALIDATION_ERROR | DUPLICATE_ID | Custom ID ya existe en el sistema |
| 400 | VALIDATION_ERROR | INVALID_DATE_RANGE | Rango de fechas inválido |
| 400 | FILE_ERROR | FILE_TOO_LARGE | Archivo supera 8MB |
| 400 | FILE_ERROR | INVALID_FILE_TYPE | Tipo de archivo no permitido |
| 401 | AUTH_ERROR | UNAUTHORIZED | Token de autenticación inválido o expirado |
| 403 | AUTH_ERROR | FORBIDDEN | Sin permisos para realizar la operación |
| 404 | NOT_FOUND | CONSENT_NOT_FOUND | Consentimiento no existe |
| 404 | NOT_FOUND | NO_RECORDS | No hay registros para los filtros aplicados |
| 429 | RATE_LIMIT | TOO_MANY_REQUESTS | Exceso de requests en ventana de tiempo |
| 400 | INTERNAL_ERROR | INTERNAL_ERROR | Error interno del servidor |
| 400 | INTERNAL_ERROR | DATABASE_ERROR | Error de conexión a base de datos |
| 400 | API_ERROR | INVALID_REPORT_TYPE | Tipo de reporte no existe |
| 400 | API_ERROR | INVALID_FORMAT | Formato no soportado |
| 400 | API_ERROR | DATE_RANGE_TOO_LARGE | Rango de fechas excede 1 año |
| 400 | API_ERROR | NO_DATA | No hay datos para generar reporte |
Updated about 8 hours ago
