Multi-consent
Procesa 1..N consentimientos con decisiones explícitas y commit atómico.
Una misma Embed Session puede resolver uno o varios consentimientos, según la versión publicada de la configuración. Cada tarjeta conserva la regla 1 ConsentBox = 1 ConsentTemplateVersion.
Antes de materializar el runtime, Consensa evalúa compliance por ConsentTemplate estable. Multi presenta únicamente consentimientos pendientes o con nuevos requisitos; los ya satisfechos no se incluyen. Si todos están satisfechos, POST /v1/embed/sessions responde presentation.required=false.
Semántica de decisión
Todo consentimiento incluido en la interacción recibe una decisión explícita: grant o deny.
optionalno significa omitido ni denegación implícita.requiredno significa aceptación forzada.- El usuario siempre puede denegar.
- El backend confirma el conjunto de decisiones mediante un commit atómico.
Evento público
Cuando la interacción contiene dos o más consentimientos, el componente emite consensa:completed con resultados sanitizados por templateKey.
consent.addEventListener('consensa:completed', ({ detail }) => {
// {
// interactionReference: "interaction-public",
// outcome: "completed",
// consents: [
// { templateKey: "privacy", decision: "granted" },
// { templateKey: "marketing", decision: "denied" }
// ]
// }
renderNextStep(detail.consents);
});El payload público no incluye tickets ni credenciales de sesión, sessionId, identificadores personales ni IDs internos. Consulta GET /v1/consent-interactions/{interactionId} desde el backend para confirmar el resultado canónico.