Derechos ARCO

Una solicitud de derechos (rights_request) es el expediente de un titular que ejerce acceso, rectificación, supresión, oposición, portabilidad o bloqueo. Por API puedes crear casos, listarlos por vencimiento, gestionar su plazo y configurar el portal ARCO público del colegio; la ejecución sensible (exportaciones, anonimización) queda reservada a la consola.

Para el recorrido completo de un caso —desde el portal público hasta el cierre notificado— revisa la guía del flujo ARCO y la página de producto Derechos ARCO.

El modelo de la solicitud

  • Nombre
    requestType
    Tipo
    string
    Descripción

    Uno de access, rectification, suppression, opposition, portability, blocking.

  • Nombre
    status
    Tipo
    string
    Descripción

    Flujo: submittedin_progress (o processing cuando ejecuta un conector externo) → ready_to_closecompleted o denied. failed marca un error de conector pendiente de triage.

  • Nombre
    dueAt
    Tipo
    timestamp
    Descripción

    Plazo legal original: se fija al crear el caso como fin de día (hora de Santiago) tras los días hábiles del SLA configurado (por defecto 15, máximo 20).

  • Nombre
    extendedDueAt
    Tipo
    timestamp | null
    Descripción

    Plazo extendido. El plazo efectivo es siempre extendedDueAt ?? dueAt.

  • Nombre
    portalTrackingCode
    Tipo
    string
    Descripción

    Código de seguimiento que el solicitante usa en el portal público. Se acuña siempre, también para casos creados por API.

  • Nombre
    subjects
    Tipo
    array
    Descripción

    Titulares alcanzados por el caso, cada uno con su subjectSummary.

  • Nombre
    actions / exports / documents / messages / closures
    Tipo
    arrays
    Descripción

    El expediente completo: acciones de cumplimiento, exportaciones, documentos, mensajes con el solicitante y cierres.


GET/api/rights-requests

Listar solicitudes

Requiere rights_requests.read. Devuelve los expedientes completos (misma forma que el detalle), paginados por limit/offset o cursor.

Parámetros opcionales

  • Nombre
    scope
    Tipo
    string
    Descripción

    abiertas, vencen-pronto (vencen en 7 días), vencidas (abiertas y fuera de plazo), fuera-de-plazo (cerradas después del plazo) o cerradas.

  • Nombre
    requestType
    Tipo
    string
    Descripción

    Filtra por tipo de derecho.

  • Nombre
    status
    Tipo
    string
    Descripción

    Filtra por estado exacto.

  • Nombre
    q
    Tipo
    string
    Descripción

    Busca por código de seguimiento, resumen o id.

  • Nombre
    sort
    Tipo
    string
    Descripción

    plazo, enviada, estado o tipo; dir = asc | desc.

  • Nombre
    limit
    Tipo
    integer
    Descripción

    Por defecto 100, máximo 250. cursor reemplaza a offset si se envían ambos.

Solicitud

GET
/api/rights-requests
curl -G "https://app.edugoverna.com/api/rights-requests" \
  -H "x-api-key: {tu_api_key}" \
  -d scope=vencen-pronto \
  -d sort=plazo -d dir=asc

Respuesta

{
  "rightsRequests": [
    {
      "id": "7c2e…",
      "requestType": "access",
      "requestChannel": "portal",
      "status": "in_progress",
      "summary": "Acceso a antecedentes académicos",
      "requesterEmail": "camila.requester@example.cl",
      "submittedAt": "2026-08-11T14:02:00.000Z",
      "dueAt": "2026-09-01T23:59:59.999Z",
      "extendedDueAt": null,
      "closedAt": null,
      "portalTrackingCode": "ARCO-…",
      "subjects": [
        {
          "subjectId": "3f6f…",
          "relationType": "target",
          "subjectSummary": {
            "id": "3f6f…",
            "subjectType": "student",
            "referenceCode": "EST-2026-0412",
            "displayName": "Martina Rojas"
          }
        }
      ],
      "actions": [],
      "exports": [],
      "documents": [],
      "messages": [],
      "closures": []
      // …
    }
  ],
  "meta": {
    "total": 9,
    "totalMatchedCount": 9,
    "limit": 100,
    "offset": 0,
    "nextCursor": null
  }
}

