Derechos ARCO
La Ley 21.719 reconoce a los titulares los derechos de acceso, rectificación, supresión, oposición, portabilidad y bloqueo. Como encargado de tratamiento, tu plataforma puede recibir estos requerimientos directamente — un apoderado que escribe a tu soporte pidiendo que borren los datos de su hijo — y esta familia de endpoints te permite registrarlos en Edugoverna, publicar tu propio portal de derechos y cerrar los casos con su respuesta formal.
Todas las rutas de esta página cuelgan de la URL base
https://app.edugoverna.com/api/partner/v1/organizations/:organizationId. Los
cambios de estado de los casos llegan también como webhooks
rights_request.* (created, updated, closed, document.added,
export_ready). El flujo completo, incluidos los plazos legales, está en la
guía de flujo ARCO.
El modelo de solicitud de derechos
Una solicitud (rightsRequest) tiene un requestType (uno de los seis derechos), uno o más titulares vinculados, y un plazo legal dueAt que Edugoverna calcula al crearla: los días hábiles configurados en el portal ARCO propio de la organización (la regla por tipo de derecho si existe; si no, su defaultSlaDays; por defecto 15), contados desde la presentación y anclados al fin del día en horario de Santiago. El defaultSlaDays de tu portal de partner no altera este plazo. Una prórroga formal (única, de hasta 15 días hábiles adicionales) queda en extendedDueAt.
El ciclo de vida de status es: submitted → in_progress | processing → ready_to_close → completed | denied (failed señala un error de conector pendiente de triaje). Cada caso recibe además un folio legible (portalTrackingCode) con el que el solicitante puede seguir su estado.
El paquete que devuelven las lecturas incluye las colecciones asociadas al caso: subjects (titulares vinculados), actions (acciones de cumplimiento), exports, documents, messages, closures, restrictions (bloqueos activos) y anonymizationJobs.
Obtener el portal ARCO
Devuelve la configuración del portal de derechos propio de tu cuenta de partner sobre esta organización, o null si aún no lo has creado. Cada partner ve y administra únicamente su propio portal; el del sostenedor y los de otros encargados no son visibles desde esta ruta.
Permiso requerido: partner.arco_portals.read · Alcance de conexión: arco_portals:read.
Request
curl https://app.edugoverna.com/api/partner/v1/organizations/org_2f7a/arco/portal \
-H "Authorization: Bearer {keyId}.{secret}"
Response
{
"arcoPortal": {
"id": "ap_4c8e",
"organizationId": "org_2f7a",
"ownerType": "partner",
"slug": "milectura-derechos",
"enabled": true,
"ownerDisplayName": "Mi Lectura SpA",
"primaryColor": "#0F4C81",
"heroVariant": "dark",
"dpoName": "María Fernández",
"dpoEmail": "privacidad@milectura.cl",
"sostenedor": null,
"policyUrl": "https://milectura.cl/privacidad",
"policyVersion": "2.1",
"policyDate": "2026-06-01",
"privacyContactEmail": "privacidad@milectura.cl",
"arcopEnabled": true,
"supportedExportFormats": ["json", "csv", "pdf", "xml"],
"defaultSlaDays": 15,
"portalIntroText": null,
"requestTypeConfig": {
// configuración por tipo de derecho
}
}
}
Crear o actualizar el portal ARCO
Crea (201) o actualiza (200) el portal de derechos de tu cuenta de partner sobre esta organización. El portal queda publicado en la URL pública /arco/portal/{slug}.
Permiso requerido: partner.arco_portals.write · Alcance de conexión: arco_portals:write.
El slug es globalmente único: si otro portal ya lo usa, la llamada responde 409 ARCO_PORTAL_SLUG_CONFLICT. La escritura emite el evento de auditoría arco_portal.config.updated en la organización, con tu cuenta de partner como actor.
Atributos requeridos
- Nombre
slug- Tipo
- string
- Descripción
Identificador de la URL pública (3–80 caracteres, minúsculas, dígitos y guiones; no puede empezar ni terminar con guion).
Atributos opcionales
- Nombre
enabled- Tipo
- boolean
- Descripción
Si el portal está activo. Por defecto
true.
- Nombre
ownerDisplayName- Tipo
- string
- Descripción
Nombre visible del responsable del portal.
- Nombre
primaryColor- Tipo
- string
- Descripción
Color principal del portal.
- Nombre
heroVariant- Tipo
- string
- Descripción
Variante visual de la cabecera. Por defecto
"dark".
- Nombre
dpoName- Tipo
- string
- Descripción
Nombre del delegado de protección de datos.
- Nombre
dpoEmail- Tipo
- string
- Descripción
Email del delegado de protección de datos.
- Nombre
sostenedor- Tipo
- string
- Descripción
Nombre del sostenedor, si corresponde mostrarlo.
- Nombre
policyUrl- Tipo
- string
- Descripción
URL de la política de privacidad. Enviar
nullla elimina.
- Nombre
policyVersion- Tipo
- string
- Descripción
Versión de la política publicada.
- Nombre
policyDate- Tipo
- string
- Descripción
Fecha de la política publicada.
- Nombre
privacyContactEmail- Tipo
- string
- Descripción
Email de contacto de privacidad.
- Nombre
arcopEnabled- Tipo
- boolean
- Descripción
Habilita el formulario de solicitudes del portal.
- Nombre
supportedExportFormats- Tipo
- array
- Descripción
Formatos de exportación ofrecidos: subconjunto de
json,csv,pdf,xml. Por defecto, los cuatro.
- Nombre
defaultSlaDays- Tipo
- integer
- Descripción
Plazo de respuesta en días hábiles (1–20). Por defecto 15.
- Nombre
portalIntroText- Tipo
- string
- Descripción
Texto introductorio del portal (máx. 2000).
- Nombre
metadata- Tipo
- object
- Descripción
Objeto libre; se fusiona con el existente.
Request
curl -X PUT https://app.edugoverna.com/api/partner/v1/organizations/org_2f7a/arco/portal \
-H "Authorization: Bearer {keyId}.{secret}" \
-H "Content-Type: application/json" \
-d '{
"slug": "milectura-derechos",
"ownerDisplayName": "Mi Lectura SpA",
"dpoEmail": "privacidad@milectura.cl",
"defaultSlaDays": 15
}'
Response
{
"arcoPortal": {
"id": "ap_4c8e",
"ownerType": "partner",
"slug": "milectura-derechos",
"enabled": true,
"ownerDisplayName": "Mi Lectura SpA",
"dpoEmail": "privacidad@milectura.cl",
"defaultSlaDays": 15
// ...
}
}
Listar solicitudes de derechos
Devuelve una página de solicitudes de derechos de la organización, de la más reciente a la más antigua, cada una con su paquete completo.
Permiso requerido: partner.rights_requests.read · Alcance de conexión: rights_requests:read.
Parámetros de consulta opcionales
- Nombre
status- Tipo
- string
- Descripción
Filtra por estado (
submitted,in_progress,processing,ready_to_close,completed,denied,failed).
- Nombre
requestType- Tipo
- string
- Descripción
Filtra por derecho (
access,rectification,suppression,opposition,portability,blocking).
- Nombre
limit- Tipo
- integer
- Descripción
Tamaño de página, entre 1 y 200.
- Nombre
cursor- Tipo
- string
- Descripción
Cursor de la página anterior (
nextCursor). Ver Paginación.
Request
curl -G https://app.edugoverna.com/api/partner/v1/organizations/org_2f7a/arco/requests \
-H "Authorization: Bearer {keyId}.{secret}" \
-d status=in_progress \
-d limit=50
Response
{
"rightsRequests": [
{
"id": "rr_9d3f",
"requestType": "suppression",
"requestChannel": "partner_api",
"status": "in_progress",
"summary": "Apoderada solicita eliminar los datos de su hija.",
"submittedAt": "2026-08-18T13:20:00.000Z",
"dueAt": "2026-09-09T02:59:59.999Z",
"extendedDueAt": null,
"closedAt": null,
"portalTrackingCode": "ARCO-2026-0031-M3QK7D",
"subjects": [
{
"subjectId": "9c1f6d1e-1c9d-4f6a-9a44-1f2ab5c0d9e1",
"subjectSummary": { "displayName": "Martina Rojas Pino" }
}
],
"actions": [],
"exports": [],
"documents": [],
"messages": [],
"closures": [],
"restrictions": [],
"anonymizationJobs": []
// ...
}
],
"totalMatchedCount": 4,
"nextCursor": null
}
Crear una solicitud de derechos
Registra una solicitud de derechos recibida por tu canal y la vincula a uno o más titulares del padrón. Responde 201 con el paquete del caso, ya con su dueAt calculado y su folio, y emite el webhook rights_request.created.
Permiso requerido: partner.rights_requests.write · Alcance de conexión: rights_requests:write.
Un caso de supresión siembra los trabajos de anonimización en estado de espera de aprobación: la redacción irreversible sólo se ejecuta cuando un revisor humano de la organización la aprueba (control a cuatro ojos), nunca por el solo registro del caso.
Si algún subjectId no pertenece a la organización, la llamada completa falla con 404 RIGHTS_REQUEST_SUBJECT_NOT_FOUND.
Atributos requeridos
- Nombre
requestType- Tipo
- string
- Descripción
Derecho ejercido:
access,rectification,suppression,opposition,portabilityoblocking.
- Nombre
subjectIds- Tipo
- array
- Descripción
IDs de los titulares afectados (UUID), entre 1 y 200.
Atributos opcionales
- Nombre
requestChannel- Tipo
- string
- Descripción
Canal de recepción. Por defecto
"partner_api".
- Nombre
requesterSubjectId- Tipo
- string
- Descripción
Titular que presenta la solicitud (por ejemplo, el apoderado), si es un titular del padrón.
- Nombre
requesterUserId- Tipo
- string
- Descripción
Usuario interno que la presenta, si aplica.
- Nombre
summary- Tipo
- string
- Descripción
Resumen del requerimiento (máx. 2000).
- Nombre
legalBasis- Tipo
- string
- Descripción
Base legal invocada (máx. 255).
Request
curl https://app.edugoverna.com/api/partner/v1/organizations/org_2f7a/arco/requests \
-H "Authorization: Bearer {keyId}.{secret}" \
-H "Content-Type: application/json" \
-d '{
"requestType": "suppression",
"subjectIds": ["9c1f6d1e-1c9d-4f6a-9a44-1f2ab5c0d9e1"],
"requesterSubjectId": "5d2a8c3b-77e1-4b0e-9f1d-3c4e5f6a7b8c",
"summary": "Apoderada solicita eliminar los datos de su hija."
}'
Response
{
"id": "rr_9d3f",
"requestType": "suppression",
"requestChannel": "partner_api",
"status": "submitted",
"submittedAt": "2026-08-25T12:30:00.000Z",
"dueAt": "2026-09-16T02:59:59.999Z",
"portalTrackingCode": "ARCO-2026-0031-M3QK7D",
"requesterSubjectId": "5d2a8c3b-77e1-4b0e-9f1d-3c4e5f6a7b8c",
"subjects": [
{
"subjectId": "9c1f6d1e-1c9d-4f6a-9a44-1f2ab5c0d9e1",
"subjectSummary": { "displayName": "Martina Rojas Pino" }
}
],
"actions": [
{
"actionType": "anonymize_subject",
"status": "pending"
}
],
"restrictions": [],
"anonymizationJobs": [
{
"status": "awaiting_approval",
"subjectId": "9c1f6d1e-1c9d-4f6a-9a44-1f2ab5c0d9e1"
}
]
// ...
}
Obtener una solicitud de derechos
Devuelve el paquete completo de un caso, incluidas sus acciones, documentos, mensajes, cierres, bloqueos y trabajos de anonimización. Si el caso no existe en la organización, responde 404 RIGHTS_REQUEST_NOT_FOUND.
Permiso requerido: partner.rights_requests.read · Alcance de conexión: rights_requests:read.
Request
curl https://app.edugoverna.com/api/partner/v1/organizations/org_2f7a/arco/requests/rr_9d3f \
-H "Authorization: Bearer {keyId}.{secret}"
Response
{
"id": "rr_9d3f",
"requestType": "suppression",
"status": "in_progress",
"submittedAt": "2026-08-18T13:20:00.000Z",
"dueAt": "2026-09-09T02:59:59.999Z",
"portalTrackingCode": "ARCO-2026-0031-M3QK7D",
"subjects": [ { "subjectId": "9c1f6d1e-…" } ],
"actions": [ { "actionType": "anonymize_subject", "status": "pending" } ],
"exports": [],
"documents": [],
"messages": [],
"closures": [],
"restrictions": [ { "restrictionType": "suppression_hold" } ],
"anonymizationJobs": [ { "status": "awaiting_approval" } ]
// ...
}
Cerrar una solicitud de derechos
Cierra formalmente un caso con su respuesta. Edugoverna genera el documento de respuesta final y el certificado de cierre como artefactos del caso, notifica por email al solicitante (cuando hay dirección registrada) y emite el webhook rights_request.closed. La respuesta es el paquete actualizado del caso, con status completed o denied y su registro en closures.
Permiso requerido: partner.rights_requests.write · Alcance de conexión: rights_requests:write.
Atributos requeridos
- Nombre
responseSummary- Tipo
- string
- Descripción
Respuesta entregada al solicitante (2–5000 caracteres). En un cierre
denied, se registra además como motivo de la denegación.
Atributos opcionales
- Nombre
outcome- Tipo
- string
- Descripción
Resultado del caso:
completed,partially_completedodenied. Por defectocompleted.
Request
curl https://app.edugoverna.com/api/partner/v1/organizations/org_2f7a/arco/requests/rr_9d3f/close \
-H "Authorization: Bearer {keyId}.{secret}" \
-H "Content-Type: application/json" \
-d '{
"outcome": "completed",
"responseSummary": "Los datos de la estudiante fueron eliminados de nuestros sistemas el 25 de agosto de 2026."
}'
Response
{
"id": "rr_9d3f",
"status": "completed",
"respondedAt": "2026-08-25T12:30:00.000Z",
"closedAt": "2026-08-25T12:30:00.000Z",
"responseSummary": "Los datos de la estudiante fueron eliminados de nuestros sistemas el 25 de agosto de 2026.",
"closures": [
{
"outcome": "completed",
"notificationChannel": "email",
"finalResponseArtifactId": "art_5f1a",
"certificateArtifactId": "art_5f1b"
}
]
// ...
}