Registrador externo

No todos los colegios con los que trabajas van a tener cuenta en Edugoverna. Cuando la nómina la tiene alguien más —el propio colegio en una planilla, un club, una academia, un fotógrafo escolar— el padrón entra por un registrador externo: tú envías una invitación, esa persona carga el curso en un portal público y el registro queda compartido contigo, sin que el colegio tenga que registrarse.

El flujo completo:

  1. Invitas por correo a quien tiene la nómina → POST /registrar-invites.
  2. Esa persona abre el portal con el enlace, verifica su correo con un código de un solo uso y declara el colegio (nombre, RBD, comuna).
  3. Carga la planilla del curso con el mismo importador de la consola y firma una declaración jurada versionada.
  4. Al confirmar, la plataforma crea el registro y comparte automáticamente ese curso contigo.
  5. Sobre ese registro compartido lanzas campañas exactamente igual que sobre uno de un colegio con cuenta → ver Campañas sobre registros compartidos.
  6. Si el colegio ya tiene firmado el consentimiento para una actividad tuya (en papel o por su propio canal), el registrador puede declararlo en la misma carga → ver Consentimiento declarado.

1. Invita a quien tiene la nómina

La invitación se envía desde tu propio espacio de trabajo, con el permiso registrar_invites.manage. Lleva el correo del destinatario y, opcionalmente, el nombre del colegio para que el portal lo reciba prellenado.

Solicitud
POST
/api/registrar-invites
curl https://app.edugoverna.com/api/registrar-invites \
  -H "x-api-key: {api_key}" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "coordinacion@liceocostaazul.cl",
    "invitedName": "Paula Riquelme",
    "schoolNameHint": "Liceo Costa Azul"
  }'

Si quieres que el registrador pueda declarar consentimientos ya firmados, agrega processingActivityId con una actividad tuya (ver Consentimiento declarado). En la Partner API la ruta es POST /partner/v1/organizations/:organizationId/registrar-invites, documentada en Registradores y solicitudes.

El token viaja hasheado en la base de datos y sólo existe en texto plano dentro del enlace del correo. La invitación caduca a los 14 días y se puede reenviar (con límite de reenvíos) o cancelar desde la API de la consola (POST /api/registrar-invites/:inviteId/resend y DELETE /api/registrar-invites/:inviteId) o desde la Partner API (POST /partner/v1/organizations/:organizationId/registrar-invites/:inviteId/resend y DELETE …/registrar-invites/:inviteId, ver Registradores y solicitudes). Reenviar rota el enlace: el anterior deja de abrir. Una invitación con padrón ya cargado no se puede cancelar (409 REGISTRAR_INVITE_ALREADY_ACCEPTED): cortar el acceso a un padrón es del registrador, que lo revoca desde el portal («Gestionar acceso»). Una invitación pendiente al mismo correo responde 409.

2. El portal: código de un solo uso y declaración del colegio

Quien recibe el enlace abre /registrar/portal/{token}, pide un código de verificación a su correo y lo ingresa. Con la sesión verificada declara el establecimiento: nombre, RBD, comuna, región y el cargo desde el que declara.

Dos reglas que conviene conocer antes de invitar:

  • El nombre del colegio no puede repetir el de otro registro activo tuyo; si lo hace, la creación responde 409. Un nombre liberado por una revocación anterior sí se puede reutilizar.
  • El portal sólo existe si tu licencia incluye el módulo de padrones compartidos. Sin él, el enlace responde como si la página no existiera.

3. La carga y la declaración jurada

El registrador sube una planilla y pasa por el mismo importador que la consola —análisis, previsualización con errores fila a fila, confirmación— descrito en Importaciones. El portal ofrece una plantilla descargable con el formato esperado.

En el portal del registrador la fecha de nacimiento de cada estudiante es obligatoria, igual que el RUT y los nombres. Una fila sin fecha se rechaza en la previsualización. Sin la fecha nadie puede decidir por el estudiante (no se sabe si decide él o su apoderado), así que tu consentimiento quedaría bloqueado para siempre. El registrador también puede indicar el año escolar y el nivel del curso, que te llegan en course y en el enrollment de cada titular.

Antes de confirmar, firma una declaración jurada: un texto versionado, con su checksum verificado en el servidor, en el que declara que el padrón que carga corresponde a lo que dice y que está facultado para entregarlo. La firma es simple, en los términos de la Ley 19.799.

