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

# Gönderim Kapıları: BAA, Sessiz Saatler, DNC, RND, RMD ve Acil Durdurma

> Orbit'in gönderim öncesinde uyguladığı uyumluluk kapıları: HIPAA Business Associate Agreement kapısı, sessiz saatler, Do-Not-Call, FCC Reassigned Numbers, Robocall Mitigation ve tercih kontrolleri.

# Gönderim Kapıları

Onay ve engelleme listelerinin ötesinde, **gönderim anında** çalışan
çeşitli düzenleyici kontroller vardır. Orbit bunları *gönderim kapıları*
(send gates) olarak gruplandırır: her biri, bir mesajı veya aramayı
gönderilmeden önce tutabilir veya düşürebilir. Bu sayfa, doğrudan
yapılandırdığınız veya sorguladığınız kapıları kapsar.

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

<Warning>
  DNC ve RND taramaları ulusal kayıtlara karşı yapılır — DNC için FTC
  federal ve eyalet Do-Not-Call kayıtları ile TCR Universal Opt-Out,
  RND için ise FCC Reassigned Numbers Database. Bunlar, tenant bazında
  bağlayacağınız veya entegre edeceğiniz akışlar değildir: bir kayıt
  anlık görüntüsü (snapshot) mevcut olduğunda, platform bunu merkezi
  olarak tutar ve kendi entegrasyonunuzdan okumaz. Ancak tarama
  **varsayılan olarak kapalıdır** — her kapı, kendisi için gerçekten bir
  anlık görüntü senkronize edilene kadar `federal_feeds_synced` /
  `feed_synced` değerini `false` olarak raporlar ve organizasyon
  bazında bir opt-in anahtarı arkasında kalır. Her ikisi de true olana
  kadar bu endpoint'ler devre dışı bir yanıt döndürür ve yalnızca
  federal bir kayıtta bulunan bir numara temiz olarak okunur (her
  kapının tam davranışı için aşağıya bakın). Bu sayfa hukuki tavsiye
  değildir — TCPA/FCC yükümlülüklerinizi hukuk danışmanınızla
  doğrulayın.
</Warning>

***

## BAA — HIPAA gönderim kapısı

Organizasyonunuz **HIPAA moduna** opt-in yaptığında (PHI işliyorsunuz),
her giden gönderim — bire bir mesajlar ve kampanya toplu gönderimleri
alike — imzalanmış, geçerli bir **Business Associate Agreement (BAA)**
dosyada olana kadar engellenir. BAA'yı imzalamak HIPAA akışındaki ilk
adımdır; gönderim kapısı, atlatılamayan bir yaptırım güvencesidir.

Engellenen bir gönderim, `reason` değeri `pending`, `expired` veya
`not_signed` olan `422 HIPAA_BAA_REQUIRED` döndürür ve hata yükündeki
`docs_url`, BAA imzalama akışına işaret eder. `500 HIPAA_BAA_GATE_DB_FAIL`,
kapı BAA durumunu doğrulayamadığında döner — kontrol edemediği bir PHI
iletimini riske atmak yerine **kapalı** (gönderimler engellenen) olarak
başarısız olur. Biraz sonra yeniden deneyin; sorun devam ederse desteğe
başvurun.

<Note>
  Kapı aynı zamanda denetim izini de kontrol eder: BAA durum okuması
  doğrulanamadığında, gönderim engellenir ve başarısızlık sessizce
  geçiştirilmek yerine PHI denetimine kaydedilir.
</Note>

İmzalanmış bir BAA'nin **bir yıllık süresi** vardır; gönderim
anında süre dolma imzalama zaman damgasından yeniden türetilir, bu
yüzden günlük süre-dolma kontrolleri cron'u henüz çalıştırılmamış olsa
bile, süresi geçen bir BAA tekrar engeller.

Organizasyonunuz HIPAA modunu beyan etmediyse, bu kapı işlem yapmaz
— yalnızca PHI içerdiğini bildiren organizasyonları inceler. Tam akış
için
[HIPAA onboarding: from BAA to audit-ready](/guides/hipaa-onboarding) sayfasına bakın.

