> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# GDPR İşleme Kaydı (ROPA + DPIA)

> GDPR Mad.30 İşleme Faaliyetleri Kayıtlarınızı belgeleyin ve Mad.35 Veri Koruma Etki Değerlendirmelerini, dışa aktarılabilir denetim envanteri olan tenant'a ait bir kayıtta tutun.

# GDPR İşleme Kaydı (ROPA + DPIA)

**ROPA** (İşleme Faaliyetleri Kaydı) ve **DPIA** (Veri Koruma Etki
Değerlendirmesi), GDPR'ın öz-dokümantasyon tarafıdır. Bir DSAR, bir veri
sahibinin sizden ne istediğini kapsarken, kayıt (register) organizasyonunuzun
kendisi hakkında yazması gerekenleri kapsar — herhangi bir talep gelmeden
önce.

<Warning>
  Bu sayfa Orbit'in platform kontrollerini açıklar. **Hukuki tavsiye
  değildir.** Veri sorumlusu mu yoksa işleyen mi olduğunuz, hangi
  faaliyetlerin yüksek riskli olduğu ve kaydınızın ne içermesi gerektiği,
  işlemenize bağlıdır. Nitelikli hukuk danışmanınızla doğrulayın.
</Warning>

Aşağıdaki tüm endpoint'ler
`https://api.orbit.devotel.io/api/v1/compliance` kökündedir.

***

## Mad.30 ve Mad.35'in talep ettikleri

**GDPR Mad.30**, her veri sorumlusunun (ve her işleyenin) işleme
faaliyetlerinin bir kaydını tutmasını gerektirir. Kayıt, her faaliyet için
**amacı**, **veri sahipleri ve veri kategorilerini**, **alıcıları**,
herhangi bir **sınır ötesi aktarımı ve güvencesini**, **saklama süresini**
ve uygulanan **güvenlik önlemlerini** adlandırır. Bir denetim otoritesi
kaydı talep üzerine isteyebilir (Mad.30(4)).

**GDPR Mad.35**, yüksek riskli olması muhtemel işlemeden önce bir **DPIA**
gerektirir — önemli etkileri olan otomatik karar verme, özel kategori
verilerin büyük ölçekli işlenmesi veya halka açık alanların sistematik
izlenmesi. Değerlendirme; gereklilik ve orantılılığı, tanımlanan riskleri,
hafifletmeleri, kalan riski ve sonucu kaydeder.