GET/api/rights-requests/counts

Contadores por vencimiento

Requiere rights_requests.read. Devuelve los mismos cinco alcances del listado más el total, listos para un tablero de plazos. Acepta un único filtro opcional, requestType. Nota: dos claves llevan guion.

Solicitud

GET
/api/rights-requests/counts
curl "https://app.edugoverna.com/api/rights-requests/counts" \
  -H "x-api-key: {tu_api_key}"

Respuesta

{
  "total": 9,
  "abiertas": 5,
  "vencen-pronto": 1,
  "vencidas": 2,
  "fuera-de-plazo": 2,
  "cerradas": 4
}

POST/api/rights-requests

Crear una solicitud

Requiere rights_requests.write. El servidor calcula dueAt según el SLA configurado y acuña el portalTrackingCode. Responde 201 con el expediente completo.

Atributos requeridos

  • Nombre
    requestType
    Tipo
    string
    Descripción

    access, rectification, suppression, opposition, portability o blocking.

  • Nombre
    subjectIds
    Tipo
    string[]
    Descripción

    Titulares alcanzados (1 a 200). Un id que no exista en el padrón responde 404 RIGHTS_REQUEST_SUBJECT_NOT_FOUND.

Atributos opcionales

  • Nombre
    requesterSubjectId
    Tipo
    string
    Descripción

    Titular que solicita (p. ej. el apoderado).

  • Nombre
    requesterEmail
    Tipo
    string
    Descripción

    Correo del solicitante para las notificaciones.

  • Nombre
    requestChannel
    Tipo
    string
    Descripción

    Canal de entrada; por defecto portal.

  • Nombre
    summary
    Tipo
    string
    Descripción

    Resumen del caso (hasta 2000 caracteres).

  • Nombre
    legalBasis
    Tipo
    string
    Descripción

    Base legal invocada.

Solicitud

POST
/api/rights-requests
curl -X POST "https://app.edugoverna.com/api/rights-requests" \
  -H "x-api-key: {tu_api_key}" \
  -H "Content-Type: application/json" \
  -d '{
    "requestType": "access",
    "subjectIds": ["3f6f0a2e-…"],
    "requesterEmail": "camila.requester@example.cl",
    "summary": "Acceso a antecedentes académicos"
  }'

Respuesta · 201

{
  "id": "7c2e…",
  "requestType": "access",
  "status": "submitted",
  "requestChannel": "portal",
  "dueAt": "2026-09-15T23:59:59.999Z",
  "extendedDueAt": null,
  "portalTrackingCode": "ARCO-…",
  "subjects": [{ "subjectId": "3f6f0a2e-…", "relationType": "target" }]
  // …
}

POST/api/rights-requests/:id/extend

Extender el plazo

Requiere rights_requests.write. La ley admite una sola extensión, de hasta 15 días hábiles sobre el dueAt vigente; un segundo intento responde 409 RIGHTS_REQUEST_ALREADY_EXTENDED. La razón queda como mensaje deadline_extension en el expediente.

Atributos requeridos

  • Nombre
    extendedDueAt
    Tipo
    timestamp
    Descripción

    Nuevo plazo (ISO 8601). Debe caer en un día calendario de Santiago posterior al plazo vigente.

  • Nombre
    reason
    Tipo
    string
    Descripción

    Justificación (2 a 2000 caracteres).

Solicitud

POST
/api/rights-requests/:id/extend
curl -X POST "https://app.edugoverna.com/api/rights-requests/7c2e…/extend" \
  -H "x-api-key: {tu_api_key}" \
  -H "Content-Type: application/json" \
  -d '{
    "extendedDueAt": "2026-09-30T23:59:59.999Z",
    "reason": "Caso complejo con revisión de antecedentes externos."
  }'

Los demás endpoints del caso