***

## Sessiz saatler

Sessiz saatler kuralları, bir alıcının izin verilen yerel saatleri
dışında ulaşacak mesaj ve aramaları engeller (örneğin TCPA'nın 08:00–21:00
penceresi). Orbit, alıcının yerel saatini telefon numarasının bölgesinden
çözümler.

`GET /quiet-hours/preview`, bir gönderimin şu an izinlenip
izinlenmediğini ve bir sonraki izinlenen zamanın ne zaman olduğunu
söyler — pencereyi planlarken kullanın.

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/quiet-hours/preview?phone=%2B14155550101&channel=sms" \
  -H "Authorization: Bearer $ORBIT_API_KEY"
```

```json theme={null}
{
  "allowed_now": false,
  "local_hour": 22,
  "local_timezone": "America/Los_Angeles",
  "window_start_local": "08:00",
  "window_end_local": "21:00",
  "next_allowed_at": "2026-06-09T15:00:00.000Z",
  "reason": "outside_window",
  "channel": "sms"
}
```

| Query param         | Notes                                                                        |
| ------------------- | ---------------------------------------------------------------------------- |
| `phone`             | E.164 (required).                                                            |
| `channel`           | `sms`, `mms`, `whatsapp`, `rcs`, `viber`, `telegram`, `voice`, `email`, etc. |
| `timezone_override` | Optional IANA timezone if you already know it.                               |

Sessiz saatler gating'i **kanal ve organizasyon bazında opt-in** —
her kanal, anahtarı kapalı olarak gelir, bu yüzden yeni bir tenant'ın
SMS, WhatsApp ve diğer gönderimleri, bu kanal için kapıyı etkin
kılanana kadar sessiz saatler tarafından tutulmaz. Orbit panelinde
organizasyonunuzun sessiz saatler ayarlarından kanal başına açın;
listelenen pencereler böylece otomatik olarak uygulanır.

Etkinleştirildikten sonra, pencereler SMS/voice için 08:00–21:00
(alıcının yerel saati) ve WhatsApp/Meta kanalları için 09:00–21:00'dır
— kendi `start_hour`/`end_hour` değerlerinizi belirlemedikçe. E-posta,
faks ve push, sessiz saatler gating'den geçmez.

<Note>
  **US voice TCPA penceresi: geçici aramalar için danışma, kampanyalar
  için kesin blok.** ABD (+1) alıcılara giden aramalarda Orbit, federal
  TCPA 08:00–21:00 alıcının yerel saati penceresini her aramada
  değerlendirir — ancak sonucu ne şekilde uyguladığı, arama yoluna
  göre değişir:

  * **Panel üzerinden geçici 1:1 arama varsayılan olarak danışmadır.**
    Pencere dışı bir arama, yapılandırılmış bir danışma logu kaydeder
    ancak yine de gönderilir. Bu aramaları tutmak için organizasyonunuzun
    voice sessiz saatler anahtarını etkinleştirin; etkinleştirmek,
    08:00–21:00 penceresini kesin bir tutma olarak uygular.
  * **Kampanya ve dialer ses trafiği, tenant ayarlarınıza bakılmaksızın
    pencere dışında her zaman kesin olarak engellenir.** Pencere dışında
    (alıcının yerel 08:00–21:00) yapılan bir kampanya veya dialer araması,
    `422 TCPA_FEDERAL_DIALING_WINDOW_BLOCKED` ile reddedilir — otomatik
    veya toplu ses için tenant bazında opt-out yoktur ve voice sessiz
    saatler anahtarı bunu gevşetmez. Alıcının saat dilimi çözümlenemezse,
    arama kapalı olarak başarısız olur ve aynı şekilde engellenir.

  Kampanya ve dialer aramalarını, alıcının yerel 08:00–21:00 penceresi
  içinde planlayın — bir sonraki izinlenen zamanı bulmak için
  `GET /quiet-hours/preview` kullanın.
</Note>

***

## DNC — Do Not Call

`GET /dnc/check`, bir numarayı aramadan veya mesaj atmadan önce numarayı
bir Do-Not-Call listesinde olup olmadığını raporlar. Uçtan uca duruş
— kaynaklar, güncellik ve açık başarısızlık (fail-open) uyarısı — için
[DNC Scrubbing](/compliance/dnc-scrub) sayfasına bakın.

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/dnc/check?phone=%2B14155550101" \
  -H "Authorization: Bearer $ORBIT_API_KEY"
```

