> ## 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.

# Business Associate Agreement (BAA) akışı

> HIPAA Business Associate Agreement'ınızı Devotel ile tamamlayın: PHI kapsamını beyan edin, şablonu önizleyin, ismi yazarak e-imza ile imzalayın ve yürütülmüş kopyayı indirin.

# Business Associate Agreement (BAA)

Devotel Orbit üzerinden Protected Health Information (PHI) gönderen, saklayan veya işleyen kuruluşların kayıtlı bir Business Associate Agreement bulundurması gerekir. Platform, HIPAA modu etkinleştirilebilmeden önce BAA yolunun mevcut olmasını zorunlu kılar: PHI kapsama girdiğinde, gönderim anındaki kapı, yürütülmüş bir BAA kaydedilene kadar trafiği `HIPAA_BAA_REQUIRED` ile reddeder.

Bu kılavuz tüm yaşam döngüsünü kapsar: kanonik `baa_status` durumları, `/api/v1/compliance/baa` altındaki altı uç noktanın nasıl birbirine uyduğu, hangi rolün hangi uç noktayı çağırabildiği, bir BAA yürütüldüğünde neyin değiştiği ve yürütülmüş bir sözleşmenin platform varsayılanına nasıl geri döndürüleceği.

> Bu, **kiracıya ait bir HIPAA kontrolüdür** (tenant-owned): PHI'nin kapsamda olup olmadığına siz karar verirsiniz, sözleşmeyi bilinçli olarak yürütürsünüz ve yıllık süresi dolmadan yeniden yürütürsünüz. Devotel e-imza hattını sağlar — şablon oluşturma, yazılan imza yakalama, değişmez denetim sabitleme ve saklanan yürütülmüş PDF — ancak PHI'nin kapsamda olduğuna dair yasal belirleme size aittir.

***

## `baa_status` durumları

Kuruluşunuz her zaman dört durumdan birindedir; bu durum `GET /api/v1/compliance/baa` ile raporlanır:

| Durum          | Anlamı                                                                                                                                                                                |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `not_required` | Kuruluş, PHI'nin kapsamda olmadığını beyan etmiş (veya varsayılan olarak kabul etmiştir). Bu, her yeni kuruluş için varsayılandır.                                                    |
| `pending`      | PHI kapsamda (`hipaa_required = true`) ve BAA yürütülmeyi bekliyor. Yürütme formu bu durumdan kullanılabilir.                                                                         |
| `executed`     | Bir BAA imzalanmış ve bir yıllık süresi içindedir. HIPAA etkinleştirme ve PHI gönderim kapılarını karşılayan tek durum budur.                                                         |
| `expired`      | Yürütülmüş bir BAA, bir yıllık süresini geçirmiştir. Yeniden yürütülene kadar PHI gönderimleri tekrar kapsanır. Yeniden yürütme, süre dolmadan 60 gün önce kullanılabilir hale gelir. |

Yanıt ayrıca imzalayıcı ayrıntılarını ve süre dolma geri sayımını taşır:

```json theme={null}
{
  "baa_status": "executed",
  "baa_executed_at": "2026-08-10T14:22:31.410Z",
  "baa_template_version": "v1",
  "baa_signer_name": "Jane Roe",
  "baa_signer_email": "jane@example.com",
  "baa_pdf_gcs_url": "gs://…/baa/org_…/baa_….pdf",
  "hipaa_required": true,
  "expires_at": "2027-08-10T14:22:31.410Z",
  "days_until_expiry": 342
}
```

`hipaa_required`, durum hâlâ `not_required` iken açıldığında, okuma uç noktası kuruluşu otomatik olarak `pending` durumuna geçirir; böylece yürütme adımı ayrı bir çağrı olmadan açılır.

***

## Akış neden bir beyanla başlar

BAA akışı vardır çünkü HIPAA hesaplara değil, *kullanıma* uygulanır. Platform, her çalışma alanının PHI ile ilgilendiğini varsaymaz — kuruluş önce PHI'nin kapsamda olduğunu beyan eder; bu `hipaa_required` bayrağını kaldırır ve durumu `pending` durumuna taşır. Yürütme adımını açan bu beyandır; yürütme de sözleşmeyi tamamlar. Bu sıralama döngüsel bir bağımlılığı kapatır: HIPAA modu yürütülmüş bir BAA olmadan etkinleştirilemez, ancak panonun HIPAA modu henüz var olmadan BAA'yı *başlatmanın* bir yolu da gerekiyordu.

