Convivencia educativa
La Ley 21.809 reescribió el Párrafo 3° del DFL 2/2009: desde el 1 de julio de 2026 todo establecimiento con reconocimiento oficial debe tener un canal seguro y confidencial de denuncias con reserva de identidad, tramitar los casos con plazos verificables, dejar constancia de la entrega del reglamento a cada apoderado y actualizar participativamente su plan cada cuatro años. Los arts. 16 D a 16 H son exigibles el 1 de abril de 2027.
Dos módulos. El canal de denuncias (convivencia_channel) viene en
todos los planes: es deber legal de cada colegio. El expediente
(convivencia) se contrata como complemento y se habilita por organización.
Sin él, las rutas de expedientes, expulsiones, constancias, ciclo y
revisiones responden 403 MODULE_NOT_LICENSED.
Las llaves asignables a una API key son de lectura: convivencia_channel.reports.read, convivencia.cases.read y convivencia.searches.read. Todo lo que escribe —y en particular revelar la identidad de un denunciante (convivencia_channel.identity.reveal), resolver una expulsión (convivencia.expulsion.approve), sellar (convivencia.seal) y exportar la planilla (convivencia.export)— es exclusivo de sesión: son actos atribuibles a una persona.
Las marcas de tiempo son milisegundos epoch.
Denuncias recibidas
Requiere convivencia_channel.reports.read. Devuelve las denuncias del canal público con su código de seguimiento, modo (anonymous | reserved), tipo, estado y cuenta de adjuntos, más los contadores de la bandeja.
La identidad reservada nunca viaja aquí. Existe en una tabla aparte y sale sólo por POST /api/convivencia/channel/reports/:id/identity, con motivo obligatorio, llave propia y un evento de acceso que el denunciante tiene derecho a conocer.
Estados
- Nombre
received- Descripción
- Nueva.
- Nombre
in_review- Descripción
- Con un mensaje intermedio del colegio.
- Nombre
answered- Descripción
- Con respuesta.
- Nombre
linked- Descripción
- Convertida en expediente; deja de purgarse.
- Nombre
closed- Descripción
- Archivada.
- Nombre
purged- Descripción
- Purgada (90 días sin convertirse en caso; interpretación del producto).
curl "https://app.edugoverna.com/api/convivencia/channel/reports" \
-H "x-api-key: {tu_api_key}"
Expedientes
Requiere convivencia.cases.read. Cada caso trae su clock: el plazo de investigación de dos meses calendario (art. 16 E g) que corre desde la activación del protocolo, sólo cuando hay estudiantes involucrados. Los contadores (open, dueSoon, overdue, withExpulsion, closed) se cuentan en SQL sobre toda la organización.
Las partes salen con el rótulo del nivel de acceso de quien lee: sin permisos de identidad de titulares, un estudiante es su código de referencia.
Relojes
- Nombre
investigationDeadlineAt- Descripción
- Dos meses calendario desde
protocolActivatedAt.
- Nombre
suspensionCapAt- Descripción
- Por medida: 15 días hábiles administrativos (descuentan feriados).
- Nombre
regulatorReportDeadlineAt- Descripción
- Expulsión: 5 días hábiles desde la resolución del director para informar a la autoridad educativa y a la SEREMI.
Actuaciones con adjunto
POST /convivencia/cases/:id/events recibe multipart title, body, occurredAt, evidenceKind y file opcional. El archivo entra como evidencia del expediente y el hito de la cronología lo apunta: los eventos del detalle traen createdByName, evidenceId y evidenceLabel, y el PDF sellado nombra el adjunto junto al hito. Un expediente cerrado responde 409 CONVIVENCIA_CASE_CLOSED.
PATCH /convivencia/cases/:id con collaborativeResolutionOffered: true deja el hito «Gestión colaborativa ofrecida» (arts. 61 y 62 de la Ley 20.529); un assignedUserId nuevo deja «Responsable: …».
curl "https://app.edugoverna.com/api/convivencia/cases/{id}" \
-H "x-api-key: {tu_api_key}"
Planilla de expedientes
Requiere convivencia.export —llave distinta de convivencia.cases.read, porque saca la organización entera en un archivo— y devuelve un XLSX con dos hojas: Expedientes (una fila por caso, con el estado del plazo) y Medidas (una fila por medida, con el tope legal de las suspensiones).
Los rótulos de las partes se recortan al nivel de acceso de quien exporta y los menores salen siempre por su código de referencia, nunca por su nombre: el archivo viaja.
# Exclusivo de sesión: se descarga desde la consola, no con una API key.
curl "https://app.edugoverna.com/api/convivencia/cases/export" \
-H "cookie: {tu_sesión}" \
-o convivencia.xlsx
Paquete de una versión sellada
Requiere convivencia.export y devuelve un ZIP (expediente-{código}-v{n}.zip) con tres cosas: el PDF de esa versión sellada, con los mismos bytes que se guardaron; los archivos de evidencia del expediente, en evidencia/; y manifiesto.txt, que lista el código del caso, la versión, la fecha del sello, la huella del sello y, por cada archivo, su ruta, nombre original, tipo, tamaño y SHA-256.
Sólo entra la evidencia que existía al sellar, para que el paquete coincida con la versión; el manifiesto declara cuántos archivos posteriores quedaron fuera y cuáles ya no están disponibles. Cada archivo leído queda en el registro de accesos (convivencia_case_package_export). Un paquete de más de 50 MB responde 413 CONVIVENCIA_PACKAGE_TOO_LARGE: en ese caso la evidencia se descarga archivo por archivo.
# Exclusivo de sesión: se descarga desde la consola, no con una API key.
curl "https://app.edugoverna.com/api/convivencia/cases/{caseId}/seals/{sealId}/package" \
-H "cookie: {tu_sesión}" \
-o expediente.zip
Registro de revisiones
Requiere convivencia.searches.read. El registro del art. 16 J de la Ley 21.827: cada revisión de efectos personales con estudiante, adultos presentes, motivos, elementos hallados, horas, firmas y copias entregadas, más el resumen semestral (records, elementsFound, weapons) que se reporta a la SEREMI.
La retención de tres años y el registro de todas las revisiones (no sólo las individuales en lugar privado) son interpretaciones del producto: la ley no fija ninguna de las dos.
curl "https://app.edugoverna.com/api/convivencia/searches?year=2026&semester=2" \
-H "x-api-key: {tu_api_key}"
Portal público
El canal vive en /convivencia/{slug} y es la única página, junto a la del Art. 14 ter, que se indexa: el art. 16 G obliga a publicarlo permanentemente en el sitio web. El seguimiento (/convivencia/{slug}/seguimiento) se entra con código y clave, y la constancia de recepción del reglamento (/convivencia/reglamento/{token}) es un enlace personal de un solo paso. Ninguna de las tres tiene API pública de escritura fuera del navegador: el formulario protege con Turnstile y cuenta cada intento de seguimiento, con la misma frase exista o no la denuncia.