Método y rutaPermisoQué hace
GET /rights-requests/:idrights_requests.readExpediente completo (mismo cuerpo que el listado).
POST /rights-requests/:id/subjectsrights_requests.writeAgrega un titular al caso.
DELETE /rights-requests/:id/subjects/:subjectIdrights_requests.writeRetira un titular del caso.
PATCH /rights-requests/:id/requester-emailrights_requests.writeCorrige el correo del solicitante.
POST /rights-requests/:id/messagesrights_requests.writeEscribe un mensaje al solicitante.
POST /rights-requests/:id/rectifyrights_requests.writeEjecuta la rectificación de identidad del titular.
POST /rights-requests/:id/restrictions/completerights_requests.writeCompleta un bloqueo/restricción de tratamiento.
POST /rights-requests/:id/restrictions/lift-oppositionrights_requests.writeLevanta una oposición.
GET /rights-requests/:id/action-fulfillmentrights_requests.readEstado de los conectores de acción.
POST /rights-requests/:id/actions/triggerrights_requests.writeDispara un conector de acción.
POST /rights-requests/:id/denyrights_requests.writeDeniega el caso con razón.
POST /rights-requests/:id/final-response/previewrights_requests.writePrevisualiza la respuesta final.
POST /rights-requests/:id/closerights_requests.writeCierra el caso.
POST /rights-requests/:id/notifyrights_requests.writeNotifica el cierre al solicitante.

GET/api/arco/portal/current

Portal ARCO

La configuración del portal público de derechos del colegio. Lectura con rights_requests.read; escritura con PUT y rights_requests.write (mismo cuerpo de respuesta). El portal define el SLA por defecto y por tipo (defaultSlaDays, requestTypeConfig.<tipo>.slaDays, 1 a 20 días hábiles), los documentos exigidos al solicitante, los formatos de exportación y los conectores de acción — cuyo secret es de sólo escritura: la lectura devuelve únicamente hasSecret.

Solicitud

GET
/api/arco/portal/current
curl "https://app.edugoverna.com/api/arco/portal/current" \
  -H "x-api-key: {tu_api_key}"

Respuesta (recortada)

{
  "organization": { "id": "org_…", "name": "Colegio Andes", "slug": "colegio-andes" },
  "arcoPortal": {
    "ownerType": "school",
    "enabled": true,
    "arcopEnabled": true,
    "slug": "colegio-andes",
    "ownerDisplayName": "Colegio Andes",
    "dpoName": "Patricia Núñez",
    "dpoEmail": "dpo@colegioandes.cl",
    "defaultSlaDays": 15,
    "supportedExportFormats": ["json", "pdf"],
    "requestTypeConfig": {
      "access": {
        "enabled": true,
        "slaDays": 15,
        "requiredDocuments": [
          { "kind": "identity", "label": "Documento de identidad", "required": true }
        ]
      }
      // … los seis tipos siempre presentes
    },
    "actionConnectors": {
      "export_access_package": {
        "mode": "internal",
        "endpointUrl": null,
        "hasSecret": false
      }
    }
  }
}

GET/api/organization/redirect-origins

Orígenes de redirección

La lista de orígenes autorizados para redirigir a un titular de vuelta a un sitio del colegio después de completar un flujo público (consentimiento, portal). La lectura acepta consents.read o schools.read; crear y borrar exigen schools.write.

POST es idempotente: reenviar un origen ya registrado devuelve la fila existente. El origen se normaliza (esquema + host, sin ruta): registrar https://Colegio.example/gracias guarda https://colegio.example.

Solicitud

POST
/api/organization/redirect-origins
curl -X POST "https://app.edugoverna.com/api/organization/redirect-origins" \
  -H "x-api-key: {tu_api_key}" \
  -H "Content-Type: application/json" \
  -d '{ "origin": "https://www.colegioandes.cl", "allowSubpaths": true }'

Respuesta · 201

{
  "id": "9a1b…",
  "organizationId": "org_…",
  "origin": "https://www.colegioandes.cl",
  "allowSubpaths": true,
  "createdByUserId": null,
  "createdAt": "2026-08-25T12:00:00.000Z"
}

Estos orígenes también gobiernan los redirects de campañas de consentimiento; el detalle de esa interacción está en Consentimientos.

¿Te sirvió esta página?