La declaración no es un trámite decorativo. Su folio queda citado en el manifiesto sellado de cada consentimiento que después se recoja sobre ese padrón: cuando alguien pregunte de dónde salieron esos datos, la respuesta está en la evidencia, no en un correo.

4. Varios cursos por registro

Un registro admite cuantos cursos quiera el registrador. Cada carga posterior puede crear un curso nuevo o reemplazar uno existente:

  • Curso nuevo: se crea el grupo y se comparte contigo automáticamente. Si el nombre coincide con un curso que ya te está compartido, la carga se rechaza con un conflicto — un nombre tipeado dos veces no puede acuñar una segunda audiencia.
  • Reemplazo: la carga apunta al curso existente y sincroniza su composición; quien ya no aparece en la nómina nueva sale del grupo, y esa salida queda auditada. Un archivo que no aporta ninguna fila válida nunca vacía un curso.

Cada carga vuelve a pedir la declaración jurada, con el alcance que corresponde (creación, carga o reemplazo).

5. Revocación

El registrador manda sobre su padrón y puede cortar el acceso desde el mismo portal, en dos niveles:

  • Por curso: deja de compartir un curso y conserva los demás.
  • Global: corta el acceso al registro completo.

En ambos casos vale la misma regla que para cualquier registro compartido: las solicitudes de consentimiento que todavía no tenían decisión quedan invalidadas, y las decisiones ya otorgadas se conservan como evidencia de un tratamiento que fue lícito cuando ocurrió.

El registrador también controla, igual que un colegio con cuenta, los dos interruptores de cada curso compartido. El de divulgación del RUT viene encendido: con él apagado, pedir el RUT completo responde 403. El de correo del estudiante viene apagado, y mientras siga así el correo del estudiante responde 403.

Consentimiento declarado

A veces el colegio ya firmó el consentimiento para tu actividad: en papel, o por su propio canal, fuera de Edugoverna. Lanzar una campaña para que las familias vuelvan a firmar es lo que se quiere evitar; la alternativa real es que el colegio te mande la planilla por correo. El consentimiento declarado resuelve ese caso dentro de la plataforma: el registrador marca a los estudiantes cuyo consentimiento el colegio tiene firmado y declara bajo juramento que es así.

El flujo, de punta a punta

  1. Invitas con una actividad. processingActivityId en la invitación, desde la Partner API o desde la consola (POST /registrar-invites). La actividad tiene que ser tuya, con base de licitud «consentimiento», con consentimiento exigido y con su versión vigente publicada. Se aceptan las que tratan datos sensibles y las que piden autorización del apoderado: es un flujo del colegio, y lo declara bajo juramento. Las de consentimiento granular se rechazan (ver Límites).
  2. El registrador marca a quiénes. En el portal, con una invitación que trae actividad, la carga ofrece declarar a todos los estudiantes de la planilla o usar una columna Consentimiento firmado (Sí/No); la plantilla descargable incluye esa columna. Los estudiantes no marcados se suben igual como padrón compartido, y tú puedes lanzarles una campaña normal.
  3. Firma una cláusula adicional. Cuando hay marcados, la declaración jurada incluye una cláusula de consentimiento, versionada aparte, en la que declara que el establecimiento tiene el consentimiento firmado, lo conserva y lo exhibirá. Sin esa cláusula la carga con marcados se rechaza.
  4. Se crea una campaña declarada. Por cada curso compartido y versión de la actividad hay una campaña de tu espacio de trabajo con origin: "registrar_attestation". No envía ningún mensaje. Cada estudiante marcado queda con un consentimiento granted, con fecha de decisión igual a la de la firma de la declaración.
  5. Te enteras por webhook. Recibes los consent.decision.recorded de siempre, con la proyección shared_partner; latestDecision.captureMethod es registrar_attestation y el campaignId es el de la campaña declarada. No hay un tipo de evento nuevo. Con ese campaignId lees el avance en GET /shared-campaigns/:campaignId, cuyo origin también la distingue (ver Obtener una campaña compartida).
  6. Cargas posteriores suman. Si el registrador sube otra planilla del mismo curso, los estudiantes marcados se agregan a la misma campaña. Una fila «No» o la ausencia de un estudiante nunca revocan nada.

Cuando la carga es grande, una primera parte se procesa en línea y el resto termina en segundo plano: los webhooks llegan a medida que se registra cada decisión, no todos al confirmar.

Qué pasa con quien ya había decidido

  • Un estudiante que ya tenía un consentimiento vigente para esa actividad se queda como está: no se vuelve a registrar ni se duplica.
  • Una solicitud pendiente de otra campaña para el mismo estudiante se reemplaza por la declarada.

