Aller au contenu

Intégration Server-to-Server (API REST)

L’API vous permet d’approuver des contrats directement depuis votre Backend et de transmettre les consentements de manière sécurisée au système HashEntry.

Les requêtes API doivent inclure l’en-tête HTTP X-API-Key avec votre clé API de site unique depuis le tableau de bord HashEntry.

Toutes les requêtes POST doivent être signées avec HMAC-SHA256 pour garantir l’intégrité des requêtes et la protection contre les attaques par rejeu. Le SDK JS gère cela automatiquement ; pour les intégrations côté serveur, vous devez implémenter la signature manuellement.

En-têteDescription
X-API-KeyVotre clé API du site
X-SignatureSignature HMAC-SHA256 de la requête canonique
X-TimestampHorodatage Unix (secondes) — doit être dans ±300s du temps serveur
X-NonceUUID unique par requête — empêche les attaques par rejeu
1. timestamp = horodatage Unix actuel (secondes)
2. nonce = UUID aléatoire
3. bodyHash = SHA-256(corps de la requête en chaîne JSON)
4. canonical = "{METHOD}\n{PATH}\n{timestamp}\n{nonce}\n{bodyHash}"
5. signature = HMAC-SHA256(canonical, apiKey)

Pour les intégrations backend automatisées, vous pouvez utiliser le flux S2S Auth qui combine l’authentification par clé API avec des tokens JWT Bearer.

  1. Créez un membre avec le rôle api_user via le tableau de bord HashEntry (Paramètres → Équipe → Inviter)
  2. L’utilisateur API se connecte via POST /api/v1/auth/login pour obtenir un token JWT
  3. Incluez les deux en-têtes dans les requêtes S2S :
X-API-Key: he_live_xxx
Authorization: Bearer {jwt_token}
MéthodeEndpointDescription
POST/tool/v1/s2s/consentsEnregistrer un consentement unique
POST/tool/v1/s2s/consents/batchEnregistrer des consentements en lot
GET/tool/v1/s2s/consents/exportExporter les enregistrements de consentement

Note : Le rôle api_user est limité à l’accès API S2S uniquement — la connexion au panneau n’est pas autorisée.

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

En-têtes Requis :

Content-Type: application/json
X-API-Key: VOTRE_CLÉ_API_SECRÈTE
X-Signature: {signature_hmac}
X-Timestamp: {horodatage_unix}
X-Nonce: {uuid_unique}
{
"consent_type": "cookie_consent",
"decision": "accept",
"document_version_id": "politique-de-cookies-uuid"
}