Etkinleştirildiğinde şu çıktı döner:

```json theme={null}
{
  "on_dnc": true,
  "source": "suppression_list",
  "jurisdictions": ["US"],
  "federal_feeds_synced": false
}
```

`source`, numarayı hangi katmanın işaretlediğini belirtir (kontak DNC
işaretiniz, DNC listesi, engelleme listesi veya bir onay opt-out).

<Note>
  Kapı **yalnızca hiçbir Do-Not-Call feed senkronize edilmediğinde**
  uygulanır. Bu durumda endpoint, `dnc_sync_enabled` organizasyon
  ayarının arkasındadır (varsayılan kapalı) ve siz opt-in yapana kadar
  `403 DNC_SYNC_NOT_ENABLED` döner — Orbit'in sizin için federal bir
  kayıt taramadığını kabul ederek, bu yüzden FTC listesinde sadece olan
  bir numara `on_dnc: false` olarak okunur.

  Orbit federal, eyalet veya TCR anlık görüntüsünü senkronize ettiğinde,
  `dnc_sync_enabled` kapısı atlanır: endpoint doğrudan hizmet verir ve
  `federal_feeds_synced` `true` döner. Sonucu gerçekten federal bir
  taramanın desteklediğini doğrulamak için bu alanı her yanıtta okuyun.
</Note>

### Batch ön-tarama

`POST /dnc/scrub`, tek seferde aynı zinciri bir liste üzerinde çalıştırır
— istek başına 500 E.164 numarasına kadar, isteğe bağlı `country`
yargı filtresiyle. Numara başına yanıtlar ve `on_dnc` / `clear`
özet sayımları döner, organizasyon başına dakikada 10 istek hız
sınırına tabidir ve yukarıda açıklanan kapının arkasındadır.

```bash theme={null}
curl -X POST "https://api.orbit.devotel.io/api/v1/compliance/dnc/scrub" \
  -H "Authorization: Bearer $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "phones": ["+14155550101", "+442071838750"] }'
```

Kampanya akışı için — gating, parçalama, işaretli numaraları engelleme
listesine yönlendirme ve yeniden tarama cadence —
[Batch DNC Pre-Flight Scrubbing](/guides/dnc-preflight-scrub) sayfasına bakın.

### Bir gated aramanın sorun giderilmesi

DNC endpoint'lerinden biri `403 DNC_SYNC_NOT_ENABLED` ile tutduğunda:

1. **Kapı durumunu kontrol etmeden doğrulayın** — `GET /dnc/availability`
   çağırın. Her iki endpoint'in uyguladığı tam kapıyı raporlar:
   `available`, sizin `org_opt_in` ve `federal_feeds_synced`.
2. **Organizasyon onaylamasını etkinleştirin** — panel uyumluluk
   ayarlarınızda `dnc_sync_enabled` anahtarını açın. İşaret organizasyon
   başına ve kapalı olarak başarısız olur: hiç ayarlanmamış bir işaret,
   boolean `true` yerine string veya sayı olarak saklanan bir değer veya
   başarısız olan bir ayar okuması — tümü OFF olarak çözümlenir — uyumluluk
   ayarlarına hiç girmemiş bir organizasyon her zaman 403 alır.
3. **Veya anlık görüntüyü bekleyin** — platform bir federal, eyalet veya
   TCR feed'ini senkronize ettiğinde kapı kendiliğinden kalkar ve
   `federal_feeds_synced` `true`'a döner; onaylama artık sorgulamaz.
4. **Benzerleri ayırt edin** — `401` kimlik doğrulama, `422` hatalı biçim
   telefon, `/dnc/scrub` üzerinde `429` ise dakikada 10 istek hız sınırıdır,
   kapı değildir.