Orbit, aldığınız her faaliyeti Mad.35(3) tetikleyicilerine karşı tarar ve
bir DPIA'nın gerekli olup olmadığını işaretler — ve işaretlenen bir
faaliyetin aktivasyonunu, DPIA kaydedilene kadar engeller (bkz.
[Durum yaşam döngüsü](#status-lifecycle)).

## Kayıt sizindir — Orbit onu tutar, asla doldurmaz

Kayıt, **sizin** organizasyonunuzun işlemesini belgeler. Orbit depolamayı,
durum yaşam döngüsünü, DPIA taramasını ve denetime hazır dışa aktarımı
sağlar — yasal dayanağınızın ne olduğuna veya saklama sürenizin ne olması
gerektiğine asla karar vermez. Her faaliyet kendi ekibiniz tarafından
oluşturulur, ilerletilir ve değerlendirilir; bu, düzenleyicilerin Mad.30'u
okuma biçimiyle eşleşir: kayıt, veri sorumlusunun kendi bilgisini
yansıtmalıdır.

Her faaliyet, alım sırasında insan tarafından okunabilir bir referans alır
(örneğin `ROPA-2026-0004`), böylece onu iç politikalarınızda ve bir
otoriteyle yazışmalarınızda alıntılayabilirsiniz.

***

## İşleme faaliyetlerini kaydetme

### Bir faaliyet oluşturun

`POST /compliance/processing-activities` — bir admin veya owner API anahtarı
gerektirir. Faaliyet `draft` durumunda oluşur.

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/processing-activities \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Customer support call recordings",
    "description": "Voice recordings of inbound support calls used for quality review and dispute resolution.",
    "purpose": "Quality assurance and dispute handling for support interactions.",
    "controller_role": "controller",
    "lawful_basis": "legitimate_interests",
    "data_subject_categories": ["customers", "prospects"],
    "data_categories": ["audio recordings", "caller number", "agent notes"],
    "special_categories": [],
    "recipients": ["support operations team"],
    "cross_border_transfers": false,
    "retention_period": "90 days after call, then deleted",
    "security_measures": ["encryption at rest", "role-restricted access", "audit logging"],
    "large_scale": false,
    "automated_decision_making": false,
    "systematic_monitoring": false
  }'
```

`201 Created` ile faaliyeti ve bir `screening` bloğunu döndürür:

```json theme={null}
{
  "id": "processingActivity_7kf2…",
  "reference": "ROPA-2026-0004",
  "status": "draft",
  "screening": {
    "required": false,
    "triggers": []
  }
}
```

| Alan | Tip | Notlar |
| - | - | - |
| `name` | string | **Zorunlu.** 2–200 karakter. |
| `description` | string | **Zorunlu.** 2–8000 karakter. |
| `purpose` | string | **Zorunlu.** Mad.30(1)(b). |
| `controller_role` | enum | `controller` (varsayılan), `joint_controller`, `processor`. |
| `lawful_basis` | enum | **Zorunlu.** `consent`, `contract`, `legal_obligation`, `vital_interests`, `public_task`, `legitimate_interests` (GDPR Mad.6(1)) değerlerinden biri. |
| `data_subject_categories` | string\[] | Mad.30(1)(c) — veri kimin hakkında. |
| `data_categories` | string\[] | Mad.30(1)(c) — veri nedir. |
| `special_categories` | string\[] | Mevcut Mad.9 özel kategorileri — varlıkları DPIA taramasını besler. |
| `recipients` | string\[] | Mad.30(1)(d) — alıcı kategorileri. |
| `cross_border_transfers` | boolean | Mad.30(1)(e) — EEA dışına aktarımlar. |
| `transfer_safeguard` | string | Dayanılan Mad.44–50 güvencesi (SCC'ler, yeterlilik, BCR'ler…). |
| `retention_period` | string | Mad.30(1)(f) — serbest metin politika referansı. |
| `security_measures` | string\[] | Mad.30(1)(g) / Mad.32 teknik ve organizasyonel önlemler. |
| `large_scale` | boolean | Mad.35 taramasını besler. |
| `automated_decision_making` | boolean | Mad.35(3)(a) tetikleyicisi. |
| `systematic_monitoring` | boolean | Mad.35(3)(c) tetikleyicisi. |

### DPIA taraması

Her `POST`, `GET`, `PATCH` ve `PUT …/dpia` yanıtı bir `screening` bloğu
içerir. Mad.35(3) tetikleyicilerini deterministik olarak işaretler:

* `automated_decision_making: true` → yasal veya benzer şekilde önemli
  etkileri olan otomatik karar verme (Mad.35(3)(a)).
* `systematic_monitoring: true` → halka açık bir alanın sistematik izlenmesi
  (Mad.35(3)(c)).
* Boş olmayan `special_categories` ile birlikte `large_scale: true` → özel
  kategorilerin büyük ölçekli işlenmesi (Mad.35(3)(b)).
* Tek başına bir özel kategori veya büyük ölçek bayrağı yine bir yüksek risk
  göstergesi olarak yüzeye çıkar (Mad.9 / Mad.35(1)).

`screening.required: true`, faaliyet `active` durumuna geçmeden önce bir
DPIA kaydedilmesi gerektiği anlamına gelir.

### Durum yaşam döngüsü

Bir faaliyet şu yolu izler:

`draft` → `active` → `under_review` → `retired`

`PATCH /compliance/processing-activities/{id}`, değiştirilebilir alanları
günceller ve/veya durumu ilerletir:

```bash theme={null}
curl -X PATCH https://api.orbit.devotel.io/api/v1/compliance/processing-activities/processingActivity_7kf2… \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{ "status": "active" }'
```

Taraması bir DPIA gereksinimi işaretleyen bir faaliyeti aktive etme, sonucu
`do_not_proceed` olmayan bir DPIA kaydedilene kadar `409 Conflict` ile
reddedilir. Kayıtı proaktif yapan budur — yüksek riskli işleme, belgelenmeden
canlıya geçemez.

### Kaydı okuyun

* `GET /compliance/processing-activities` — tam kayıt artı bir özet: duruma
  göre sayılar, taramanın DPIA gerekli olarak işaretlediği faaliyet sayısı
  (`dpiaRequired`), bunların kaçının hâlâ kayıtlı DPIA'sı olmadığı
  (`dpiaMissing`) ve kaç kayıtlı DPIA'nın yüksek kalan riskle sonuçlandığı
  (`highResidualRisk`).
* `GET /compliance/processing-activities/{id}` — taraması ve — kaydedildiği
  anda — DPIA'sı ile tek bir faaliyet.

***

## Bir DPIA kaydetme

`PUT /compliance/processing-activities/{id}/dpia` — bir admin veya owner API
anahtarı gerektirir. Faaliyet için Mad.35 değerlendirmesini kaydeder (veya
değiştirir).

```bash theme={null}
curl -X PUT https://api.orbit.devotel.io/api/v1/compliance/processing-activities/processingActivity_7kf2…/dpia \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "necessity_proportionality": "Call recording is limited to support lines; retention is capped at 90 days; access is restricted to the support operations team.",
    "risks_identified": ["Unauthorised access to recordings", "Retention beyond stated purpose"],
    "likelihood": "medium",
    "severity": "high",
    "mitigations": ["Role-restricted access", "Automated deletion at 90 days", "Access audit trail"],
    "residual_risk": "medium",
    "dpo_consulted": true,
    "outcome": "proceed_with_safeguards"
  }'
