
# Onay kayıtlarını içe aktarın

`POST /v1/jobs/consent-imports` · izin `consent-records:write`

Yasal belgelerinizin, başka bir sistemde kaydedilmiş kabullerini içe aktarır; örneğin kullanıcıları KeenAuth'a taşıdığınızda. İstek eşzamanlıdır: tek bir işlemde 1–500 kayıt yazılır, dolayısıyla hepsi yazılır ya da hiçbiri yazılmaz. İçe aktarılan her kayıtta `method = import` bulunur ve `occurred_at` kaynak sistemdeki zamanı saklar. Sürüm, içerik karma değeri ve dil belgeden alınır; bunları siz sağlayamazsınız. İçe aktarılan kayıtlar, diğer tüm onay kayıtları gibi yalnızca eklenebilir. Şu anda alınmış tek bir kabulü kaydetmek için [Onay kaydı oluşturun](/docs/api/management/users/create-consent-record) bölümünü kullanın.

`Idempotency-Key` zorunludur. Aynı anahtar ve istekle yeniden deneme, aynı yanıtı (`Idempotent-Replayed: true` ile) döndürür ve hiçbir şeyi ikinci kez yazmaz.

## İstek

JSON gövdesi (bilinmeyen alanlar `400 unknown_field` ile reddedilir):

| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| `records` | object[] | evet | 1–500 kayıt, bu sırayla yazılır. |
| `records[].user_id` | string | evet | Kullanıcı kimliği (`usr_…`). |
| `records[].subject_type` | string | evet | Yalnızca `document`. |
| `records[].subject_id` | string | evet | Yasal belge kimliği (`ldoc_…`). |
| `records[].state` | string | evet | `presented`, `accepted` veya `declined`. |
| `records[].application_id` | string \| null | hayır | Uygulama (`app_…`); atlanır ve belge uygulamaya özgüyse belgenin uygulaması kaydedilir. |
| `records[].occurred_at` | string (date-time) | evet | Kaynak sistemde gerçekleştiği zaman; gelecekte olamaz. |

## Yanıt

`201 Created` ile yazılan kayıtlar (`records`) girdi sırasıyla döndürülür.

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

## Hatalar

| HTTP | code | Ne zaman |
|---|---|---|
| 400 | `malformed_request`, `unknown_field` | `Idempotency-Key` başlığı eksik veya hatalı biçimde, gövde geçerli JSON değil ya da bilinmeyen bir alan içeriyor. |
| 401 | `unauthenticated` | Kimlik bilgisi eksik, geçersiz veya iptal edilmiş. |
| 403 | `insufficient_permissions` | Kimlik bilgisinde gerekli izin yok. |
| 413 | `payload_too_large` | Gövde 1 MiB'tan büyük. |
| 415 | `unsupported_media_type` | İçerik türü `application/json` değil. |
| 422 | `validation_failed` | Bir kayıt geçersiz; `errors[].pointer` `/records/<index>/<field>`. Bilinmeyen kullanıcı `unknown_user`, bilinmeyen uygulama `unknown_application`, bilinmeyen belge `unknown_subject` hatasıdır; 1'den az veya 500'den fazla kayıt `out_of_range` ile `/records` hatasıdır. Hiçbir şey yazılmaz. |
| 422 | `idempotency_key_reuse` | `Idempotency-Key` farklı bir istekle kullanıldı. |
| 429 | `rate_limited` | Hız sınırı aşıldı; `Retry-After` süresinden sonra yeniden deneyin. |
| 503 | `service_unavailable` | Bir bağımlılık geçici olarak kullanılamıyor; `Retry-After` süresinden sonra yeniden deneyin. |

## Örnek

```bash
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`

## Kişisel veriler

Bu uç nokta kişisel veri, yani onay kayıtları içerir. [KeenAuth API'lerinde kişisel veriler](/docs/policies/personal-data) 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.
