Developers

Centro de Privacidad

Permite que un cliente autenticado consulte y administre sus consentimientos.

El Centro de Privacidad es una superficie autenticada y white-label para gestionar consentimientos y ejercer derechos sobre datos personales. No autentica usuarios: el tenant autentica al cliente y su backend crea una sesión efímera ligada a ese cliente.

Cliente → login del tenant
Backend tenant → POST /v1/privacy-center/sessions
Frontend tenant → <consensa-privacy-center>
Runtime Consensa → lectura y revocación ligadas a la sesión

Crear una sesión desde el backend

La API key necesita consent:runtime y consent:identity-assert. customerId debe pertenecer al tenant autenticado; una referencia de otro tenant falla sin revelar su existencia. No envíes la API key al navegador.

curl --request POST "$CONSENSA_API_URL/v1/privacy-center/sessions" \
  --header "Authorization: Bearer $CONSENSA_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: privacy-customer-4821-01" \
  --data '{
    "configKey": "customer-privacy",
    "customerId": "customer-4821",
    "origin": "https://banco.ejemplo.cl",
    "authentication": {
      "source": "client",
      "method": "bank_session",
      "authenticatedAt": 1787702400000,
      "reference": "session-reference-8f2a"
    }
  }'

La respuesta contiene sessionId, launchTicket, launchExpiresAt, expiresAt y el estado de autenticación. launchTicket no permite leer ni revocar nada: es un ticket de un solo uso que vence a los 60 segundos. La credencial que sí puede ver evidencia, descargar comprobantes y revocar se crea dentro del iframe Consensa y nunca pasa por tu página.

Montar el Web Component

El frontend no selecciona customerId; la identidad ya está congelada en la sesión. Entrega el ticket con launch(), nunca en un atributo o una URL.

<script type="module" src="https://embed.consensa.example/host.js"></script>
<consensa-privacy-center id="privacy"
  src="https://embed.consensa.example/runtime.html"></consensa-privacy-center>
<script type="module">
  const privacy = document.querySelector('#privacy');
  privacy.setAttribute('session', sessionId);
  privacy.launch(launchTicket);
</script>

El runtime canjea el ticket una única vez, sólo si el origen de tu página que certifica el navegador coincide con el origin de la sesión, y sólo puede ser enmarcado por ese origen (frame-ancestors).

El runtime lista consentimientos generales y REDEC, muestra estado, vigencia, scopes y una representación comprensible del comprobante. Una revocación pide confirmación y sólo actualiza la interfaz cuando el caso de uso canónico responde con éxito.

Eventos

EventoCuándo se emitedetail adicional
consensa:privacy-center-readyEl runtime cargó y la sesión está lista.—
consensa:consent-revokedEl titular revocó un consentimiento.consentReference, status: "revoked"
consensa:consent-updatedEl titular aceptó una versión nueva de un consentimiento general.consentReference, status: "accepted"
consensa:privacy-center-errorError sanitizado.code

Ningún evento contiene tokens, API keys, RUT, Evidence en crudo ni identificadores internos. Como siempre, el estado de negocio se confirma desde tu backend.

Solicitudes de derechos y contacto de respuesta

El titular puede crear y seguir solicitudes de acceso, rectificación, supresión, oposición, portabilidad y bloqueo. Antes de enviar una solicitud debe indicar dónde quiere recibir la respuesta: puede elegir uno de sus emails identificadores, mostrado siempre enmascarado mediante un ID opaco, o ingresar y confirmar otro email. Ese destino se cifra y se congela dentro de la solicitud; los workers de comunicación leen exclusivamente ese snapshot y nunca vuelven a consultar el perfil vivo del cliente.

Cuando tu organización resuelve, resuelve parcialmente o rechaza la solicitud, Consensa envía la respuesta escrita al email que el titular fijó para esa solicitud (Ley 21.719, art. 11), en nombre de tu organización. El correo incluye el derecho ejercido, la referencia, la fecha de la solicitud, el resultado, la fecha de la respuesta, lo que el titular pidió, la respuesta y su fundamento tal como los registraste; no incluye enlaces ni los motivos que el titular declaró. Escribe la respuesta y el fundamento sabiendo que llegan íntegros al titular. Consensa conserva la copia exacta del correo enviado con su hash, destino protegido y fecha. El historial también queda visible en el Centro de Privacidad. Cambiar o eliminar posteriormente un email del perfil no altera el contacto de una solicitud ya registrada.

Tu backend lee esas solicitudes y confirma su ejecución desde Solicitudes del titular.

Marca y canal

El runtime resuelve el TenantBranding vigente en cada bootstrap, incluso para una sesión ya creada; la marca no forma parte de la proyección inmutable ni de sus hashes. El canal usa origin y source exactos, protocolo versionado y eventos sanitizados.

En esta página