Endpoints DPIA
Endpoints para gestionar Evaluaciones de Impacto en Proteccion de Datos (Data Protection Impact Assessment).
Todos los endpoints requieren autenticacion JWT. El tenant se determina automaticamente desde el token.
Listar evaluaciones
GET /api/v1/dpia/assessmentsQuery params:
| Param | Tipo | Descripcion |
|---|---|---|
page | number | Pagina (default: 1) |
limit | number | Registros por pagina (default: 20) |
status | string | Filtrar por estado: draft, in_review, approved, rejected |
Ejemplo:
curl -X GET "https://api.dpolab.com/api/v1/dpia/assessments?status=draft" \
-H "Authorization: Bearer {token}"Respuesta (200):
{
"success": true,
"data": {
"items": [
{
"id": "dpia_abc123",
"title": "EIPD - Sistema de videovigilancia",
"description": "Evaluacion del sistema de camaras en oficinas centrales",
"status": "draft",
"activityId": "act_xyz789",
"riskCount": 4,
"createdAt": "2026-02-01T10:00:00Z",
"updatedAt": "2026-02-20T16:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 8,
"totalPages": 1
}
}
}Crear evaluacion
POST /api/v1/dpia/assessmentsBody:
{
"title": "EIPD - Sistema de videovigilancia",
"description": "Evaluacion del impacto del sistema de camaras en oficinas centrales",
"activityId": "act_xyz789",
"scope": "Monitoreo de accesos en edificio corporativo, 24/7",
"necessity": "Seguridad fisica de empleados y activos de la empresa",
"proportionality": "Solo se captura video en areas comunes, no en oficinas privadas"
}Campos requeridos: title.
Respuesta (201):
{
"success": true,
"data": {
"id": "dpia_new456",
"title": "EIPD - Sistema de videovigilancia",
"status": "draft",
"createdAt": "2026-03-09T10:00:00Z"
}
}Obtener detalle de evaluacion
GET /api/v1/dpia/assessments/:idRetorna la evaluacion completa incluyendo todos los riesgos asociados.
curl -X GET https://api.dpolab.com/api/v1/dpia/assessments/dpia_abc123 \
-H "Authorization: Bearer {token}"Respuesta (200):
{
"success": true,
"data": {
"id": "dpia_abc123",
"title": "EIPD - Sistema de videovigilancia",
"description": "Evaluacion del sistema de camaras en oficinas centrales",
"status": "draft",
"activityId": "act_xyz789",
"scope": "Monitoreo de accesos en edificio corporativo, 24/7",
"necessity": "Seguridad fisica de empleados y activos de la empresa",
"proportionality": "Solo se captura video en areas comunes, no en oficinas privadas",
"approverName": null,
"approverRole": null,
"approvedAt": null,
"risks": [
{
"id": "risk_001",
"description": "Acceso no autorizado a grabaciones",
"likelihood": "medium",
"impact": "high",
"riskLevel": "high",
"mitigation": "Control de acceso basado en roles, cifrado de almacenamiento",
"residualRisk": "low",
"status": "mitigated"
},
{
"id": "risk_002",
"description": "Retencion excesiva de grabaciones",
"likelihood": "high",
"impact": "medium",
"riskLevel": "high",
"mitigation": "Politica de eliminacion automatica a los 30 dias",
"residualRisk": "low",
"status": "mitigated"
}
],
"createdAt": "2026-02-01T10:00:00Z",
"updatedAt": "2026-02-20T16:00:00Z"
}
}Actualizar evaluacion
PUT /api/v1/dpia/assessments/:idAcepta los mismos campos que la creacion. Solo envia los campos que quieras actualizar.
curl -X PUT https://api.dpolab.com/api/v1/dpia/assessments/dpia_abc123 \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"scope": "Monitoreo de accesos en edificio corporativo y estacionamientos",
"proportionality": "Video solo en areas comunes y estacionamientos, sin audio"
}'Solo se pueden editar evaluaciones en estado draft o rejected. Las evaluaciones en in_review o approved no pueden modificarse.
Enviar para revision
POST /api/v1/dpia/assessments/:id/submit-reviewCambia el estado de la evaluacion a in_review. Requiere que exista al menos un riesgo registrado.
curl -X POST https://api.dpolab.com/api/v1/dpia/assessments/dpia_abc123/submit-review \
-H "Authorization: Bearer {token}"Respuesta (200):
{
"success": true,
"data": {
"id": "dpia_abc123",
"status": "in_review"
}
}Aprobar evaluacion
POST /api/v1/dpia/assessments/:id/approveAprueba la evaluacion. Requiere que este en estado in_review.
Body:
{
"approverName": "Carlos Mendez",
"approverRole": "Delegado de Proteccion de Datos"
}Campos requeridos: approverName, approverRole.
curl -X POST https://api.dpolab.com/api/v1/dpia/assessments/dpia_abc123/approve \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"approverName": "Carlos Mendez",
"approverRole": "Delegado de Proteccion de Datos"
}'Respuesta (200):
{
"success": true,
"data": {
"id": "dpia_abc123",
"status": "approved",
"approverName": "Carlos Mendez",
"approverRole": "Delegado de Proteccion de Datos",
"approvedAt": "2026-03-09T11:00:00Z"
}
}Rechazar evaluacion
POST /api/v1/dpia/assessments/:id/rejectRechaza la evaluacion y la devuelve a estado editable. Requiere que este en estado in_review.
Body:
{
"reason": "Faltan medidas de mitigacion para los riesgos de alto impacto identificados."
}Campos requeridos: reason.
curl -X POST https://api.dpolab.com/api/v1/dpia/assessments/dpia_abc123/reject \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"reason": "Faltan medidas de mitigacion para los riesgos de alto impacto identificados."
}'Respuesta (200):
{
"success": true,
"data": {
"id": "dpia_abc123",
"status": "rejected",
"rejectionReason": "Faltan medidas de mitigacion para los riesgos de alto impacto identificados."
}
}Gestion de Riesgos
Cada evaluacion DPIA tiene una lista de riesgos asociados que deben ser identificados y mitigados.
Agregar riesgo
POST /api/v1/dpia/assessments/:id/risksBody:
{
"description": "Filtracion de datos biometricos por vulnerabilidad en el sistema",
"likelihood": "low",
"impact": "critical",
"mitigation": "Cifrado AES-256, segmentacion de red, auditorias trimestrales",
"residualRisk": "low"
}Campos requeridos: description, likelihood, impact.
Respuesta (201):
{
"success": true,
"data": {
"id": "risk_new003",
"description": "Filtracion de datos biometricos por vulnerabilidad en el sistema",
"likelihood": "low",
"impact": "critical",
"riskLevel": "high",
"mitigation": "Cifrado AES-256, segmentacion de red, auditorias trimestrales",
"residualRisk": "low",
"status": "mitigated"
}
}Actualizar riesgo
PUT /api/v1/dpia/assessments/:id/risks/:riskIdcurl -X PUT https://api.dpolab.com/api/v1/dpia/assessments/dpia_abc123/risks/risk_001 \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"mitigation": "Control de acceso basado en roles, cifrado AES-256, logs de acceso",
"residualRisk": "low",
"status": "mitigated"
}'Eliminar riesgo
DELETE /api/v1/dpia/assessments/:id/risks/:riskIdcurl -X DELETE https://api.dpolab.com/api/v1/dpia/assessments/dpia_abc123/risks/risk_003 \
-H "Authorization: Bearer {token}"Solo se pueden gestionar riesgos en evaluaciones con estado draft o rejected.
Valores de riesgo
Probabilidad (likelihood) e Impacto (impact):
| Valor | Descripcion |
|---|---|
low | Bajo |
medium | Medio |
high | Alto |
critical | Critico |
Nivel de riesgo (riskLevel): Se calcula automaticamente segun la combinacion de likelihood e impact.
Riesgo residual (residualRisk): Nivel de riesgo tras aplicar las medidas de mitigacion.
Estado (status):
| Valor | Descripcion |
|---|---|
identified | Riesgo identificado, sin mitigacion |
mitigated | Medidas de mitigacion aplicadas |
accepted | Riesgo aceptado sin mitigacion adicional |
Exportar evaluacion como PDF
GET /api/v1/dpia/assessments/:id/export/pdfGenera y descarga la evaluacion completa en formato PDF, incluyendo todos los riesgos y medidas de mitigacion.
curl -X GET https://api.dpolab.com/api/v1/dpia/assessments/dpia_abc123/export/pdf \
-H "Authorization: Bearer {token}" \
-o eipd_videovigilancia.pdfRetorna el archivo PDF directamente con Content-Type: application/pdf.
Screening de necesidad de DPIA
POST /api/v1/dpia/:activityId/screeningEvalua si una actividad de tratamiento (RAT) requiere una Evaluacion de Impacto segun los criterios de la Ley 21.719 y las directrices del GDPR.
curl -X POST https://api.dpolab.com/api/v1/dpia/act_xyz789/screening \
-H "Authorization: Bearer {token}"Respuesta (200):
{
"success": true,
"data": {
"activityId": "act_xyz789",
"requiresDpia": true,
"reasons": [
"Tratamiento de datos biometricos",
"Vigilancia sistematica de zona de acceso publico",
"Tratamiento a gran escala"
],
"recommendation": "Se recomienda realizar una Evaluacion de Impacto antes de iniciar el tratamiento."
}
}El screening analiza automaticamente las categorias de datos, la finalidad, los sujetos y la escala del tratamiento para determinar si se requiere EIPD segun el articulo 18 de la Ley 21.719.
Ver tambien
- Modulo DPIA — Guia funcional de Evaluaciones de Impacto