Ir al contenido

Integración Server-to-Server (API REST)

La API permite que apruebe contratos/cookies directamente desde su backend, transmitiendo el consentimiento cifrado a nuestra bóveda.

Las solicitudes API deben incluir el encabezado HTTP X-API-Key con su clave API de sitio única del panel de HashEntry.

Todas las solicitudes POST deben firmarse con HMAC-SHA256 para garantizar la integridad de la solicitud y protección contra ataques de repetición. El SDK de JS lo maneja automáticamente; para integraciones del lado del servidor, debe implementar la firma manualmente.

EncabezadoDescripción
X-API-KeySu clave API del sitio
X-SignatureFirma HMAC-SHA256 de la solicitud canónica
X-TimestampMarca de tiempo Unix (segundos) — debe estar dentro de ±300s del tiempo del servidor
X-NonceUUID único por solicitud — previene ataques de repetición
1. timestamp = marca de tiempo Unix actual (segundos)
2. nonce = UUID aleatorio
3. bodyHash = SHA-256(cuerpo de solicitud como cadena JSON)
4. canonical = "{METHOD}\n{PATH}\n{timestamp}\n{nonce}\n{bodyHash}"
5. signature = HMAC-SHA256(canonical, apiKey)

Para integraciones backend automatizadas, puede usar el flujo S2S Auth que combina autenticación con clave API y tokens JWT Bearer.

  1. Cree un miembro con el rol api_user desde el panel de HashEntry (Configuración → Equipo → Invitar)
  2. El usuario API inicia sesión vía POST /api/v1/auth/login para obtener un token JWT
  3. Incluya ambos encabezados en las solicitudes S2S:
X-API-Key: he_live_xxx
Authorization: Bearer {jwt_token}
MétodoEndpointDescripción
POST/tool/v1/s2s/consentsRegistrar un consentimiento individual
POST/tool/v1/s2s/consents/batchRegistrar consentimientos en lote
GET/tool/v1/s2s/consents/exportExportar registros de consentimiento

Nota: El rol api_user está restringido solo al acceso API S2S — no se permite el inicio de sesión en el panel.

Endpoint: POST https://system.hashentry.com/tool/v1/consents

Encabezados Requeridos:

Content-Type: application/json
X-API-Key: TU_CLAVE_SECRETA_DE_API
X-Signature: {firma_hmac}
X-Timestamp: {marca_de_tiempo_unix}
X-Nonce: {uuid_unico}
{
"consent_type": "document_approval",
"decision": "accept",
"document_version_id": "uuid-politica-de-privacidad",
"ip_address": "192.168.1.5",
"metadata": {
"order_id": "ORD-54321"
}
}