La capa de consentimiento a la que conectas tu producto.
Captura, versiona, demuestra y revoca consentimientos y preferencias —cookies incluidas— con una sola API. Una bóveda de solo anexión, justificantes firmados que se verifican sin conexión y cada evento almacenado en la UE.
| Sujeto | Propósito | Estado | Versión | Registrado | Justificante |
|---|---|---|---|---|---|
| email:a.rivera@… | marketing_email | concedido | v3 | 14:02:11 | rcpt_9f2… |
| external_id:u_4821 | analytics | denegado | v1 | 14:02:07 | rcpt_1c8… |
| email:m.chen@… | marketing_email | retirado | v3 | 13:58:44 | rcpt_a41… |
| cookie_id:ck_77b | personalization | concedido | v2 | 13:58:40 | rcpt_2d0… |
| email:s.k@… | data_sharing | caducado | v2 | 13:51:19 | rcpt_e77… |
El consentimiento es un problema de datos que no para de cambiar.
Una prueba, no un valor booleano
Un regulador pregunta qué vio exactamente la persona y cuándo. Eso exige un registro inmutable con la versión de la cláusula, la IP y la marca de tiempo, además de una firma que cualquiera pueda verificar sin conexión.
El marco legal cambia continuamente
RGPD, ePrivacy, LOPDGDD, CCPA, revisiones del TCF. Fijar cualquiera de estas reglas en el código obliga a una migración cada vez que cambian. Las reglas se guardan como datos y se evalúan en el momento de la petición.
Las cookies son un proyecto aparte
Escanear un sitio, clasificar cada rastreador y mantenerlo al día. Cookiebot dedicó una década solo a su base de datos de clasificación.
De solo anexión, con un justificante firmado por cada decisión.
Las filas de ConsentRecord nunca se modifican: un cambio es una fila nueva que sustituye a la anterior. Una proyección materializada sirve las lecturas frecuentes; el registro es la fuente de verdad.
- Firmas Ed25519 independientes, JWKS público, verificables sin conexión
- IP cifrada en reposo y hash de la cláusula en la prueba
- Cronología completa y exportación del sujeto con un clic
Cláusulas versionadas y un centro de preferencias configurable.
Publica una versión de un propósito como DISPLAY_ONLY (solo notificar) o RECONSENT_REQUIRED (tratar el consentimiento anterior como caducado). Canales × temas, campos tipados y reglas de dependencia con JSON-logic.
- Texto legal multiidioma, congelado por versión
- Tu banner se genera a partir de
GET /v1/purposes - Ventanas de caducidad y campañas de reconsentimiento masivas
Clasificación en cascada: base de datos de referencia → heurísticas → IA.
Gana el primer nivel que resuelve con suficiente confianza. Las cookies desconocidas pasan a una cola de revisión por sitio; una clasificación confirmada y promovida entre organizaciones se convierte en una coincidencia de nivel 1 para todas.
- La anulación manual de una persona es la autoridad para ese sitio
- El conjunto de definiciones compartido crece con cada revisión
GET /v1/cookiesalimenta la tabla del banner
TCF v2.2 y Consent Mode v2: derivados, no reimplementados.
Solicita una cadena TC o un objeto gtag('consent','update', …) construido a partir del estado actual del sujeto. El control de etiquetas del SDK carga tus scripts al conceder el consentimiento y lo reevalúa cuando cambia.
GET /v1/consent/tcstringGET /v1/consent/google-consent-mode- Webhooks firmados en cada cambio, con reintento y reenvío
La potencia de OneTrust con la sencillez de una API.
| OneTrust · Cookiebot | Tripticonsent | |
|---|---|---|
| Modelo | Una suite que opera tu equipo | Una API a la que conectas tu producto |
| Prueba del consentimiento | Un registro en su sistema | Bóveda de solo anexión y justificante firmado con Ed25519 |
| Marco regulatorio | Configuración por plantillas | RuleSet en datos (JSON-logic), sin migraciones |
| Cookies | Escáner y base de datos propietaria | Cascada base de datos → heurísticas → IA, con base de datos compartida |
| TCF / Consent Mode | Un módulo aparte | Derivado del estado del sujeto, un solo endpoint |
| Residencia | Según el plan | Siempre en la UE (Vercel fra1 · Neon eu-central) |
| Integración | Etiquetas y portal | npm i @tripticonsent/sdk |
Comparativa orientativa. Sin afiliación con OneTrust ni Cookiebot.
Diez líneas de código y, a partir de ahí, es una API más.
- SDK para navegador y Node, o REST directo
- Caché en memoria con revalidación por ETag
- Cabecera `Idempotency-Key` en cada escritura
- Verificación de justificantes sin conexión incluida
import { TripticonsentClient } from '@tripticonsent/sdk';
const tc = new TripticonsentClient({ baseUrl: API_URL, apiKey: 'pk_live_…' });
await tc.recordConsent(
{ subject: 'email:user@example.com', purpose: 'marketing_email', state: 'GRANTED' },
{ idempotencyKey: crypto.randomUUID() },
);
// load analytics only after consent
await tc.gate('email:user@example.com', ['analytics'], () => loadAnalytics());Conecta la capa de consentimiento.
Una bóveda, una única fuente de verdad, en la UE. Conecta tu banner en cuestión de horas.