Importer des enregistrements de consentement
POST /v1/jobs/consent-imports · autorisation consent-records:write
Importe les acceptations de vos documents juridiques qui ont été enregistrées dans un autre système, par exemple lorsque vous migrez des utilisateurs vers KeenAuth. La requête est synchrone : de 1 à 500 enregistrements sont écrits dans une seule transaction, de sorte que soit tous sont écrits, soit aucun ne l'est. Chaque enregistrement importé comporte method = import, et occurred_at conserve l'heure du système source. La version, le hachage du contenu et la langue sont repris du document ; vous ne pouvez pas les fournir. Les enregistrements importés sont en ajout seul, comme tous les autres enregistrements de consentement. Pour enregistrer une seule acceptation obtenue à l'instant, utilisez Enregistrer un consentement.
Idempotency-Key est obligatoire. Une nouvelle tentative avec la même clé et la même requête renvoie la même réponse (avec Idempotent-Replayed: true) et n'écrit rien une seconde fois.
Requête
Corps JSON (les champs inconnus sont rejetés avec 400 unknown_field) :
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
records |
object[] | oui | De 1 à 500 enregistrements, écrits dans cet ordre. |
records[].user_id |
string | oui | Identifiant de l'utilisateur (usr_…). |
records[].subject_type |
string | oui | Uniquement document. |
records[].subject_id |
string | oui | Identifiant du document juridique (ldoc_…). |
records[].state |
string | oui | presented, accepted ou declined. |
records[].application_id |
string | null | non | Application (app_…) ; si ce champ est omis et que le document est propre à une application, l'application du document est enregistrée. |
records[].occurred_at |
string (date-time) | oui | Moment de l'événement dans le système source ; ne doit pas être dans le futur. |
Réponse
201 Created avec les enregistrements écrits (records), dans l'ordre de la requête.
{
"imported_count": 1,
"records": [
{
"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": "import",
"application_id": null,
"occurred_at": "2025-03-14T08:00:00Z"
}
]
}
Erreurs
| HTTP | code | Quand |
|---|---|---|
| 400 | malformed_request, unknown_field |
L'en-tête Idempotency-Key est absent ou mal formé, le corps n'est pas du JSON valide, ou il contient un champ inconnu. |
| 401 | unauthenticated |
Les identifiants sont absents, invalides ou révoqués. |
| 403 | insufficient_permissions |
Les identifiants ne disposent pas de l'autorisation requise. |
| 413 | payload_too_large |
Le corps dépasse 1 Mio. |
| 415 | unsupported_media_type |
Le type de contenu n'est pas application/json. |
| 422 | validation_failed |
Un enregistrement est invalide ; errors[].pointer vaut /records/<index>/<field>. Un utilisateur inconnu donne unknown_user, une application inconnue unknown_application, un document inconnu unknown_subject ; moins de 1 ou plus de 500 enregistrements donne out_of_range à /records. Rien n'est écrit. |
| 422 | idempotency_key_reuse |
La Idempotency-Key a été utilisée avec une autre requête. |
| 429 | rate_limited |
La limite de débit a été dépassée ; réessayez après la période Retry-After. |
| 503 | service_unavailable |
Une dépendance est temporairement indisponible ; réessayez après la période Retry-After. |
Exemple
curl -X POST https://api.eu.keenauth.com/v1/jobs/consent-imports \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"records":[{"user_id":"usr_01j9xk3m7q8r2s4t6v8w0y2z4c","subject_type":"document","subject_id":"ldoc_01j9xk3m7q8r2s4t6v8w0y2z4a","state":"accepted","occurred_at":"2025-03-14T08:00:00Z"}]}'
CLI : keenauth jobs consent-imports create --data records.json
Données personnelles
Ce point de terminaison contient des données personnelles : des 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.