Tam gezinti
[Troubleshooting: DNC pre-flight 403](/troubleshooting/dnc-check-gated) sayfasında.

***

## RND — Reassigned Numbers Database

ABD telefon numaraları yeni kişilere yeniden tahsis edilir. FCC'nin
**Reassigned Numbers Database**, bir numaranın onay aldığınız tarihten
*sonra* bağlanıp bağlanmadığını kontrol etmenize izin verir — yanlış
kişiye mesaj atmamak veya aramamak için bir "güvenli liman".

`GET /rnd/check`, `phone` ve `consent_date` (`YYYY-MM-DD`) alır:

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/rnd/check?phone=%2B14155550101&consent_date=2025-01-15" \
  -H "Authorization: Bearer $ORBIT_API_KEY"
```

```json theme={null}
{
  "status": "no_data",
  "safe_harbor": false,
  "last_disconnect_date": null,
  "consent_date": "2025-01-15",
  "feed_synced": false,
  "reason": "FCC Reassigned Numbers Database has no permanent-disconnect record for this number; no safe harbor — contact at your own risk."
}
```

`feed_synced` `false` iken bu, endpoint'in döndüreceği tek yanıttır,
`phone` ve `consent_date` ne olursa olsun — henüz kayıtlı bağlantı
tarihi yoktur, bu yüzden her karar `no_data`'ya düşer.

`status`, `yes`, `no` veya `no_data` değerlerinden biridir — FCC
veritabanının `(phone, consent_date)` çifti için kararı:

| `status`  | `safe_harbor` | Anlam                                                                                                                                       |
| --------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `yes`     | `false`       | Numara, `consent_date`'ten **sonra** kalıcı olarak bağlanmış ve yeniden tahsis edilmiş olabilir. Güvenli liman yok — iletişime geçmeyin.    |
| `no`      | `true`        | `consent_date`'ten sonra kalıcı bağlantı yok. FCC yeniden-tahsis güvenli limanı geçerli — iletişime geçmek güvenli.                         |
| `no_data` | `false`       | Bu numara için veritabanında kalıcı bağlantı kaydı yok veya feed henüz senkronize edilmedi. Güvenli liman yok — kendi riskinizle ilerleyin. |

`safe_harbor`, yalnızca `status` `no` olduğunda `true`'dır.
`last_disconnect_date`, kayıtlı en son kalıcı bağlantı tarihidir
(hiçbiri yoksa `null`), ve `feed_synced`, RND feed yutma yapılandırılana
kadar `false`'tur — `false` iken her karar `no_data`'dır.

`rnd_scrub_enabled` arkasındadır (varsayılan kapalı); devre dışı iken
`403 RND_SCRUB_NOT_ENABLED` döner.

### RND taramasını etkinleştirme ve devre dışı bırakma

`rnd_scrub_enabled` işaretini kontrol etmek için `PUT /api/v1/compliance/rnd/settings` kullanın:

```bash theme={null}
curl -X PUT "https://api.orbit.devotel.io/api/v1/compliance/rnd/settings" \
  -H "Authorization: Bearer $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true}'
