# Doğrulama raporu

`GET https://ulawk.com/api/v1/sirketler/{sirket_id}/dogrulama-raporu.pdf`

Şirketin kaynaklı profilinden mühürlü doğrulama raporu (PDF). Her bilgi kaynak ilanın künyesini (tarih · sayı · sayfa) ve birebir alıntıyı taşır; kapakta mühür: DOGRULANDI, KISMI ya da DOGRULANMADI. Rapor kimliği içerikten türetilir; aynı içerik aynı kimliği verir ve `?rapor=DR-…` ile ücretsiz yeniden indirilir. `?bicim=json` aynı içeriği JSON, `?bicim=html` yazdırılabilir sayfa olarak verir. `?tam_zorunlu=1`: mühür DOGRULANDI değilse 409 `veri_eksik`. Yanıt başlıkları: X-Ulawk-Rapor-Kimligi, X-Ulawk-Muhur, X-Ulawk-Icerik-Ozeti, X-Ulawk-Veri-Durumu.

## Kimlik doğrulama

Her istekte iki başlık: `X-API-Key` ve `X-API-Secret`.

## Yol parametreleri

- `sirket_id` (integer | string, zorunlu) — Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).

## Sorgu parametreleri

- `dil` (string) — en → İngilizce rapor (varsayılan Türkçe).
- `rapor` (string) — Önceki raporun kimliği: aynı anlık görüntü yeniden çizilir.
- `bicim` (string) — Çıktı biçimi.
- `tam_zorunlu` (string) — 1 → yalnız DOGRULANDI raporu ver, değilse 409.
- `indir` (string) — 1 → PDF'i dosya olarak indir.

## Yanıt

### 200 — Rapor (PDF; ?bicim=json → JSON; ?bicim=html → HTML).

