동의 기록 가져오기

POST /v1/jobs/consent-imports · 권한 consent-records:write

다른 시스템에 기록된 법적 문서 동의 내역을 가져옵니다. 예를 들어 사용자를 KeenAuth로 이전할 때 사용합니다. 요청은 동기식입니다. 1–500개의 기록이 하나의 트랜잭션에서 기록되므로, 전부 기록되거나 하나도 기록되지 않습니다. 가져온 모든 기록에는 method = import가 있으며, occurred_at는 원본 시스템의 시간을 유지합니다. 버전, 콘텐츠 해시, 로케일은 문서에서 가져오며 직접 지정할 수 없습니다. 가져온 기록은 다른 모든 동의 기록과 마찬가지로 추가 전용입니다. 지금 얻은 단일 동의를 기록하려면 동의 기록 생성을 사용하십시오.

Idempotency-Key가 필요합니다. 같은 키와 요청으로 재시도하면 같은 응답(Idempotent-Replayed: true 포함)이 반환되며, 아무것도 다시 기록되지 않습니다.

요청

JSON 본문(알 수 없는 필드는 400 unknown_field로 거부됩니다):

필드 유형 필수 설명
records object[] 예 1–500개의 기록, 이 순서대로 기록됩니다.
records[].user_id string 예 사용자 ID(usr_…).
records[].subject_type string 예 document만 가능합니다.
records[].subject_id string 예 법적 문서 ID(ldoc_…).
records[].state string 예 presented, accepted 또는 declined.
records[].application_id string | null 아니요 애플리케이션(app_…). 생략되고 문서가 애플리케이션별이면 문서의 애플리케이션이 기록됩니다.
records[].occurred_at string (date-time) 예 원본 시스템에서 발생한 시각. 미래일 수 없습니다.

응답

201 Created와 함께 기록된 항목(records)을 입력 순서대로 반환합니다.

{
  "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"
    }
  ]
}

오류

HTTP 코드 발생 시점
400 malformed_request, unknown_field Idempotency-Key 헤더가 없거나 형식이 잘못되었거나, 본문이 유효한 JSON이 아니거나, 알 수 없는 필드가 있습니다.
401 unauthenticated 자격 증명이 없거나, 잘못되었거나, 취소되었습니다.
403 insufficient_permissions 자격 증명에 필요한 권한이 없습니다.
413 payload_too_large 본문이 1 MiB보다 큽니다.
415 unsupported_media_type 콘텐츠 유형이 application/json가 아닙니다.
422 validation_failed 기록이 잘못되었습니다. errors[].pointer는 /records/<index>/<field>입니다. 알 수 없는 사용자는 unknown_user, 알 수 없는 애플리케이션은 unknown_application, 알 수 없는 문서는 unknown_subject입니다. 기록이 1개 미만이거나 500개를 초과하면 out_of_range이며 /records에서 발생합니다. 아무것도 기록되지 않습니다.
422 idempotency_key_reuse Idempotency-Key가 다른 요청에 사용되었습니다.
429 rate_limited 요청 한도를 초과했습니다. Retry-After 기간 후에 다시 시도하십시오.
503 service_unavailable 종속 서비스를 일시적으로 사용할 수 없습니다. Retry-After 기간 후에 다시 시도하십시오.

예제

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

개인 정보

이 엔드포인트는 개인 정보인 동의 기록을 다룹니다. KeenAuth API의 개인 정보에서 저장되는 내용, 보관 기간, 삭제 방법을 설명합니다. 어떤 필드에도 민감한 개인 정보(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.