Enregistrer un consentement

POST /v1/users/{user_id}/consent-records · autorisation consent-records:write

Enregistre une acceptation obtenue dans votre propre canal (method = management_api). Le sujet est un document juridique (subject_type = document ; les finalités de consentement ne sont pas encore disponibles) et state vaut presented, accepted ou declined. La version, le hachage du contenu et la langue sont repris du document ; vous ne pouvez pas les fournir. occurred_at vaut par défaut la date et l'heure actuelles et ne peut pas être dans le futur ni dater de plus de 5 minutes. Les enregistrements sont en ajout seul : ils ne sont jamais modifiés ni supprimés.

Requête

Paramètres de chemin :

Champ Type Obligatoire Description
user_id string oui Identifiant de l'utilisateur (usr_…).

Corps JSON (les champs inconnus sont rejetés avec 400 unknown_field) :

Champ Type Obligatoire Description
Idempotency-Key header non Clé facultative (16 à 64 caractères) qui rend sûre une requête relancée.
subject_type string oui Uniquement document.
subject_id string oui Identifiant du document juridique (ldoc_…) vu par l'utilisateur.
state string oui presented, accepted ou declined.
application_id string | null non Application (app_…) ; si elle est omise et que le document est propre à une application, l'application du document est enregistrée.
occurred_at string (date-time) non Moment de l'événement ; par défaut la date et l'heure actuelles, pas dans le futur, au plus 5 minutes avant.

Réponse

201 Created avec l'enregistrement de consentement.

{
  "id": "crec_01j9xk3m7q8r2s4t6v8w0y2z4b",
  "user_id": "usr_01j9xk3m7q8r2s4t6v8w0y2z4c",
  "subject_type": "document",
  "subject_id": "ldoc_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "subject_version": "2026-10",
  "content_sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
  "locale": "en",
  "state": "accepted",
  "method": "management_api",
  "application_id": null,
  "occurred_at": "2026-10-05T09:31:12.004211Z"
}

Erreurs

HTTP code Quand
400 unknown_field Le corps contient un champ inconnu.
404 not_found L'utilisateur ou application_id n'existe pas dans cet environnement. L'extension resource indique lequel est manquant : user ou application.
415 unsupported_media_type Le type de contenu n'est pas application/json.
422 validation_failed Un champ est invalide : document inconnu (/subject_id, unknown_subject), subject_type: purpose (not_supported), un état non autorisé pour les documents, ou occurred_at hors plage.
401 unauthenticated L'identifiant est absent, invalide ou révoqué.
403 insufficient_permissions L'identifiant ne dispose pas de l'autorisation requise.
429 rate_limited La limite de débit a été dépassée ; réessayez après la période indiquée par Retry-After.
503 service_unavailable Une dépendance est temporairement indisponible ; réessayez après la période indiquée par Retry-After.

Exemple

curl -X POST https://api.eu.keenauth.com/v1/users/usr_01j9xk3m7q8r2s4t6v8w0y2z4c/consent-records \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"subject_type":"document","subject_id":"ldoc_01j9xk3m7q8r2s4t6v8w0y2z4a","state":"accepted"}'

Données personnelles

Cet endpoint traite des données personnelles : enregistrements de consentement. Données personnelles dans les API KeenAuth décrit ce qui est stocké, la durée de conservation et la manière dont elles sont supprimées. N'envoyez aucune catégorie particulière de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.