同意を記録する
POST /v1/users/{user_id}/consent-records · 権限 consent-records:write
お客様の独自チャネルで取得した同意を記録します(method = management_api)。対象は法的文書です(subject_type = document。同意の目的はまだ利用できません)。state には presented、accepted、declined を指定します。バージョン、コンテンツのハッシュ、ロケールは文書から取得されるため、指定できません。occurred_at の既定値は現在時刻です。未来の時刻や、5 分より前の時刻は指定できません。同意の記録は追記のみで、更新や削除はされません。
リクエスト
パスパラメーター:
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
user_id |
string | はい | ユーザー ID(usr_…)。 |
JSON ボディ(不明なフィールドは 400 unknown_field で拒否されます):
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
Idempotency-Key |
header | いいえ | 再試行されたリクエストを安全にするための任意のキー(16〜64 文字)。 |
subject_type |
string | はい | document のみ。 |
subject_id |
string | はい | ユーザーが確認した法的文書の ID(ldoc_…)。 |
state |
string | はい | presented、accepted、declined のいずれか。 |
application_id |
string | null | いいえ | アプリケーション(app_…)。省略され、文書がアプリケーション固有の場合は、文書のアプリケーションが記録されます。 |
occurred_at |
string (date-time) | いいえ | 同意が行われた日時。既定値は現在時刻で、未来ではなく、5 分より前ではない必要があります。 |
レスポンス
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"
}
エラー
| HTTP | code | 発生条件 |
|---|---|---|
| 400 | unknown_field |
ボディに不明なフィールドが含まれています。 |
| 404 | not_found |
ユーザーまたは application_id がこの環境に存在しません。resource 拡張により、どちらが見つからないかがわかります(user または application)。 |
| 415 | unsupported_media_type |
コンテンツタイプが application/json ではありません。 |
| 422 | validation_failed |
フィールドが無効です。文書が不明(/subject_id、unknown_subject)、subject_type: purpose(not_supported)、文書では許可されない state、または occurred_at が範囲外です。 |
| 401 | unauthenticated |
認証情報がないか、無効または取り消されています。 |
| 403 | insufficient_permissions |
認証情報に必要な権限がありません。 |
| 429 | rate_limited |
レート制限を超えました。Retry-After の期間が経過してから再試行してください。 |
| 503 | service_unavailable |
依存先が一時的に利用できません。Retry-After の期間が経過してから再試行してください。 |
例
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"}'
個人データ
このエンドポイントは個人データ(同意記録)を扱います。KeenAuth API の個人データでは、保存される内容、保持期間、削除方法について説明しています。どのフィールドにも特別な種類の個人データ(健康、生体情報、宗教、政治的意見、性的指向)を送信しないでください。