Eine Zustimmung erfassen
POST /v1/users/{user_id}/consent-records · Berechtigung consent-records:write
Erfasst eine Zustimmung, die Sie über Ihren eigenen Kanal eingeholt haben (method = management_api). Der Gegenstand ist ein Rechtsdokument (subject_type = document; Zustimmungszwecke sind noch nicht verfügbar) und state ist presented, accepted oder declined. Version, Inhalts-Hash und Sprache werden aus dem Dokument übernommen; Sie können sie nicht angeben. occurred_at ist standardmäßig jetzt und darf weder in der Zukunft liegen noch mehr als 5 Minuten zurückliegen. Zustimmungsdatensätze sind nur anhängbar: Sie werden nie aktualisiert oder gelöscht.
Anfrage
Pfadparameter:
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
user_id |
string | ja | Benutzer-ID (usr_…). |
JSON-Body (unbekannte Felder werden mit 400 unknown_field abgelehnt):
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
Idempotency-Key |
header | nein | Optionaler Schlüssel (16–64 Zeichen), mit dem ein wiederholter Request sicher ist. |
subject_type |
string | ja | Nur document. |
subject_id |
string | ja | ID des Rechtsdokuments (ldoc_…), das der Benutzer gesehen hat. |
state |
string | ja | presented, accepted oder declined. |
application_id |
string | null | nein | Anwendung (app_…); wenn weggelassen und das Dokument anwendungsspezifisch ist, wird die Anwendung des Dokuments erfasst. |
occurred_at |
string (date-time) | nein | Zeitpunkt des Ereignisses; Standard ist jetzt, nicht in der Zukunft, höchstens 5 Minuten alt. |
Antwort
201 Created mit dem Zustimmungsdatensatz.
{
"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"
}
Fehler
| HTTP | code | Wann |
|---|---|---|
| 400 | unknown_field |
Der Body enthält ein unbekanntes Feld. |
| 404 | not_found |
Der Benutzer oder application_id existiert in dieser Umgebung nicht. Die Erweiterung resource gibt an, welches fehlt: user oder application. |
| 415 | unsupported_media_type |
Der Content-Type ist nicht application/json. |
| 422 | validation_failed |
Ein Feld ist ungültig: unbekanntes Dokument (/subject_id, unknown_subject), subject_type: purpose (not_supported), ein für Dokumente nicht erlaubter Status oder occurred_at außerhalb des Bereichs. |
| 401 | unauthenticated |
Die Anmeldeinformation fehlt, ist ungültig oder wurde widerrufen. |
| 403 | insufficient_permissions |
Der Anmeldeinformation fehlt die erforderliche Berechtigung. |
| 429 | rate_limited |
Das Ratenlimit wurde überschritten; versuchen Sie es nach Ablauf von Retry-After erneut. |
| 503 | service_unavailable |
Eine Abhängigkeit ist vorübergehend nicht verfügbar; versuchen Sie es nach Ablauf von Retry-After erneut. |
Beispiel
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"}'
Personenbezogene Daten
Dieser Endpunkt verarbeitet personenbezogene Daten: Zustimmungsdatensätze. Personenbezogene Daten in den KeenAuth-APIs beschreibt, was gespeichert wird, wie lange es aufbewahrt wird und wie es gelöscht wird. Übermitteln Sie in keinem Feld besondere Kategorien personenbezogener Daten (Gesundheit, biometrische Daten, Religion, politische Meinungen, sexuelle Orientierung).