Hem `require` (PHI kapsamda) hem `decline` (PHI kapsamda değil), aktörü adlandıran bir `compliance.baa.*` denetim zinciri satırı yazar; yani beyanın kendisi kaydedilmiş bir yasal olaydır — tek kullanımlık bir ayar anahtarı değildir.

***

## Uç nokta akışı

Tüm yollar `/api/v1/compliance/baa` altında yaşar ve kimliği doğrulanmış bir oturum gerektirir. Aşağıdaki altı işlem tüm yaşam döngüsüdür; panonun **Ayarlar → Uyumluluk → BAA** sayfası tam olarak bu uç noktalarını çalıştırır.

### 1. Geçerli durumu oku

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/baa" \
  -H "Authorization: Bearer sk_live_..."
```

Herhangi bir `owner` veya `admin` okuyabilir. Bunu önce kullanın — kuruluşun beyan mı, yürütme mi, yeniden yürütme mi yoksa indirme mi yapması gerektiğini söyler.

### 2. Şablonu önizle

İmzalamadan önce kesinleşmiş sözleşme metnini gözden geçirin. `GET /api/v1/compliance/baa/template`, kuruluşunuzun yasal adı önceden doldurulmuş olarak oluşturulmuş şablonu döndürür. Yürütme zamanı alanları (zaman damgaları, belge referansı) ham yer tutucular yerine okunabilir işaretler olarak görünür ve imzalayıcı alanları, siz yazarken panonun canlı olarak doldurduğu boşluklardır.

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/baa/template?version=v1" \
  -H "Authorization: Bearer sk_live_..."
```

Yanıt:

```json theme={null}
{
  "version": "v1",
  "covered_entity_name": "Acme Health Ltd",
  "format": "markdown",
  "body": "# Business Associate Agreement\n\nThis Business Associate Agreement..."
}
```

### 3. PHI'nin kapsamda olduğunu beyan et

```bash theme={null}
curl -X POST "https://api.orbit.devotel.io/api/v1/compliance/baa/require" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "reason": "We began sending patient appointment reminders that contain PHI." }'
```

Bu, `hipaa_required = true` yapar ve bir `not_required` kuruluşunu `pending` durumuna taşır. Yürütme akışını açar — HIPAA modunu **etkinleştirmez**. İsteğe bağlı `reason` (en fazla 500 karakter) denetim satırına kaydedilir.

### 4. İsmi yazarak e-imza ile yürüt

Yürütme **yalnızca owner** içindir — bir click-wrap imzası kuruluşu bağlar, bu nedenle geliştirici düzeyi bir eylem değildir. İmzalayıcı, yasal adını `typed_attestation` alanına yeniden yazar ve sunucu bunun `signer_name` ile tam olarak eşleşmesini gerektirir; uyumsuzluk `400` ile reddedilir, bu da boş form otomatik gönderimlerini de engeller.

```bash theme={null}
curl -X POST "https://api.orbit.devotel.io/api/v1/compliance/baa/execute" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "signer_name": "Jane Roe",
    "signer_email": "jane@example.com",
    "typed_attestation": "Jane Roe"
  }'
```

| Alan                | Kural                                                                     |
| ------------------- | ------------------------------------------------------------------------- |
| `signer_name`       | İmzalayıcının yasal adı (2–200 karakter).                                 |
| `signer_email`      | Geçerli bir e-posta adresi.                                               |
| `typed_attestation` | `signer_name` ile **tam olarak eşleşmelidir**. Uyumsuzluk `400` döndürür. |
| `template_version`  | İsteğe bağlı. Geçerli kanonik sürüme varsayılan olarak ayarlanır.         |

Başarı durumunda sunucu:

1. Şablonu imzalayıcı ayrıntıları, yürütme zaman damgaları ve oluşturulmuş bir belge referansı ile oluşturur
2. Oluşturulmuş belgeyi kanonik yürütülmüş PDF olarak saklar
3. Kuruluşu imzalayıcı, şablon sürümü ve yürütme zaman damgası ile `executed` olarak damgalar ve süre dolma tarihini kaydeder (yürütme artı standart bir yıllık süre)
4. İmza yöntemi (`type_the_name`) ile birlikte denetim günlüğüne bir `compliance.baa.executed` girişi yazar — denetim girişi beyanın yasal kanıtıdır ve saklanan PDF kanonik belgedir

Yanıt, yeni durumla birlikte belge referansını döndürür:

```json theme={null}
{
  "baa_status": "executed",
  "baa_executed_at": "2026-08-24T09:41:12.008Z",
  "baa_template_version": "v1",
  "baa_signer_name": "Jane Roe",
  "baa_signer_email": "jane@example.com",
  "baa_id": "baa_9f2k…",
  "expires_at": "2027-08-24T09:41:12.008Z",
  "days_until_expiry": 365,
  "hipaa_required": true
}
```

