Docs

Guía: doble opt-in

Recoge una preferencia de correo pendiente, envía un enlace de confirmación y solo escribe GRANTED cuando la persona hace clic.

Algunas normativas (ePrivacy, ciertas interpretaciones del RGPD) exigen opt-in confirmado para el correo de marketing: registra la intención, envía un correo de verificación y activa la suscripción solo cuando se hace clic en el enlace. Esta guía cubre el flujo completo.

Antes de empezar

  • Crea un propósito del centro de preferencias con categoría marketing (p. ej. clave newsletter).
  • Crea una clave sk_ para tu servidor.
  • Ten listo un servicio de correo transaccional — el correo lo envías tú; Tripticonsent proporciona el token.

1. El usuario envía el formulario de registro

En tu servidor, escribe un registro de preferencia pendiente y solicita un token de confirmación de corta duración.

// servidor — clave sk_
const { token, expiresAt } = await tc.createPreferenceConfirmationToken({
  subject: 'email:' + user.email,
  channel: 'marketing',
  topic: 'newsletter',
  redirectUrl: 'https://acme.com/suscripcion/confirmada',
});

2. Envía el correo de confirmación

Construye el enlace tú mismo y envíalo a través de tu proveedor de correo. El endpoint de confirmación es público — no necesita clave.

const confirmUrl = `https://api.tripticonsent.com/v1/preferences/confirm?token=${token}`;

await mailer.send({
  to: user.email,
  subject: 'Por favor, confirma tu suscripción',
  html: `<a href="${confirmUrl}">Sí, suscríbeme</a>`,
});

3. El usuario hace clic

Tripticonsent escribe GRANTED en la bóveda, dispara el webhook preference.confirmed y redirige al usuario a tu redirectUrl. No hay nada más que hacer por tu parte.

getPreferences devuelve { state: "PENDING" } hasta que se confirma. Condiciona cualquier envío a state === "GRANTED" — nunca a PENDING.
Los tokens caducan a las 24 horas. Si el usuario no hace clic, la preferencia permanece PENDING indefinidamente. Puedes reenviar un token nuevo en cualquier momento.