- `rapor_kimligi` (string, zorunlu) — DR-XXXX-XXXX-XXXX: içerik özetinden; aynı içerik → aynı kimlik.
- `muhur` (string, zorunlu) Değerler: DOGRULANDI, KISMI, DOGRULANMADI.
- `muhur_ad` (string, zorunlu)
- `icerik_ozeti` (string, zorunlu) — İçeriğin SHA-256 özeti.
- `uretim_tarihi` (string (date), zorunlu)
- `bekleyen_bolumler[]` (string[], zorunlu)
- `veri` (DogrulamaVerisi, zorunlu) — Raporun dil bağımsız anlık görüntüsü; tarihler GG.AA.YYYY.
- `veri.surum` (integer, zorunlu)
- `veri.deneme` (boolean, zorunlu)
- `veri.sirket` (SirketOzet, zorunlu)
- `veri.sirket.id` (integer | string, zorunlu) — Şirket kimliği: gerçek anahtarda sayısal (ör. 1234); deneme anahtarında DENEME-… metni.
- `veri.sirket.unvan` (string, null, zorunlu) — Ticaret unvanı.
- `veri.sirket.mudurluk` (string, null, zorunlu) — Sicil müdürlüğü (ör. İSTANBUL).
- `veri.sirket.sicil_no` (string, null, zorunlu) — Ticaret sicil numarası.
- `veri.profil_hazir` (boolean, zorunlu)
- `veri.muhur` (Muhur, zorunlu) — Mühür içeriğin doğruluğunu değil, bilgilerin kaynağa bağlılığını söyler.
- `veri.muhur.kod` (string, zorunlu) — DOGRULANDI: çekirdek bölümler tam ve her bilgi doğrulanmış alıntıya bağlı · KISMI: profil hazır ama bir koşul sağlanmıyor (gerekçeler) · DOGRULANMADI: profil hazır değil. Değerler: DOGRULANDI, KISMI, DOGRULANMADI.
- `veri.muhur.gerekceler[]` (object[], zorunlu)
- `veri.muhur.gerekceler[].tr` (string, zorunlu)
- `veri.muhur.gerekceler[].en` (string, zorunlu)
- `veri.veri_tamligi[]` (object[], zorunlu)
- `veri.veri_tamligi[].bolum` (string, zorunlu)
- `veri.veri_tamligi[].durum` (string, zorunlu) Değerler: tam, kismi, yok, hazirlaniyor, yayimlanmiyor.
- `veri.veri_tamligi[].yontem` (string, null, zorunlu)
- `veri.veri_tamligi[].dayanak` (integer, null, zorunlu)
- `veri.veri_tamligi[].sinirlar[]` (string[], zorunlu)
- `veri.veri_tamligi[].yapisal` (boolean, zorunlu) — Kısmi durum yalnız yapısal sınırdan mı (A.Ş. ortaklığı).
- `veri.alintilar` (object, zorunlu)
- `veri.alintilar.toplam` (integer, zorunlu)
- `veri.alintilar.dogrulanan` (integer, zorunlu)
- `veri.alintilar.dogrulanmayan` (integer, zorunlu)
- `veri.alintilar.kaynaksiz` (integer, zorunlu)
- `veri.kimlik` (object, null, zorunlu)
- `veri.kimlik.unvan` (string, null, zorunlu)
- `veri.kimlik.tur` (string, zorunlu)
- `veri.kimlik.merkez` (string, zorunlu)
- `veri.kimlik.kurulus_tarihi` (string, zorunlu)
- `veri.kimlik.sermaye` (string, zorunlu)
- `veri.kimlik.hukuki_bicim` (string, zorunlu)
- `veri.kimlik.hukuki_bicim_en` (string, zorunlu)
- `veri.kimlik.kaynak` (object, null, zorunlu)
- `veri.kimlik.kaynak.ilan_id` (integer, zorunlu)
- `veri.kimlik.kaynak.tarih` (string, zorunlu) — İlan tarihi (GG.AA.YYYY).
- `veri.kimlik.kaynak.sayi` (string, zorunlu) — Gazete sayısı.
- `veri.kimlik.kaynak.sayfa` (string, zorunlu) — Gazete sayfası.
- `veri.kimlik.kaynak.alinti` (string, zorunlu) — İlandan kısa, birebir alıntı.
- `veri.kimlik.kaynak.dogrulandi` (boolean, zorunlu)
- `veri.durum` (object, null, zorunlu)
- `veri.durum.kod` (string, null, zorunlu)
- `veri.durum.ad` (string, null, zorunlu)
- `veri.durum.ad_en` (string, null, zorunlu)
- `veri.durum.uluslararasi` (string, null, zorunlu)
- `veri.durum.yerel` (string, zorunlu)
- `veri.durum.aciklama` (string, zorunlu)
- `veri.durum.aciklama_en` (string, zorunlu)
- `veri.durum.dayanak` (string, zorunlu)
- `veri.durum.kaynak` (object, null, zorunlu)
- `veri.durum.kaynak.ilan_id` (integer, zorunlu)
- `veri.durum.kaynak.tarih` (string, zorunlu) — İlan tarihi (GG.AA.YYYY).
- `veri.durum.kaynak.sayi` (string, zorunlu) — Gazete sayısı.
- `veri.durum.kaynak.sayfa` (string, zorunlu) — Gazete sayfası.
- `veri.durum.kaynak.alinti` (string, zorunlu) — İlandan kısa, birebir alıntı.
- `veri.durum.kaynak.dogrulandi` (boolean, zorunlu)
- `veri.yetkililer[]` (RaporYetkilisi[], null, zorunlu) — Görevdeki yetkililer (aynı kişinin en yeni ataması).
- `veri.yetkililer[].isim` (string, null, zorunlu)
- `veri.yetkililer[].sifat` (string, zorunlu)
- `veri.yetkililer[].temsil` (string, zorunlu)
- `veri.yetkililer[].baslangic` (string, zorunlu)
- `veri.yetkililer[].gorev_bitis` (string, zorunlu)
- `veri.yetkililer[].gorev_dayanak` (string, zorunlu)
- `veri.yetkililer[].suresi_dolmus` (boolean, zorunlu)
- `veri.yetkililer[].yeni_kurul` (string, zorunlu)
- `veri.yetkililer[].derece` (string, null, zorunlu) — İmza derecesi (1, 2…).
- `veri.yetkililer[].kaynak` (object, null, zorunlu)
- `veri.yetkililer[].kaynak.ilan_id` (integer, zorunlu)
- `veri.yetkililer[].kaynak.tarih` (string, zorunlu) — İlan tarihi (GG.AA.YYYY).
- `veri.yetkililer[].kaynak.sayi` (string, zorunlu) — Gazete sayısı.
- `veri.yetkililer[].kaynak.sayfa` (string, zorunlu) — Gazete sayfası.
- `veri.yetkililer[].kaynak.alinti` (string, zorunlu) — İlandan kısa, birebir alıntı.
- `veri.yetkililer[].kaynak.dogrulandi` (boolean, zorunlu)
- `veri.yetkililer[].temsil_kaynak` (object, null, zorunlu)
- `veri.yetkililer[].temsil_kaynak.ilan_id` (integer, zorunlu)
- `veri.yetkililer[].temsil_kaynak.tarih` (string, zorunlu) — İlan tarihi (GG.AA.YYYY).
- `veri.yetkililer[].temsil_kaynak.sayi` (string, zorunlu) — Gazete sayısı.
- `veri.yetkililer[].temsil_kaynak.sayfa` (string, zorunlu) — Gazete sayfası.
- `veri.yetkililer[].temsil_kaynak.alinti` (string, zorunlu) — İlandan kısa, birebir alıntı.
- `veri.yetkililer[].temsil_kaynak.dogrulandi` (boolean, zorunlu)
- `veri.yetkililer[].birlikte[]` (string[]) — Müşterek temsilde birlikte imzalayabilecekleri (yalnız görevdekilerde).
- `veri.bitmis_gorunen_yetkililer[]` (RaporYetkilisi[], null, zorunlu) — Süresi dolmuş ve sonraki seçimde adı geçmeyenler.
- `veri.bitmis_gorunen_yetkililer[].isim` (string, null, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].sifat` (string, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].temsil` (string, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].baslangic` (string, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].gorev_bitis` (string, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].gorev_dayanak` (string, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].suresi_dolmus` (boolean, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].yeni_kurul` (string, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].derece` (string, null, zorunlu) — İmza derecesi (1, 2…).
- `veri.bitmis_gorunen_yetkililer[].kaynak` (object, null, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].kaynak.ilan_id` (integer, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].kaynak.tarih` (string, zorunlu) — İlan tarihi (GG.AA.YYYY).
- `veri.bitmis_gorunen_yetkililer[].kaynak.sayi` (string, zorunlu) — Gazete sayısı.
- `veri.bitmis_gorunen_yetkililer[].kaynak.sayfa` (string, zorunlu) — Gazete sayfası.
- `veri.bitmis_gorunen_yetkililer[].kaynak.alinti` (string, zorunlu) — İlandan kısa, birebir alıntı.
- `veri.bitmis_gorunen_yetkililer[].kaynak.dogrulandi` (boolean, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].temsil_kaynak` (object, null, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].temsil_kaynak.ilan_id` (integer, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].temsil_kaynak.tarih` (string, zorunlu) — İlan tarihi (GG.AA.YYYY).
- `veri.bitmis_gorunen_yetkililer[].temsil_kaynak.sayi` (string, zorunlu) — Gazete sayısı.
- `veri.bitmis_gorunen_yetkililer[].temsil_kaynak.sayfa` (string, zorunlu) — Gazete sayfası.
- `veri.bitmis_gorunen_yetkililer[].temsil_kaynak.alinti` (string, zorunlu) — İlandan kısa, birebir alıntı.
- `veri.bitmis_gorunen_yetkililer[].temsil_kaynak.dogrulandi` (boolean, zorunlu)
- `veri.bitmis_gorunen_yetkililer[].birlikte[]` (string[]) — Müşterek temsilde birlikte imzalayabilecekleri (yalnız görevdekilerde).
- `veri.sermaye` (object, null, zorunlu)
- `veri.sermaye.guncel` (string, zorunlu)
- `veri.sermaye.kaynak` (object, null, zorunlu)
- `veri.sermaye.kaynak.ilan_id` (integer, zorunlu)
- `veri.sermaye.kaynak.tarih` (string, zorunlu) — İlan tarihi (GG.AA.YYYY).
- `veri.sermaye.kaynak.sayi` (string, zorunlu) — Gazete sayısı.
- `veri.sermaye.kaynak.sayfa` (string, zorunlu) — Gazete sayfası.
- `veri.sermaye.kaynak.alinti` (string, zorunlu) — İlandan kısa, birebir alıntı.
- `veri.sermaye.kaynak.dogrulandi` (boolean, zorunlu)
- `veri.sermaye.gecmis[]` (object[], zorunlu)
- `veri.sermaye.gecmis[].tarih` (string, zorunlu)
- `veri.sermaye.gecmis[].islem` (string, zorunlu)
- `veri.sermaye.gecmis[].onceki` (string, zorunlu)
- `veri.sermaye.gecmis[].yeni` (string, zorunlu)
- `veri.sermaye.gecmis[].kaynak` (object, null, zorunlu)
- `veri.ortaklar` (object, null, zorunlu)
- `veri.ortaklar.anonim` (boolean, zorunlu)
- `veri.ortaklar.tarih` (string, null, zorunlu)
- `veri.ortaklar.liste[]` (object[], zorunlu)
- `veri.ortaklar.liste[].isim` (string, null, zorunlu)
- `veri.ortaklar.liste[].pay_tutari` (string, zorunlu)
- `veri.ortaklar.liste[].pay_orani` (string, zorunlu)
- `veri.ortaklar.liste[].kaynak` (object, null, zorunlu)
- `veri.uyum[]` (object[], null, zorunlu)
- `veri.uyum[].tur` (string, zorunlu)
- `veri.uyum[].ad` (string, null, zorunlu)
- `veri.uyum[].ad_en` (string, null, zorunlu)
- `veri.uyum[].aktif` (boolean, null, zorunlu)
- `veri.uyum[].aciklama` (string, zorunlu)
- `veri.uyum[].aciklama_en` (string, zorunlu)
- `veri.uyum[].dayanak` (string, zorunlu)
- `veri.uyum[].tarih` (string, zorunlu)
- `veri.uyum[].kaynak` (object, null, zorunlu)
- `veri.uyum[].kaynak.ilan_id` (integer, zorunlu)
- `veri.uyum[].kaynak.tarih` (string, zorunlu) — İlan tarihi (GG.AA.YYYY).
- `veri.uyum[].kaynak.sayi` (string, zorunlu) — Gazete sayısı.
- `veri.uyum[].kaynak.sayfa` (string, zorunlu) — Gazete sayfası.
- `veri.uyum[].kaynak.alinti` (string, zorunlu) — İlandan kısa, birebir alıntı.
- `veri.uyum[].kaynak.dogrulandi` (boolean, zorunlu)
- `veri.yaptirim` (object, zorunlu) — Yalnız birebir ad isabetleri; deneme ortamında tarama yapılmaz.
- `veri.yaptirim.tarandi` (boolean, zorunlu)
- `veri.yaptirim.deneme` (boolean, zorunlu)
- `veri.yaptirim.taranan` (integer, zorunlu)
- `veri.yaptirim.isabetler[]` (object[], zorunlu)
- `veri.yaptirim.isabetler[].ad` (string, zorunlu)
- `veri.yaptirim.isabetler[].rol` (string, zorunlu)
- `veri.yaptirim.isabetler[].liste` (string, null, zorunlu)
- `veri.yaptirim.isabetler[].liste_kaydi` (string, zorunlu)
- `veri.yaptirim.isabetler[].program` (string, zorunlu)
- `veri.yaptirim.liste_tarihi` (string, zorunlu)
- `veri.degisiklikler[]` (object[], zorunlu) — Son 10 değişiklik.
- `veri.degisiklikler[].tarih` (string, zorunlu)
- `veri.degisiklikler[].tur` (string, zorunlu)
- `veri.degisiklikler[].kategori` (string, zorunlu)
- `veri.degisiklikler[].ozet` (string, zorunlu)
- `veri.degisiklikler[].ozet_en` (string, zorunlu)
- `veri.degisiklikler[].kaynak` (object, null, zorunlu)
- `veri.degisiklikler[].kaynak.ilan_id` (integer, zorunlu)
- `veri.degisiklikler[].kaynak.tarih` (string, zorunlu) — İlan tarihi (GG.AA.YYYY).
- `veri.degisiklikler[].kaynak.sayi` (string, zorunlu) — Gazete sayısı.
- `veri.degisiklikler[].kaynak.sayfa` (string, zorunlu) — Gazete sayfası.
- `veri.degisiklikler[].kaynak.alinti` (string, zorunlu) — İlandan kısa, birebir alıntı.
- `veri.degisiklikler[].kaynak.dogrulandi` (boolean, zorunlu)
- `veri.ilan_sayisi` (integer, zorunlu)
- `pdf` (string (uri), zorunlu) — Aynı raporun PDF'i (?rapor=… ile ücretsiz yeniden indirme).

```json
{
  "rapor_kimligi": "DR-C2D0-7603-B1BF",
  "muhur": "DOGRULANDI",
  "muhur_ad": "DOĞRULANDI",
  "icerik_ozeti": "c2d07603b1bfa7f48352775859ffd9cc37dfadd2e74c560da4321cdc0b5833c5",
  "uretim_tarihi": "2026-10-17",
  "bekleyen_bolumler": [],
  "veri": {
    "surum": 1,
    "deneme": true,
    "sirket": {
      "id": "DENEME-100001",
      "unvan": "ÖRNEK DENEME SANAYİ VE TİCARET ANONİM ŞİRKETİ",
      "mudurluk": "İSTANBUL",
      "sicil_no": "DENEME-100001"
    },
    "profil_hazir": true,
    "muhur": {
      "kod": "DOGRULANDI",
      "gerekceler": [
        {
          "tr": "Tüm çekirdek bölümler tam; her bilgi kaynak ilanına ve ilan metninde doğrulanmış alıntıya bağlı.",
          "en": "All core sections are complete; every fact is tied to its source notice and a quote verified in the notice text."
        }
      ]
    },
    "veri_tamligi": [
      {
        "bolum": "kimlik",
        "durum": "tam",
        "yontem": "ilandan",
        "dayanak": 1,
        "sinirlar": [],
        "yapisal": false
      },
      {
        "bolum": "yetkililer",
        "durum": "tam",
        "yontem": "ilandan_kuruldu",
        "dayanak": 3,
        "sinirlar": [
          "Yalnız Ticaret Sicili Gazetesi'nde ilan edilen atama ve ayrılmalar yansır."
        ],
        "yapisal": false
      }
    ],
    "alintilar": {
      "toplam": 11,
      "dogrulanan": 11,
      "dogrulanmayan": 0,
      "kaynaksiz": 0
    },
    "kimlik": {
      "unvan": "ÖRNEK DENEME SANAYİ VE TİCARET ANONİM ŞİRKETİ",
      "tur": "Anonim Şirket",
      "merkez": "Örnek Mahallesi Deneme Caddesi No:1 İstanbul",
      "kurulus_tarihi": "02.03.2015",
      "sermaye": "1.000.000,00 TL",
      "hukuki_bicim": "Anonim şirket",
      "hukuki_bicim_en": "Joint-stock company",
      "kaynak": {
        "ilan_id": 9000000,
        "tarih": "02.03.2015",
        "sayi": "10000",
        "sayfa": "1",
        "alinti": "ÖRNEK DENEME SANAYİ VE TİCARET ANONİM ŞİRKETİ kurulmuştur",
        "dogrulandi": true
      }
    },
    "durum": {
      "kod": "FAAL",
      "ad": "Faal",
      "ad_en": "Active",
      "uluslararasi": "ACTIVE",
      "yerel": "Faal",
      "aciklama": "İlanlarda tasfiye, iflas, konkordato ya da kapanış görünmüyor (çıkarım).",
      "aciklama_en": "No liquidation, bankruptcy, composition or closure appears in the notices (inferred).",
      "dayanak": "ilan_yoklugu",
      "kaynak": null
    },
    "yetkililer": [
      {
        "isim": "Ayşe Örnek",
        "sifat": "Yönetim Kurulu Başkanı",
        "temsil": "Münferit",
        "baslangic": "02.03.2015",
        "gorev_bitis": "02.03.2018",
        "gorev_dayanak": "TTK m.362/1",
        "suresi_dolmus": true,
        "yeni_kurul": "",
        "derece": "",
        "kaynak": {
          "ilan_id": 9000000,
          "tarih": "02.03.2015",
          "sayi": "10000",
          "sayfa": "1",
          "alinti": "Ayşe Örnek seçilmiştir",
          "dogrulandi": true
        },
        "temsil_kaynak": null,
        "birlikte": []
      },
      {
        "isim": "Ali Denemeci",
        "sifat": "Yönetim Kurulu Üyesi",
        "temsil": "Müşterek",
        "baslangic": "16.10.2026",
        "gorev_bitis": "16.10.2029",
        "gorev_dayanak": "TTK m.362/1",
        "suresi_dolmus": false,
        "yeni_kurul": "",
        "derece": "",
        "kaynak": {
          "ilan_id": 9000005,
          "tarih": "16.10.2026",
          "sayi": "10005",
          "sayfa": "6",
          "alinti": "Ali Denemeci seçilmiştir",
          "dogrulandi": true
        },
        "temsil_kaynak": null,
        "birlikte": []
      }
    ],
    "bitmis_gorunen_yetkililer": [],
    "sermaye": {
      "guncel": "1.000.000,00 TL",
      "kaynak": {
        "ilan_id": 9000000,
        "tarih": "02.03.2015",
        "sayi": "10000",
        "sayfa": "1",
        "alinti": "ÖRNEK DENEME SANAYİ VE TİCARET ANONİM ŞİRKETİ kurulmuştur",
        "dogrulandi": true
      },
      "gecmis": [
        {
          "tarih": "02.03.2015",
          "islem": "Kuruluş",
          "onceki": "",
          "yeni": "1.000.000,00 TL",
          "kaynak": {
            "ilan_id": 9000000,
            "tarih": "02.03.2015",
            "sayi": "10000",
            "sayfa": "1",
            "alinti": "sermayesi 1.000.000,00 TL",
            "dogrulandi": true
          }
        },
        {
          "tarih": "11.06.2018",
          "islem": "Artırım",
          "onceki": "1.000.000,00 TL",
          "yeni": "2.000.000,00 TL",
          "kaynak": {
            "ilan_id": 9000001,
            "tarih": "11.06.2018",
            "sayi": "10001",
            "sayfa": "2",
            "alinti": "sermaye artırılmıştır",
            "dogrulandi": true
          }
        }
      ]
    },
    "ortaklar": {
      "anonim": true,
      "tarih": "02.03.2015",
      "liste": [
        {
          "isim": "Ayşe Örnek",
          "pay_tutari": "600.000,00 TL",
          "pay_orani": "60",
          "kaynak": {
            "ilan_id": 9000000,
            "tarih": "02.03.2015",
            "sayi": "10000",
            "sayfa": "1",
            "alinti": "Ayşe Örnek 600.000,00 TL",
            "dogrulandi": true
          }
        },
        {
          "isim": "Mehmet Deneme",
          "pay_tutari": "400.000,00 TL",
          "pay_orani": "40",
          "kaynak": {
            "ilan_id": 9000000,
            "tarih": "02.03.2015",
            "sayi": "10000",
            "sayfa": "1",
            "alinti": "Mehmet Deneme 400.000,00 TL",
            "dogrulandi": true
          }
        }
      ]
    },
    "uyum": [
      {
        "tur": "yk_suresi_dolmus",
        "ad": "Yönetim kurulunun görev süresi dolmuş görünüyor",
        "ad_en": "Board term appears to have expired",
        "aktif": false,
        "aciklama": "Son yönetim kurulu seçimi 16.10.2026; 3 yıllık yasal üst sınır 16.10.2029 tarihine kadar.",
        "aciklama_en": "Latest election 16.10.2026; term runs until 16.10.2029.",
        "dayanak": "TTK m.362/1",
        "tarih": "16.10.2029",
        "kaynak": {
          "ilan_id": 9000005,
          "tarih": "16.10.2026",
          "sayi": "10005",
          "sayfa": "6",
          "alinti": "",
          "dogrulandi": false
        }
      },
      {
        "tur": "sermaye_kaybi_borca_batiklik",
        "ad": "Sermaye kaybı / borca batıklık bildirimi",
        "ad_en": "Capital loss / over-indebtedness notice",
        "aktif": null,
        "aciklama": "İlanlarda sermaye kaybı ya da borca batıklık bildirimi görünmüyor; mali tablolar sicilde ilan edilmediği için bu, durumun olmadığını göstermez.",
        "aciklama_en": "No such notice appears; financial statements are not published in the gazette, so this does not show the situation is absent.",
        "dayanak": "TTK m.376",
        "tarih": "",
        "kaynak": null
      }
    ],
    "yaptirim": {
      "tarandi": false,
      "deneme": true,
      "taranan": 0,
      "isabetler": [],
      "liste_tarihi": ""
    },
    "degisiklikler": [
      {
        "tarih": "16.10.2026",
        "tur": "yetkili-atama",
        "kategori": "yetkililer",
        "ozet": "Ali Denemeci göreve başladı (Yönetim Kurulu Üyesi · Müşterek)",
        "ozet_en": "Ali Denemeci took office (Board Member)",
        "kaynak": {
          "ilan_id": 9000005,
          "tarih": "16.10.2026",
          "sayi": "10005",
          "sayfa": "6",
          "alinti": "Ali Denemeci seçilmiştir",
          "dogrulandi": true
        }
      },
      {
        "tarih": "14.10.2026",
        "tur": "sermaye",
        "kategori": "sermaye",
        "ozet": "Artırım: 2.000.000,00 TL → 4.000.000,00 TL",
        "ozet_en": "Capital: 2.000.000,00 TL → 4.000.000,00 TL",
        "kaynak": {
          "ilan_id": 9000004,
          "tarih": "14.10.2026",
          "sayi": "10004",
          "sayfa": "5",
          "alinti": "sermaye artırılmıştır",
          "dogrulandi": true
        }
      }
    ],
    "ilan_sayisi": 6
  },
  "pdf": "https://ulawk.com/api/v1/sirketler/DENEME-100001/dogrulama-raporu.pdf?rapor=DR-C2D0-7603-B1BF"
}
```

### 404 — Şirket ya da `?rapor=` kimliği bulunamadı (`bulunamadi`).


```json
{
  "hata": "bulunamadi",
  "detay": "Şirket bulunamadı ya da erişim yetkiniz yok.",
  "hata_ayrinti": {
    "kod": "bulunamadi",
    "mesaj": "Şirket bulunamadı ya da erişim yetkiniz yok.",
    "taraf": "istemci",
    "kaynak": null,
    "tekrar_denenebilir": false,
    "tekrar_sn": null
  }
}
```

### 409 — `?tam_zorunlu=1` ve mühür DOGRULANDI değil (`veri_eksik`; `muhur`, `bekleyen_bolumler`, `rapor_kimligi`).

Retry-After: `600`

```json
{
  "hata": "veri_eksik",
  "detay": "Rapor tam değil: bazı bölümler hazırlanıyor ya da kısmi.",
  "hata_ayrinti": {
    "kod": "veri_eksik",
    "mesaj": "Rapor tam değil: bazı bölümler hazırlanıyor ya da kısmi.",
    "taraf": "istemci",
    "kaynak": null,
    "tekrar_denenebilir": true,
    "tekrar_sn": 600
  },
  "muhur": "DOGRULANMADI",
  "bekleyen_bolumler": [
    "kimlik",
    "yetkililer",
    "sermaye",
    "ortaklik",
    "unvan_adres",
    "esas_sozlesme",
    "ilanlar"
  ],
  "rapor_kimligi": "DR-3443-4587-9500"
}
```

### 503 — PDF şu an üretilemedi (`pdf_uretilemedi`, `?bicim=html` dener) ya da kaynak erişilemiyor.

Retry-After: `300`

```json
{
  "hata": "kaynak_erisilemiyor",
  "detay": "Ticaret Sicili Gazetesi şu an yanıt vermiyor; kısa süre sonra yeniden deneyin. (Deneme ortamı benzetimi.)",
  "hata_ayrinti": {
    "kod": "kaynak_erisilemiyor",
    "mesaj": "Ticaret Sicili Gazetesi şu an yanıt vermiyor; kısa süre sonra yeniden deneyin. (Deneme ortamı benzetimi.)",
    "taraf": "kaynak",
    "kaynak": "ttsg",
    "tekrar_denenebilir": true,
    "tekrar_sn": 300
  }
}
```

### 401 — Anahtar yok ya da geçersiz (`yetkisiz`).


```json
{
  "hata": "yetkisiz",
  "detay": "Geçerli X-API-Key başlığı gerekli (panel › API).",
  "hata_ayrinti": {
    "kod": "yetkisiz",
    "mesaj": "Geçerli X-API-Key başlığı gerekli (panel › API).",
    "taraf": "istemci",
    "kaynak": null,
    "tekrar_denenebilir": false,
    "tekrar_sn": null
  }
}
```

### 429 — Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.

Retry-After: `2311`

```json
{
  "hata": "hiz_siniri",
  "detay": "Saatlik istek sınırı aşıldı (600). Bir sonraki saatte tekrar deneyin.",
  "hata_ayrinti": {
    "kod": "hiz_siniri",
    "mesaj": "Saatlik istek sınırı aşıldı (600). Bir sonraki saatte tekrar deneyin.",
    "taraf": "istemci",
    "kaynak": null,
    "tekrar_denenebilir": true,
    "tekrar_sn": 2311
  }
}
```

### 500 — Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.

Retry-After: `60`

```json
{
  "hata": "ic_hata",
  "detay": "Beklenmeyen bir hata oluştu; kısa süre sonra yeniden deneyin.",
  "hata_ayrinti": {
    "kod": "ic_hata",
    "mesaj": "Beklenmeyen bir hata oluştu; kısa süre sonra yeniden deneyin.",
    "taraf": "ulawk",
    "kaynak": null,
    "tekrar_denenebilir": true,
    "tekrar_sn": 60
  }
}
```

## İstek

```bash
curl "https://ulawk.com/api/v1/sirketler/DENEME-100001/dogrulama-raporu.pdf?bicim=json" \
  -H "X-API-Key: ulk_DENEME_ANAHTARINIZ" \
  -H "X-API-Secret: ulsk_DENEME_GIZLI_ANAHTARINIZ"
```
