Endpoints DSAR
Endpoints para gestionar solicitudes de derechos ARCO (Data Subject Access Requests) en DPOLab.
Todos los endpoints bajo /api/v1/dsar/ requieren autenticacion JWT. Los endpoints bajo /api/v1/public/dsar/ son publicos (no requieren autenticacion).
Crear solicitud (publico)
Este endpoint es utilizado por el SDK DSAR. No requiere autenticacion pero si un widgetKey valido.
POST /api/v1/public/dsar/:widgetKeycurl -X POST https://api.dpolab.com/api/v1/public/dsar/wk_abc123 \
-H "Content-Type: application/json" \
-d '{
"subjectName": "Juan Perez",
"subjectEmail": "[email protected]",
"subjectRut": "12345678-9",
"subjectPhone": "+56912345678",
"rightType": "ACCESS",
"description": "Solicito acceso a todos mis datos personales almacenados."
}'Campos requeridos: subjectName, subjectEmail, rightType.
Campos opcionales: subjectRut, subjectPhone, description, documentType, documentNumber, organizationRelation, isRepresentative, representativeName, representativeRut, representativeRelation, representativeDocUrl, subtype, subtypeDetail, specificData, portabilityTarget, portabilityFormat, portabilityDirectTransfer, declarationTruthful, declarationDataProcessing, declarationPhoneContact.
Si se incluye el campo subjectRut, se valida con el algoritmo modulo 11. Un RUT invalido retorna error INVALID_RUT.
Respuesta (201):
{
"success": true,
"data": {
"id": "uuid-abc123",
"folioNumber": "ARCO-2026-00001",
"responseDeadline": "2026-04-08T14:00:00.000Z"
}
}El campo responseDeadline se calcula automaticamente sumando 30 dias corridos a la fecha de creacion, con posibilidad de extension por otros 30 dias (Art. 11 Ley 21.719).
Seguimiento publico por folio
Permite al titular consultar el estado de su solicitud usando el numero de folio. No requiere autenticacion.
GET /api/v1/public/dsar/track/:foliocurl -X GET https://api.dpolab.com/api/v1/public/dsar/track/ARCO-2026-00001Respuesta (200):
{
"success": true,
"data": {
"folio": "ARCO-2026-00001",
"responsibleEntity": "Empresa Demo SpA",
"rightType": "Acceso a datos personales",
"status": "IN_PROGRESS",
"statusLabel": "En proceso",
"statusDescription": "Su solicitud esta siendo procesada por nuestro equipo de proteccion de datos.",
"receivedAt": "2026-03-07T14:00:00Z",
"responseDeadline": "2026-04-06T14:00:00Z",
"isExtended": false,
"extensionReason": null,
"responseType": null,
"completedAt": null,
"dpoName": "Maria Garcia",
"dpoEmail": "[email protected]"
}
}El folio debe tener formato ARCO-YYYY-NNNNN. Formatos invalidos retornan error INVALID_FOLIO.
Listar solicitudes
GET /api/v1/dsar/requestsQuery params:
| Param | Tipo | Descripcion |
|---|---|---|
page | number | Pagina (default: 1) |
limit | number | Registros por pagina (default: 20, max: 100) |
status | string | RECEIVED, VERIFYING, IN_PROGRESS, EXTENDED, COMPLETED, REJECTED |
rightType | string | ACCESS, RECTIFICATION, DELETION, OPPOSITION, PORTABILITY, BLOCKING, AUTO_DECISION |
curl -X GET "https://api.dpolab.com/api/v1/dsar/requests?status=RECEIVED&rightType=ACCESS" \
-H "Authorization: Bearer {token}"Respuesta (200):
{
"success": true,
"data": {
"items": [
{
"id": "uuid-abc123",
"folioNumber": "ARCO-2026-00001",
"rightType": "ACCESS",
"subjectName": "Juan Perez",
"subjectEmail": "[email protected]",
"status": "RECEIVED",
"deadlineAt": "2026-04-06T14:00:00Z",
"createdAt": "2026-03-07T14:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 3,
"totalPages": 1
}
}
}Obtener solicitud
Retorna el detalle completo de una solicitud, incluyendo eventos y timeline.
GET /api/v1/dsar/requests/:idcurl -X GET https://api.dpolab.com/api/v1/dsar/requests/uuid-abc123 \
-H "Authorization: Bearer {token}"Actualizar estado
PATCH /api/v1/dsar/requests/:idBody:
{
"status": "IN_PROGRESS",
"notes": "Recopilando datos de los sistemas involucrados."
}curl -X PATCH https://api.dpolab.com/api/v1/dsar/requests/uuid-abc123 \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"status": "IN_PROGRESS",
"notes": "Recopilando datos de los sistemas involucrados."
}'Estados posibles
| Estado | Descripcion |
|---|---|
RECEIVED | Solicitud recibida |
VERIFYING | Verificando identidad del titular |
IN_PROGRESS | En proceso de atencion |
EXTENDED | Plazo extendido (Art. 11) |
COMPLETED | Resuelta |
REJECTED | Rechazada |
No se puede pasar de COMPLETED o REJECTED a otro estado. Las transiciones de estado son registradas automaticamente en el timeline.
Asignar solicitud
Asigna un responsable a la solicitud. Si el estado actual es RECEIVED o VERIFYING, cambia automaticamente a IN_PROGRESS.
POST /api/v1/dsar/requests/:id/assignBody:
{
"assignedTo": "user-id-123"
}curl -X POST https://api.dpolab.com/api/v1/dsar/requests/uuid-abc123/assign \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"assignedTo": "user-id-123"
}'Extender plazo
Extiende el plazo de respuesta por otros 30 dias corridos (Art. 11 inc. 2 Ley 21.719). Solo se permite una extension por solicitud.
POST /api/v1/dsar/requests/:id/extendBody:
{
"reason": "Se requiere recopilar informacion de multiples sistemas externos para completar la solicitud."
}curl -X POST https://api.dpolab.com/api/v1/dsar/requests/uuid-abc123/extend \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"reason": "Se requiere recopilar informacion de multiples sistemas externos para completar la solicitud."
}'Respuesta (200):
{
"success": true,
"data": {
"id": "uuid-abc123",
"extendedDeadlineAt": "2026-05-06T14:00:00Z",
"extensionReason": "Se requiere recopilar informacion...",
"extensionNotifiedAt": "2026-03-20T10:00:00Z",
"status": "EXTENDED"
}
}Solo se permite una extension por solicitud. Si ya fue extendida, retorna error ALREADY_EXTENDED. Se envia email automatico al titular notificando la extension.
Responder solicitud
Registra la respuesta final a la solicitud (aprobacion o rechazo).
POST /api/v1/dsar/requests/:id/respondBody:
{
"responseType": "FULFILLED",
"responseNotes": "Se adjunta el reporte con todos los datos personales del titular.",
"responseFileKey": "file_report_001",
"denialReason": null
}curl -X POST https://api.dpolab.com/api/v1/dsar/requests/uuid-abc123/respond \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"responseType": "FULFILLED",
"responseNotes": "Se adjunta el reporte con todos los datos personales del titular.",
"responseFileKey": "file_report_001"
}'Tipos de respuesta (responseType)
| Valor | Descripcion | Estado final |
|---|---|---|
FULFILLED | Solicitud atendida completamente | COMPLETED |
PARTIALLY_FULFILLED | Solicitud atendida parcialmente | COMPLETED |
REJECTED_IDENTITY | Rechazada por verificacion de identidad | REJECTED |
REJECTED_LEGAL | Rechazada por causa legal | REJECTED |
EXTENDED | Plazo extendido | - |
Notificar a terceros
Registra que se notifico a terceros (encargados/cesionarios) sobre la rectificacion o supresion de datos, segun Art. 6 y 7 de la Ley 21.719.
POST /api/v1/dsar/requests/:id/notify-thirdsBody:
{
"notes": "Se notifico a los proveedores X e Y sobre la supresion de datos."
}curl -X POST https://api.dpolab.com/api/v1/dsar/requests/uuid-abc123/notify-thirds \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"notes": "Se notifico a los proveedores X e Y sobre la supresion de datos."
}'Solo aplica para solicitudes de tipo RECTIFICATION o DELETION. Retorna error INVALID_RIGHT_TYPE para otros tipos. Si ya fueron notificados, retorna error ALREADY_NOTIFIED.
Timeline de eventos
Retorna la lista de eventos asociados a una solicitud.
GET /api/v1/dsar/requests/:id/timelinecurl -X GET https://api.dpolab.com/api/v1/dsar/requests/uuid-abc123/timeline \
-H "Authorization: Bearer {token}"Estadisticas
Retorna estadisticas generales de las solicitudes DSAR del tenant.
GET /api/v1/dsar/statscurl -X GET https://api.dpolab.com/api/v1/dsar/stats \
-H "Authorization: Bearer {token}"Widgets
Listar widgets
GET /api/v1/dsar/widgetscurl -X GET https://api.dpolab.com/api/v1/dsar/widgets \
-H "Authorization: Bearer {token}"Respuesta (200):
{
"success": true,
"data": {
"widgets": [
{
"id": "uuid-widget-1",
"widgetKey": "wk_abc123",
"name": "Formulario principal",
"isActive": true,
"config": {},
"createdAt": "2026-03-01T10:00:00Z",
"updatedAt": "2026-03-01T10:00:00Z"
}
]
}
}Crear widget
POST /api/v1/dsar/widgetsBody:
{
"name": "Formulario principal",
"config": {}
}curl -X POST https://api.dpolab.com/api/v1/dsar/widgets \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "Formulario principal",
"config": {}
}'Tipos de derecho (rightType)
| Valor | Descripcion |
|---|---|
ACCESS | Derecho de acceso (Art. 5) |
RECTIFICATION | Derecho de rectificacion (Art. 6) |
DELETION | Derecho de supresion (Art. 7) |
OPPOSITION | Derecho de oposicion (Art. 8) |
PORTABILITY | Derecho de portabilidad (Art. 9) |
BLOCKING | Derecho de bloqueo |
AUTO_DECISION | Oposicion a decisiones automatizadas |
Para mas informacion sobre la integracion con el SDK, consulta la documentacion del SDK DSAR. Para configurar el centro de privacidad, consulta el modulo Centro de Privacidad.
Ver tambien
- Modulo ARSOP — Guia funcional del modulo de derechos de titulares
- SDK DSAR — Widget de solicitudes de derechos embebido
- Centro de Privacidad — Portal publico para titulares