```

| Alan | Tip | Notlar |
| - | - | - |
| `necessity_proportionality` | string | **Zorunlu.** Mad.35(7)(b). |
| `risks_identified` | string\[] | Veri sahiplerinin hak ve özgürlüklerine yönelik riskler. |
| `likelihood` | enum | **Zorunlu.** `low`, `medium`, `high`. |
| `severity` | enum | **Zorunlu.** `low`, `medium`, `high`. |
| `mitigations` | string\[] | Mad.35(7)(d) — riskleri ele almak için öngörülen önlemler. |
| `residual_risk` | enum | Hafifletmelerden sonra kalan risk. Atlandığında olasılık × şiddet matris derecesine düşer. |
| `dpo_consulted` | boolean | Mad.35(2). |
| `outcome` | enum | Mad.35(7)(d) kararı: `proceed`, `proceed_with_safeguards`, `consult_authority`, `do_not_proceed`. Varsayılan `proceed_with_safeguards`. |

`consult_authority`, yüksek bir kalan risk hafifletilemediğinde ödenen
Mad.36 ön danışma görevine karşılık gelir. `do_not_proceed` sonucu,
faaliyetin aktivasyonunu engeller — bunu yalnızca değerlendirme, işlemenin
yasal olarak devam edemeyeceği sonucuna vardığında bırakın.

Her DPIA, onu kimin ve ne zaman değerlendirdiğini kaydeder (`assessedAt`,
`assessedBy`).

***

## Mad.30 envanterini dışa aktarma

`GET /compliance/processing-activities/inventory`, tüm kaydı denetime hazır
biçimde serileştirilmiş olarak döndürür — bir DPO'nun bir Mad.30(4)
talebini bir denetim otoritesine sunduğu veya bir denetçinin kanıt
isteğine eklediği ek.

```bash theme={null}
curl https://api.orbit.devotel.io/api/v1/compliance/processing-activities/inventory \
  -H "X-API-Key: dv_live_sk_..."
```

```json theme={null}
{
  "generatedAt": "2026-08-24T09:30:00.000Z",
  "recordCount": 1,
  "records": [
    {
      "reference": "ROPA-2026-0004",
      "name": "Customer support call recordings",
      "purpose": "Quality assurance and dispute handling for support interactions.",
      "controllerRole": "controller",
      "lawfulBasis": "legitimate_interests",
      "dataSubjectCategories": ["customers", "prospects"],
      "dataCategories": ["audio recordings", "caller number", "agent notes"],
      "specialCategories": [],
      "recipients": ["support operations team"],
      "crossBorderTransfers": false,
      "transferSafeguard": null,
      "retentionPeriod": "90 days after call, then deleted",
      "securityMeasures": ["encryption at rest", "role-restricted access", "audit logging"],
      "status": "draft",
      "dpiaRequired": false,
      "dpiaTriggers": [],
      "dpiaRecorded": false,
      "dpiaOutcome": null,
      "residualRisk": null
    }
  ]
}
```

Her kayıt DPIA durumunu taşır — `dpiaRequired`, `dpiaRecorded`,
`dpiaOutcome`, `residualRisk` — böylece envanter, yüksek riskli işlemenin
tarandığının ve değerlendirildiğinin kanıtı olarak da işlev görür.

***

## Erişim kontrolü

Okumalar (`GET`), organizasyonunuzun kimliği doğrulanmış her üyesine
açıktır. Yazmalar (`POST`, `PATCH`, `PUT …/dpia`) **owner** ve **admin**
rolleriyle sınırlıdır — kayıt bir düzenleyici kontroldür, uyumluluk yazma
yüzeyinin geri kalanıyla (ihlal vakaları, saklama politikası) aynı çizgide.
Her alım, güncelleme ve DPIA kaydı; aktör, faaliyet referansı ve sonuçla
birlikte denetim günlüğünüze yazılır.

***

## İlgili referanslar

* [Bir GDPR Duruşunu Uçtan Uca Kurma](/compliance/gdpr-posture-guide) —
  kaydın bir aşamasını belgelediği sıra.
* [Veri Sahibi Erişim Talepleri (DSAR)](/compliance/dsar) — GDPR'ın diğer
  yarısı: GDPR, CCPA/CPRA, LGPD, PDPA ve DPDP genelinde veri sahibi erişim,
  silme ve taşınabilirlik taleplerini alma, doğrulama ve yerine getirme.
* [Onay Yönetimi](/compliance/consent-management) — bir faaliyetin yasal
  dayanak olarak dayanabileceği onay durumunu kaydedin ve arayın.
* [Opt-Out & Bastırma Listeleri](/compliance/opt-out-suppression) — silme
  ve opt-out sonuçlarının bastırmaya nasıl aktığı.
* [API Referansı → Uyumluluk](/api-reference/endpoints/compliance) — tam
  istek/yanıt şemaları (canlı API'den yeniden üretilir).