Yürütme, dakikada birkaç istekle hızla sınırlıdır; bu bilinçli bir yasal eylemdir, betikli bir döngü değildir. (Click-wrap'in yasal temeli için bkz. [Ses imzaları](/compliance/voice-signatures).)

### 5. Yürütülmüş kopyayı indir

Bir BAA kayıtlı olduğunda, herhangi bir `owner` veya `admin`, kayıtlarınız, bir müşterinin denetimi veya bir düzenleyici için onu getirebilir:

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/baa/download" \
  -H "Authorization: Bearer sk_live_..."
```

Yanıt, **24 saat** geçerli bir indirme URL'si taşır:

```json theme={null}
{
  "url": "https://storage.googleapis.com/…/baa/org_…/baa_….pdf?X-Goog-Signature=…",
  "expires_in_seconds": 86400
}
```

URL'yi bu pencere içinde paylaşın veya dosyayı kendiniz indirip arşivleyin. Henüz yürütülmüş bir BAA yoksa uç nokta `404` döndürür.

### 6. Platform varsayılanına geri dön

Geri döndürme, kayıtlı sözleşmeyi kaldırır ve kuruluşu `not_required` durumuna döndürür. **Yalnızca owner** içindir ve yalnızca yürütülmüş veya süresi dolmuş bir BAA üzerinde çağrılabilir — ve yalnızca HIPAA modu devre dışı bırakıldıktan sonra; böylece aktif bir HIPAA çalışma alanı kendi kanıtını sessizce çözemez.

```bash theme={null}
curl -X POST "https://api.orbit.devotel.io/api/v1/compliance/baa/revert" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Organization no longer processes PHI; returning to default posture." }'
```

Yürütülmüş BAA'nın denetim geçmişi ve saklanan PDF'si **korunur** — geri döndürme aktif durumu kaldırır, kanıtı silmez. PHI gerçekten kapsamdan çıktığında veya bir çalışma alanını temiz bir tabana sıfırlamak için bunu kullanın; "PHI yok" beyanı değiştiğinde ise [decline](#decline-no-phi-in-scope) kullanın.

### Decline: PHI'nin kapsamda olmadığını beyan etme

`POST /api/v1/compliance/baa/decline` (owner veya admin, isteğe bağlı `reason`), PHI'nin kapsamda olmadığını kaydeder ve bir kuruluş kapsama alındıktan sonra gönderim anındaki kapıyı kaldırır. Kayıtlı bir BAA'ya dokunmayı reddeder — bir decline yürütülmüş bir sözleşmeyi sökemez; bunun için `revert` vardır. `require` ve `decline` simetrik beyan anahtarları olduğundan, decline yapan bir admin, PHI tekrar kapsama girerse gereksinimi daha sonra geri yükleyebilir.

***

## Roller ve denetim zinciri

Okuma, önizleme, indirme ve beyan uç noktaları `owner` veya `admin` kabul eder. Yasal bir sözleşmeyi bağlayan veya çözen iki eylem — `execute` ve `revert` — yalnızca `owner` içindir.

| Eylem                                                                    | `owner` | `admin` | `developer` / `viewer` / `billing` |
| ------------------------------------------------------------------------ | :-----: | :-----: | :--------------------------------: |
| BAA durumunu oku                                                         |   Evet  |   Evet  |                Hayır               |
| Şablonu önizle                                                           |   Evet  |   Evet  |                Hayır               |
| Yürütülmüş kopyayı indir                                                 |   Evet  |   Evet  |                Hayır               |
| PHI'yi kapsamda (`require`) / kapsamda değil (`decline`) olarak beyan et |   Evet  |   Evet  |                Hayır               |
| BAA'yı yürüt                                                             |   Evet  |  Hayır  |                Hayır               |
| Varsayılana geri dön                                                     |   Evet  |  Hayır  |                Hayır               |

Her yazma, kuruluşun denetim günlüğüne bir `compliance.baa.*` girişi ekler — require'da `compliance.baa.hipaa_required`, decline'da `compliance.baa.declined`, execute'ta `compliance.baa.executed`, revert'te `compliance.baa.reverted` — aktörü, nedeni ve (yürütmede) şablon sürümü ile imza yöntemini taşır. Beyanın yasal kanıtı bu yalnızca ekleme yapan zincirdir, geçerli durum alanı değildir. Bunu panoda [Ayarlar → Denetim günlüğü](/guides/audit-log) altında inceleyebilirsiniz.

***

## Bir BAA yürütüldüğünde ne değişir

BAA'yı yürütmek iki şey yapar:

1. **PHI gönderim kapısını kaldırır.** `hipaa_required` doğru iken ve süresi içinde bir BAA kayıtlı olmadığında, PHI'ye dokunan giden gönderimler `422 HIPAA_BAA_REQUIRED` ile reddedilir. Yürütülmüş bir BAA bu reddi kaldırır. (Kapının kararı ve fail-closed davranışı [Gönderim kapıları](/compliance/send-gates#baa-the-hipaa-send-gate) altında belgelenmiştir.)
2. **HIPAA modunun engelini kaldırır.** HIPAA modunun etkinleştirilmesi `baa_status = "executed"` gerektirir; yürütmeden önce denemek `403` döndürür. HIPAA modu açıldığında, [HIPAA uyumluluk kontrolleri](/compliance/hipaa) — PHI erişim günlüğü, veri saklama ve geri kalanlar — çalışma alanına uygulanır.

**Değiştirmediği:** BAA yürütmek tek başına HIPAA modunu etkinleştirmez, işlemenizin yasal olup olmadığını belirlemez ve kendi HIPAA programınızı ikame etmez. Sözleşme, platformun size ticari iş ortağı olarak yükümlülüklerini kaydeder; PHI'nin kapsamda olduğuna karar vermek, PHI'ye yakın izleyicileri belirlemek ve saklamayı yapılandırmak kiracıya ait kalır. Parçaların nasıl birbirine uyduğu için bkz. [HIPAA katılımı](/guides/hipaa-onboarding) ve [HIPAA uyumluluk kontrolleri](/compliance/hipaa).

***

## Pano akışı

Aynı yaşam döngüsü, API'ye dokunmadan **Ayarlar → Uyumluluk → BAA** altında kullanılabilir:

1. **Durum kartı** — geçerli `baa_status`, yürütme tarihi, imzalayıcı ve süre dolmaya 60 gün kaldığında bir yeniden yürütme bandı gösterir
2. **Şablon önizlemesi** — kuruluşunuzun adı doldurulmuş olarak oluşturulmuş sözleşme
3. **Beyan formu** — imzalayıcının adı ve e-postası ile isim yazma imza alanı; durum `pending` olduğunda owner'lara gösterilir
4. **İndirme** — yürütüldükten sonra yürütülmüş kopyaya bir bağlantı; her istekte yeni bir 24 saatlik URL ile

PHI henüz beyan edilmemişse, sayfa `require` beyanını gönderen ve yürütme bölmesini hemen açan bir "PHI işlemeye başla" çağrı eylemi sunar — yukarıdaki API akışını yansıtır.

***

## SSS

**Yürütülmüş bir BAA ne kadar sürer?**
Yürütmeden itibaren bir yıl. Durum yanıtı `expires_at` ve `days_until_expiry` taşır; süre dolmaya 60 gün kaldığında pano bir yeniden yürütme bandı gösterir. Süre dolduktan sonra durum `expired` okur ve aynı akışla yeniden yürütülene kadar PHI gönderim kapısı tekrar kapanır.

**Bir admin, gönderimlerin engelini kaldırmak için BAA'yı yürütebilir mi?**
Hayır — yürütme (ve geri döndürme) kuruluşu bağladığı için yalnızca owner içindir. Bir admin PHI'yi gerekli veya declined olarak işaretleyebilir, durumu okuyabilir, şablonu önizleyebilir ve yürütülmüş kopyayı indirebilir.

**`decline` ile `revert` arasındaki fark nedir?**
`decline`, PHI'nin kapsamda olmadığını kaydeder ve gönderim kapısını kaldırır; yürütülmüş bir BAA'ya dokunmayı reddeder. `revert`, yürütülmüş veya süresi dolmuş bir sözleşmeyi tamamen kaldırır, kuruluşu `not_required` durumuna döndürürken denetim geçmişini ve saklanan PDF'yi korur. Her ikisi de denetim zincirinde girişler bırakır.

**Uç noktalar eski bir JSONB durum aynası kabul ediyor mu?**
`/api/v1/compliance/baa` akışı kanonik yoldur. Eski `PUT /api/v1/settings/hipaa/baa` aynası ([HIPAA uyumluluk kontrolleri](/compliance/hipaa) altında belgelenmiştir) yalnızca göç öncesi kiracılar için bir geri dönme yoludur; bir kuruluşun `baa_status` değeri olduğunda, kapılar kanonik sütunu okur ve aynayı yoksayar.

***

*Son güncelleme: Eylül 2026*
*BAA ile ilgili sorular için iletişim: [compliance@devotel.io](mailto:compliance@devotel.io)*