La campaña declarada es de sólo lectura

No hay nada que despachar. Sobre una campaña registrar_attestation, sincronizar la audiencia responde 409 CONSENT_CAMPAIGN_ATTESTED_READ_ONLY: agregaría al curso entero y enviaría solicitudes a los estudiantes que el colegio no marcó. Publicarla, reenviarla o recuperar errores desde la consola responde ese mismo código. Es una campaña bulk sin sobres, así que despachar o reenviar sobres (uno a uno o por lote) responde 409 CONSENT_CAMPAIGN_DISPATCH_MODE_UNSUPPORTED. Cerrarla sí se permite. Los estudiantes no marcados se atienden con una campaña compartida normal sobre el mismo share.

Retiros

El Art. 12 de la Ley 21.719 exige que el titular pueda revocar por medios similares a los del otorgamiento. Si firmó en papel ante el colegio, el colegio tiene que poder transmitir el retiro. Por eso el registrador puede retirar desde su portal cualquier consentimiento vigente sobre un curso de su padrón. Tú recibes consent.revoked con context.revocationSource: "registrar", como en cualquier otra revocación, y el retiro deja su propia evidencia sellada. Las decisiones anteriores se conservan como evidencia de un tratamiento que fue lícito cuando ocurrió.

Qué evidencia respalda un consentimiento declarado

Sé claro con tu equipo legal sobre qué es y qué no es:

  • El manifiesto sellado de cada decisión trae captureMethod: "registrar_attestation" y cita la declaración jurada del registrador (registrarDeclaration), firmada en una sesión verificada por código al correo invitado. El recibo lo etiqueta como «Declaración jurada del establecimiento», distinto de «Firmado en Edugoverna».
  • Edugoverna no tiene los documentos firmados. No se suben escaneos: el establecimiento declara que los conserva y los exhibirá.
  • No es una firma de la familia con enlace y código de un solo uso. El Art. 12 de la Ley 21.719 deja la carga de la prueba en el responsable del tratamiento, y la prueba aquí es una declaración jurada más la custodia del colegio. Si necesitas una evidencia más fuerte de una familia en particular, lánzale una campaña normal.

Límites del consentimiento declarado

  • No admite actividades granulares. El formulario firmado no dice qué permisos se aceptaron, así que la invitación responde 409 REGISTRAR_ATTESTATION_GRANULAR_UNSUPPORTED. Los otros rechazos de la actividad son REGISTRAR_ATTESTATION_ACTIVITY_NOT_CONSENT, REGISTRAR_ATTESTATION_ACTIVITY_NOT_PUBLISHED y 404 PROCESSING_ACTIVITY_NOT_FOUND.
  • Sólo declara consentimientos otorgados: no existe un «denegado declarado».
  • Si publicas una versión nueva de la actividad mientras el registrador carga, la carga se rechaza para que revise el aviso vigente.

Dónde retiran su consentimiento las familias

Un registro de registrador no tiene equipo ni política publicada, así que no tiene portal de transparencia propio. El retiro se ofrece donde corresponde: en tu portal de transparencia (/transparencia/{tu-slug}/retirar), porque tú eres el responsable del tratamiento. Ese portal encuentra por RUT —o, a quien no tiene RUT registrado, por el correo registrado y un código que llega sólo a esa dirección— a los titulares de tu workspace y de los registros que te compartieron y les muestra sólo los consentimientos de tus actividades. El comprobante que recibe quien decide —otorgue o no— trae el enlace a esa página, que no vence como el enlace original de 7 días. En el padrón de un colegio con cuenta, en cambio, el enlace lleva al portal del colegio, que es el que encuentra a su titular; si el colegio no tiene portal publicado, el comprobante no trae enlace.

Para que funcione, publica tu portal de transparencia con el retiro de consentimientos habilitado.

Qué cambia para tu integración

Nada estructural. Un registro compartido por un registrador externo se lee y se usa igual que uno compartido por un colegio con cuenta: aparece en GET /shares, sus integrantes llegan con la misma proyección acotada, y las campañas se crean en tu espacio de trabajo con las mismas rutas.

La única diferencia está en la tercera puerta de acceso: en una conexión de tipo external_registry no hay contrato del Art. 15 bis, y quien la satisface es la declaración jurada aceptada. Sin declaración, la puerta falla cerrada. Ver Cómo se habilita tu acceso y Autenticación.

¿Te sirvió esta página?