API REST (Desarrolladores)
Politica de Cookies

Endpoints Politica de Cookies

Endpoints para generar, editar y publicar politicas de cookies a partir de los avisos del CMP.

Todos los endpoints requieren autenticacion JWT. El modulo esta disponible en todos los planes (feature flag: PRIVACY_POLICY).

Generar politica

POST /api/v1/cookie-policy/generate

Genera automaticamente una politica de cookies a partir de los avisos CMP, propositos y configuracion del tenant. Se crea en estado DRAFT.

Roles: Owner, Admin, DPO

Body:

{
  "legalEntityId": "ent_xyz789",
  "domainId": "dom_abc123"
}
CampoTipoRequeridoDescripcion
legalEntityIdstringNoFiltrar por entidad legal
domainIdstringNoFiltrar por dominio

Respuesta (201):

{
  "success": true,
  "data": {
    "id": "cpol_abc123",
    "version": 1,
    "status": "DRAFT",
    "sections": [
      {
        "key": "cookie_intro",
        "title": "Qué son las cookies",
        "autoContent": "Las cookies son pequeños archivos de texto..."
      },
      {
        "key": "cookie_table",
        "title": "Cookies que utilizamos",
        "autoContent": "### ejemplo.cl\n...",
        "completeness": { "filled": 2, "total": 2 }
      },
      {
        "key": "cookie_manage",
        "title": "Cómo gestionar sus preferencias",
        "autoContent": "..."
      },
      {
        "key": "cookie_contact",
        "title": "Contacto",
        "autoContent": "..."
      }
    ],
    "createdAt": "2026-03-09T10:00:00Z"
  }
}
⚠️

Si no hay avisos CMP configurados, la seccion cookie_table mostrara un mensaje indicando que se debe configurar el CMP primero.

Obtener politica actual

GET /api/v1/cookie-policy/current

Retorna la politica publicada mas reciente. Si no hay ninguna publicada, retorna el ultimo borrador.

Roles: Todos

Query params:

ParamTipoDescripcion
legalEntityIdstringFiltrar por entidad legal
domainIdstringFiltrar por dominio
curl -X GET "https://api.dpolab.com/api/v1/cookie-policy/current?domainId=dom_abc" \
  -H "Authorization: Bearer {token}"

Respuesta (200):

{
  "success": true,
  "data": {
    "id": "cpol_abc123",
    "version": 2,
    "status": "PUBLISHED",
    "language": "es",
    "sections": [],
    "customSections": {},
    "customIntro": null,
    "legalEntityId": "ent_xyz789",
    "domainId": "dom_abc123",
    "publishedAt": "2026-03-15T14:00:00Z",
    "publishedBy": "usr_001",
    "createdAt": "2026-03-09T10:00:00Z",
    "updatedAt": "2026-03-15T14:00:00Z"
  }
}

Listar versiones

GET /api/v1/cookie-policy/versions

Retorna el historial de versiones (max 50), con nombre de entidad legal y dominio.

Roles: Todos

Query params:

ParamTipoDescripcion
legalEntityIdstringFiltrar por entidad legal
domainIdstringFiltrar por dominio
curl -X GET "https://api.dpolab.com/api/v1/cookie-policy/versions" \
  -H "Authorization: Bearer {token}"

Respuesta (200):

{
  "success": true,
  "data": [
    {
      "id": "cpol_abc123",
      "version": 2,
      "status": "PUBLISHED",
      "legalEntityId": "ent_xyz789",
      "legalEntityName": "Ejemplo SpA",
      "domainId": "dom_abc",
      "domainName": "ejemplo.cl",
      "publishedAt": "2026-03-15T14:00:00Z",
      "createdAt": "2026-03-10T10:00:00Z",
      "updatedAt": "2026-03-15T14:00:00Z"
    }
  ]
}

Verificar cobertura

GET /api/v1/cookie-policy/check-coverage

Verifica si existe una politica de cookies publicada que cubra una combinacion de entidad legal y dominio. Busca la politica mas especifica disponible.

Roles: Todos

Query params:

ParamTipoDescripcion
legalEntityIdstringEntidad legal a verificar
domainIdstringDominio a verificar
curl -X GET "https://api.dpolab.com/api/v1/cookie-policy/check-coverage?domainId=dom_abc" \
  -H "Authorization: Bearer {token}"

Respuesta (200) — Cubierto:

{
  "success": true,
  "data": {
    "covered": true,
    "coveringPolicy": {
      "id": "cpol_abc123",
      "version": 2,
      "entityName": "Ejemplo SpA",
      "domainName": "ejemplo.cl"
    }
  }
}

Respuesta (200) — No cubierto:

{
  "success": true,
  "data": {
    "covered": false,
    "coveringPolicy": null
  }
}

Obtener politica por ID

GET /api/v1/cookie-policy/:id

Retorna el detalle completo de una version especifica.

Roles: Todos

curl -X GET https://api.dpolab.com/api/v1/cookie-policy/cpol_abc123 \
  -H "Authorization: Bearer {token}"

Actualizar politica

PUT /api/v1/cookie-policy/:id

Permite personalizar el contenido de una politica en estado DRAFT.

Roles: Owner, Admin, DPO

Body:

{
  "customIntro": "En Ejemplo SpA utilizamos cookies para mejorar tu experiencia...",
  "customSections": {
    "cookie_intro": {
      "enabled": true,
      "customContent": "Texto personalizado para la seccion...",
      "order": 1
    },
    "cookie_manage": {
      "enabled": false
    }
  }
}
CampoTipoRequeridoDescripcion
customIntrostringNoIntroduccion personalizada (max 5000 chars)
customSectionsobjectNoConfiguracion por seccion: enabled, customContent (max 10000 chars), order

Respuesta (200):

{
  "success": true,
  "data": { "id": "cpol_abc123" }
}
⚠️

Solo se pueden editar politicas en estado DRAFT. Para modificar una politica publicada, genera una nueva version.

Eliminar politica

DELETE /api/v1/cookie-policy/:id

Elimina permanentemente una politica en estado DRAFT.

Roles: Owner, Admin, DPO

curl -X DELETE https://api.dpolab.com/api/v1/cookie-policy/cpol_abc123 \
  -H "Authorization: Bearer {token}"

Respuesta (200):

{
  "success": true
}
⚠️

Solo se pueden eliminar politicas en estado DRAFT. Las politicas publicadas o archivadas no se pueden eliminar.

Publicar politica

POST /api/v1/cookie-policy/:id/publish

Publica la politica. Las politicas publicadas anteriormente en el mismo scope (entidad + dominio) se archivan automaticamente.

Roles: Owner, Admin, DPO

curl -X POST https://api.dpolab.com/api/v1/cookie-policy/cpol_abc123/publish \
  -H "Authorization: Bearer {token}"

Respuesta (200):

{
  "success": true,
  "data": {
    "id": "cpol_abc123",
    "status": "PUBLISHED"
  }
}

Codigos de error

CodigoHTTPDescripcion
VALIDATION_ERROR400Error en los datos enviados
NOT_DRAFT400La politica no esta en estado borrador
NOT_DELETABLE400Solo se pueden eliminar borradores
NOT_FOUND404Politica no encontrada
FEATURE_DISABLED403Modulo no disponible en el plan actual

Ver tambien