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.

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: submittedin_progress | processingready_to_closecompleted | 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.


GET/v1/organizations/:organizationId/arco/portal

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

GET
/v1/.../arco/portal
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
    }
  }
}

PUT/v1/organizations/:organizationId/arco/portal

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 null la 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

PUT
/v1/.../arco/portal
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
    // ...
  }
}

GET/v1/organizations/:organizationId/arco/requests

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

GET
/v1/.../arco/requests
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
}

POST/v1/organizations/:organizationId/arco/requests

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, portability o blocking.

  • 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

POST
/v1/.../arco/requests
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"
    }
  ]
  // ...
}

GET/v1/organizations/:organizationId/arco/requests/:rightsRequestId

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

GET
/v1/.../arco/requests/rr_9d3f
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" } ]
  // ...
}

POST/v1/organizations/:organizationId/arco/requests/:rightsRequestId/close

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_completed o denied. Por defecto completed.

Request

POST
/v1/.../arco/requests/rr_9d3f/close
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"
    }
  ]
  // ...
}

¿Te sirvió esta página?