```

**Etkinleştirme, HTTP 409 `RND_FEED_NOT_CONFIGURED` ile engellenir** —
FCC Reassigned Numbers Database feed'i (SomosGov'un reassigned.us feed'i)
dağıtımınıza bağlanana kadar. Feed yutulmadan önce özelliği açmak, gerçek
bir yeniden-tahsis numarası taraması yapmayan bir uyumluluk kontrolü
oluşturur — işareti çevirirsiniz, ancak her `/rnd/check` sorgusu yine
`no_data` döner. 409 engeli, bu sahte koruma hissini önler.

Devre dışı bırakma (`enabled: false`), henüz feed bağlanmamış olsa bile
her zaman izinlidir.

***

## RMD — Robocall Mitigation Database

ABD ses kökenlileri, STIR/SHAKEN durumlarını ve azaltma planlarını
açıklayan bir **Robocall Mitigation Database** kaydında bulunmalıdır.
Orbit, yapılandırmanızı saklar ve takip eder.

* `GET /rmd` — kaydınızı, `renewal_deadline` ve `action_required` ile
  bir `recertification` bloğuyla okuyun.
* `POST /rmd` — yapılandırmayı oluşturun veya güncelleyin.
* `POST /rmd/submit` → durum `submitted`.
* `POST /rmd/certify` → durum `active`.
* `POST /rmd/remediation` (bir `reason` ile) → durum
  `remediation_required`.
* `POST /rmd/resolve` → tekrar `active`.
* `POST /rmd/withdraw` → durum `withdrawn`.

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/rmd \
  -H "Authorization: Bearer $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "company_name": "Acme Communications Inc",
    "business_address": "1 Market St, San Francisco, CA",
    "stir_shaken_status": "partial",
    "mitigation_plan": "Known-customer vetting + traceback cooperation…",
    "contact_name": "Jordan Lee",
    "contact_email": "compliance@acme.example"
  }'
```

`stir_shaken_status`, `complete`, `partial` veya `none`'dır. Bir
`mitigation_plan`, durum `complete` olmadıkça **zorunludur**. Yaşam
döngüsü `draft → submitted → active → remediation_required → active |
withdrawn` şeklindedir.

***

## Acil durdurma

Acil durdurma, tüm giden SMS, MMS, ses ve dialer trafiğini anında
durduran **organizasyon genelinde bir kill switch**'dir — bir olay
sırasında (yanlış yapılandırılmış bir kampanya, ele geçirilmiş bir anahtar,
bir içerik hatası) kullanın. Tam operatör runbook için
[acil durdurma kılavuzuna](/guides/compliance-emergency-stop) bakın.

```bash theme={null}
# Activate
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/emergency-stop/activate \
  -H "Authorization: Bearer $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Suspected list contamination — pausing all sends" }'

# Check
curl https://api.orbit.devotel.io/api/v1/compliance/emergency-stop \
  -H "Authorization: Bearer $ORBIT_API_KEY"

# Deactivate
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/emergency-stop/deactivate \
  -H "Authorization: Bearer $ORBIT_API_KEY"
```

`GET /emergency-stop`, mevcut `active` işaretini `activated_at`,
`activated_by` ve `reason` ile birlikte döndürür. Etkinleştirme ve
devre dışı bırakma bir admin/owner anahtarı gerektirir.

<Warning>
  Acil durdurma etkinken, organizasyonun tüm giden SMS, MMS, ses ve
  dialer kampanya trafiği engellenir. İşlem bazlı **Verify/OTP** gönderimleri
  ve e-posta, acil durdurma tarafından **gating edilmez** — ayrı teslim
  yollarında çalışır, bu yüzden anahtar etkinken bir kontak giriş kodu
  hâlâ alabilir. Bunları da duraklatmanız gerekiyorsa, ilgili Verify
  profilini veya e-posta göndericisini devre dışı bırakın. Olay
  çözüldükten sonra durdurmayı derhal devre dışı bırakın.
</Warning>

***

## Tercih merkezi

**Tercih merkezi**, bir kontakın giriş yapmadan kendi kanal
opt-in'lerini, mesaj sıklığını ve (etkinse) veri silme isteğini
yönettiği kamuya açık, token imzalı bir sayfadır. Güncellemeler,
onay, engelleme ve STOP-fence'e doğrudan akar.

Bir kez yapılandırın, ardından kontak başına bir bağlantı oluşturun. Tam
gezinti — her yapılandırma alanı, bağlantı yerleşimi ve güncelleme
akışı yüzeyleri —
[tercih merkezi kılavuzunda](/guides/preference-center-opt-out-page):

* `POST /preference-center` (admin/owner) — marka, sunulan `channels`,
  sıklık seçenekleri ve GDPR-delete anahtarını ayarlayın.
* `GET /preference-center` — mevcut yapılandırmayı okuyun.
* `POST /preference-center/link` ile `{ "contactId": "cnt_…" }` —
  kontaka e-posta veya kısa mesaj için imzalı bir bağlantı üretin
  (HMAC-SHA256, 30 günlük TTL).

