Bir onay kaydet
POST /v1/users/{user_id}/consent-records · izin consent-records:write
Kendi kanalınızda elde ettiğiniz bir onayı kaydeder (method = management_api). Konu bir yasal belgedir (subject_type = document; onay amaçları henüz kullanılamıyor) ve state değeri presented, accepted veya declined olabilir. Sürüm, içerik karma değeri ve yerel ayar belgeden alınır; bunları siz sağlayamazsınız. occurred_at varsayılan olarak şimdiki zamandır; gelecekte olamaz ve 5 dakikadan eski olamaz. Kayıtlar yalnızca eklenebilir: hiçbir zaman güncellenmez veya silinmez.
İstek
Yol parametreleri:
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
user_id |
string | evet | Kullanıcı kimliği (usr_…). |
JSON gövdesi (bilinmeyen alanlar 400 unknown_field ile reddedilir):
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
Idempotency-Key |
header | hayır | Yeniden denenen isteğin güvenli olmasını sağlayan isteğe bağlı anahtar (16-64 karakter). |
subject_type |
string | evet | Yalnızca document. |
subject_id |
string | evet | Kullanıcının gördüğü yasal belge kimliği (ldoc_…). |
state |
string | evet | presented, accepted veya declined. |
application_id |
string | null | hayır | Uygulama (app_…); atlanır ve belge uygulamaya özelse, belgenin uygulaması kaydedilir. |
occurred_at |
string (date-time) | hayır | Olayın gerçekleştiği zaman; varsayılan olarak şimdi, gelecekte olamaz, en fazla 5 dakika eski olabilir. |
Yanıt
Onay kaydıyla birlikte 201 Created.
{
"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"
}
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 400 | unknown_field |
Gövde bilinmeyen bir alan içeriyorsa. |
| 404 | not_found |
Kullanıcı veya application_id bu ortamda yoksa. Eksik olanı resource uzantısı belirtir: user veya application. |
| 415 | unsupported_media_type |
İçerik türü application/json değilse. |
| 422 | validation_failed |
Bir alan geçersizse: bilinmeyen belge (/subject_id, unknown_subject), subject_type: purpose (not_supported), belgeler için izin verilmeyen bir durum veya occurred_at aralık dışındaysa. |
| 401 | unauthenticated |
Kimlik bilgisi eksik, geçersiz veya iptal edilmişse. |
| 403 | insufficient_permissions |
Kimlik bilgisinde gerekli izin yoksa. |
| 429 | rate_limited |
Hız sınırı aşıldıysa; Retry-After süresinden sonra yeniden deneyin. |
| 503 | service_unavailable |
Bir bağımlılık geçici olarak kullanılamıyorsa; Retry-After süresinden sonra yeniden deneyin. |
Örnek
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"}'
Kişisel veriler
Bu uç nokta kişisel veri içerir: onay kayıtları. KeenAuth API'lerinde kişisel veriler neyin saklandığını, ne kadar süre tutulduğunu ve nasıl silindiğini açıklar. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.