Kontak, ardından tercihlerini görüntülemek ve güncellemek için kamusal
bağlantıyı (`GET`/`PUT /compliance/preferences/{token}`) kullanır. Burada
opt-out yapmak bir onay iptali kaydeder, engelleme girişi ekler ve
STOP-fence'i ayarlar; opt-in geri alır.

<Warning>
  Tercih merkezinden silme istemek, yalnızca eski bir GDPR silme isteği
  kaydeder — kontakı silme için işaretler ancak takip edilen DSAR hattını
  **başlatmaz**. SLA saati, çözümlenmiş veri dışa aktarımı veya Article-17
  silme sertifikası yoktur. SLA takibi olan bir silme hakkı isteği dosyalamak,
  kontakın verilerini dışa aktarmak ve bir silme sertifikası üretmek için
  DSAR endpoint'ini kullanın (`POST /compliance/dsar`, yalnızca
  owner/admin) — bakınız
  [Data Subject Access Requests](/compliance/dsar).
</Warning>

***

## Ülke kuralları

`GET /country-rules`, bu kapıların arkasındaki salt-okunur düzenleyici
referanstır — ülke ve kanal başına izin verilen gönderici türlerini,
Sender-ID kaydının `none` / `recommended` / `required` olup olmadığını,
STOP-kelime gereksinimlerini, iki yönlü destek, DLR desteği ve varsayılan
throughput'u raporlar.

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/country-rules?channel=sms&region=EU" \
  -H "Authorization: Bearer $ORBIT_API_KEY"
```

Bir pazarda başlatmadan önce her hedefin ne gerektirdiğini anlamak için
kullanın — bu referansı okuma alan-alan kılavuz için bakınız
[Country Compliance Requirements](/compliance/country-requirements).

***

## İlgili referanslar

* [Compliance Posture FAQ](/compliance/posture-faq) — "Anahtarı
  açtım — neden henüz hiçbir şey engellenmedi?" ve bu sayfadaki her kapı
  için açık başarısızlık ve kapalı başarısızlık özeti.

* [TCPA Known-Litigator Gate](/compliance/tcpa-known-litigator) — platformun
  TCPA profesyonel davacılar listesine karşı alıcı-köken kontrolü, tenant
  anahtarı, onaylı-atlatma denetim izi ve açık başarısızlık modu ile.

* [Configure Your Tenant's Posture Before the First Send](/compliance/tenant-posture-first-run) —
  bu kapıları yapılandırma sırasında izleyen, her biri için varsayılan ve
  sonuçlarla birlikte runbook.

* [US State Calling Windows](/compliance/state-calling-windows) — federal
  arama penceresi üzerine eyalet başına mini-TCPA katmanları ve bir
  blokenin bir yasaya kadar nasıl izlendiği.

* [Country Compliance Requirements](/compliance/country-requirements) —
  ülke başına gönderici türleri, kayıt ve dokümantasyon.

* [Restricted & Prohibited Industries](/compliance/restricted-industries) —
  hangi sektörler ve içerikler kısıtlıdır veya yasaktır.

* [Voice Destination Auto-Blocks](/compliance/voice-destination-auto-blocks) —
  trafik pompalama veya Wangiri patlamasında uygulanan otomatik hedef başına
  ses blokları ve bu numaraya meşru bir arama reddedilmeden önce bunları
  nereden okuyacağınız.

* [Opt-Out & Suppression Lists](/compliance/opt-out-suppression) —
  DNC ve tercih merkezinin beslediği engelleme katmanı.

* [Consent Management](/compliance/consent-management) — tercih merkezi
  tarafından güncellenen onay kayıtları.

* [Sender-ID Registration](/compliance/sender-id-registration) — `country-rules`'ün
  gerekli olduğunu raporladığı kayıt.

* [API Reference → Compliance](/api-reference/endpoints/compliance) — tam
  istek/yanıt şemaları (canlı API'den yeniden üretilir).
