T.C. Kimlik Doğrulama Nedir, Nasıl Yapılır? NVI/KPS Tam Rehber (2026)
T.C. kimlik doğrulama, dijital sözleşmelerden online ödemeye, üyelik kayıtlarından vize başvurularına kadar pek çok süreçte karşılaştığımız bir adım. Ama nasıl çalışır? Hangi yöntemler var? KPSPublic kapanınca ne değişti? Bu rehber tüm soruları cevaplıyor.
Görsel: Dijital kimlik doğrulama akışı — mobil cihazdan anlık teyit
T.C. Kimlik Doğrulama Nedir?
T.C. kimlik doğrulama, bir kişinin beyan ettiği 11 haneli T.C. kimlik numarasının (1) format olarak geçerli olup olmadığını ve (2) gerçekten o kişiye ait olup olmadığını teyit etme işlemidir. İki katmanlı kontrol gerektirir:
| Katman | Yöntem | Ne Doğrular? |
|---|---|---|
| 1. Algoritmik | Mod10 + Mod11 hesaplama | Numaranın format kuralına uyduğunu (sahte üretimi engeller) |
| 2. KPS Sorgusu | NVI Kimlik Paylaşım Sistemi | Numaranın gerçekten o kişiye ait olduğunu |
Sadece algoritmik kontrol yeterli değildir — algoritmaya uyan ama gerçekte kimseye ait olmayan numaralar üretilebilir. Gerçek doğrulama için NVI KPS sorgusu şarttır.
1. Algoritmik Doğrulama: Mod10 + Mod11
T.C. kimlik numarasının matematiksel olarak iki kuralı vardır:
10. Hane Kuralı (Mod 10)
İlk 9 hanenin algoritmik kombinasyonu:
adım 1: tek_haneler_toplamı = 1. + 3. + 5. + 7. + 9. hane
adım 2: cift_haneler_toplamı = 2. + 4. + 6. + 8. hane
adım 3: (tek_haneler_toplamı × 7) - cift_haneler_toplamı
adım 4: sonucun mod 10'u → 10. hane
11. Hane Kuralı (Mod 10)
İlk 10 hanenin toplamının mod 10’u 11. haneye eşittir:
(1. + 2. + 3. + ... + 10. hane) mod 10 → 11. hane
Ek Kurallar
- 11 hane olmak zorunda — daha az veya fazla geçersiz
- İlk hane 0 olamaz — TC kimlik no 1-9 ile başlar
- Sadece rakam — boşluk, tire, harf yok
Örnek Python Implementation
def tc_kimlik_format_dogrula(tc: str) -> bool:
if len(tc) != 11 or not tc.isdigit() or tc[0] == '0':
return False
haneler = [int(d) for d in tc]
tek_toplam = haneler[0] + haneler[2] + haneler[4] + haneler[6] + haneler[8]
cift_toplam = haneler[1] + haneler[3] + haneler[5] + haneler[7]
onuncu_hane = ((tek_toplam * 7) - cift_toplam) % 10
onbirinci_hane = sum(haneler[:10]) % 10
return haneler[9] == onuncu_hane and haneler[10] == onbirinci_hane
Önemli: Bu kontrol numaranın format olarak doğru olduğunu gösterir. Algoritmaya uygun ama gerçekte kimseye ait olmayan numaralar tek seferde 100.000+ üretilebilir. Asıl doğrulama bir sonraki adımda.
Görsel: Mod10 + Mod11 algoritması — sadece şekil kontrolü, gerçek doğrulama değil
2. NVI Kimlik Paylaşım Sistemi (KPS) Sorgusu
Asıl doğrulama burada başlar. Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü (NVI), Kimlik Paylaşım Sistemi (KPS) üzerinden Türk vatandaşlarının kimlik bilgilerini sorgulanabilir hale getirir.
KPS Sorgusu Nasıl Çalışır?
| Parametre | Açıklama |
|---|---|
| TC Kimlik No | 11 haneli numara |
| Ad | İlk ad (anlık format) |
| Soyad | Soyad |
| Doğum Yılı | 4 hane (örn: 1985) |
Bu 4 parametre eşleşirse KPS TRUE döner; en az biri eşleşmezse FALSE. Yanıt, ham kişisel veri içermez — sadece “eşleşti / eşleşmedi” durumu döner.
Önemli: KPSPublic Kapatıldı (30 Eylül 2025)
Önceden NVI’nin ücretsiz KPSPublic.asmx SOAP servisi vardı; herhangi bir geliştirici, ücretsiz KPS sorgusu yapabilirdi. Ancak:
- ⚠️ 30 Eylül 2025 itibarıyla NVI, KPSPublic servisini kullanıma kapattı
- ✅ Bugün TC kimlik doğrulaması yalnızca KPS Kurumsal Üyeliği olan kuruluşlar üzerinden mümkün
- 📋 Sebep: kötüye kullanımın artması, KVKK kapsamında audit sorumluluğunun belirginleşmesi, trafik kontrolü
Yani: Artık bir geliştirici “ücretsiz KPS API” arar ama bulamaz. Doğrulamanın iki yolu kaldı:
- Kuruluş olarak kendi KPS Kurumsal üyeliğinize başvurun (NVI’dan, ücretsiz ama 2-8 hafta onay)
- KPS üyeliği olan bir SaaS hizmeti üzerinden dolaylı kullanın (anında, sorgu bazlı ücretlendirme)
Görsel: KVKK uyumlu kimlik doğrulama altyapısı — Almanya veri merkezinde işlenen ama sadece sorgu zamanı kullanılan veriler
Kurumsal KPS Üyeliği Nasıl Alınır?
NVI Kurumsal KPS başvurusu kpsbasvuru.nvi.gov.tr adresinden yapılır. Gerekenler:
Gerekli Belgeler
- ✅ Kuruluşun vergi numarası ve faaliyet belgesi
- ✅ Kimlik doğrulama amacının yazılı beyanı (KVKK m.5/2-e veya açık rıza temeli)
- ✅ Erişim sorumlusu ataması (T.C. kimlik bilgileri + iletişim)
- ✅ Audit log saklama taahhüdü (en az 2 yıl)
- ✅ Trafik tahmini (yıllık beklenen sorgu sayısı)
Onay Süreci
| Kuruluş Tipi | Onay Süresi |
|---|---|
| Kamu kurumu | 2-3 hafta |
| Anonim/Limited şirket | 4-6 hafta |
| Şahıs şirketi | 6-8 hafta |
| Vakıf/Dernek | 4-10 hafta |
Maliyet
NVI Kurumsal KPS üyeliği ücretsiz. Ancak gizli maliyetler vardır:
- SOAP/REST API altyapı kurulumu (~₺15-50K)
- Audit log saklama ve raporlama (~₺5-20K/yıl)
- KVKK uyum belgeleri ve hukuki danışmanlık (~₺5-15K)
- Geliştirici zamanı (~10-30 adam-gün)
Toplam tahmini ilk yıl maliyet: ₺50-150K (kuruluş kendi yapıyorsa)
KVKK Uyumlu Kimlik Doğrulama
T.C. kimlik numarası kişisel veri olduğundan KVKK kapsamındadır. Doğrulama yaparken hukuki dayanaklar:
Hukuki Sebepler (KVKK m.5)
| Sebep | Kullanım Alanı |
|---|---|
| m.5/2-c — sözleşmenin kurulması/ifası ile doğrudan ilgili | Online sözleşme imzalama, üyelik kaydı |
| m.5/2-e — veri sorumlusunun hukuki yükümlülüğü | Yasal zorunluluk olan sektörler (finans, sigorta) |
| m.5/2-f — meşru menfaat | Fraud önleme (denge testi ile) |
| m.5/1 — açık rıza | Açık rıza yoluyla (ek özen gerekir) |
Açık rıza şart değildir — doğru hukuki sebep seçilirse rızasız da doğrulanabilir. Ancak aydınlatma yükümlülüğü vardır.
Aydınlatma Metni Şablonu
“T.C. kimlik numaranız, NVI Kimlik Paylaşım Sistemi (KPS) üzerinden sözleşmenin tarafını doğrulamak amacıyla işlenir. Sorgu yanıtı (eşleşti/eşleşmedi) [retention süresi] boyunca audit kaydı olarak saklanır; ham kimlik bilgileri saklanmaz. KVKK m.5/2-c kapsamında işlenir.”
Audit Trail Zorunluluğu
Her sorgu için kayıt altına alınması gerekenler:
- 🕐 Sorgu zamanı (timestamp)
- 👤 Sorgu yapan kullanıcı/sistem
- 🌐 Kaynak IP
- ✅ Sorgu sonucu (TRUE/FALSE)
- 📋 Sorgunun bağlı olduğu sözleşme/işlem ID
Önemli: Ham kimlik bilgileri (ad-soyad-doğum tarihi) kalıcı olarak saklanmaz, sadece doğrulama anında kullanılır.
Görsel: Biyometrik kimlik doğrulama, KPS sorgusunu güçlendiren ek katmandır
TC Kimlik Doğrulama Hangi Sektörlerde Kullanılır?
Yasal Zorunluluk Olanlar
- 💰 Finansal Hizmetler — banka, kredi, sigorta (BDDK ve SEDDK düzenlemeleri)
- 🏥 Sağlık — özellikle KVKK m.6 özel nitelikli sağlık verisi işleyen
- 🎓 Eğitim — özellikle MEB ve YÖK düzenleme kapsamında
- ✈️ Vize ve Pasaport Aracılık — Konsolosluk şartı
Güçlü Tavsiye Edilenler
- 📝 Online Sözleşme İmzalama — fraud önleme + mahkemede ispat gücü
- 🛒 E-ticaret — yüksek tutarlı satışlar, taksitli ödemeler
- 🏠 Gayrimenkul — satış vaadi sözleşmesi, kira kontratı
- 💼 İK / İşe Alım — iş sözleşmesi, gizlilik anlaşması (NDA)
- 📱 Telekom — hat tahsisi, abone tescil
Opsiyonel ama Yararlı
- 🤝 B2B Sözleşmeler — yetkili imzacının kuruluşu temsil ettiğini teyit
- 🎫 Etkinlik Kayıt — yüksek değerli etkinlikler, üyelik
- 💳 Yüksek Tutarlı Cüzdan/Hesap — fintech kullanım
API Entegrasyonu — Pratik Örnekler
İmzala.org’un Kimlik Doğrulama API’si REST + JSON üzerinden çalışır. Tipik akış:
1. API Anahtarı Alma
Dashboard → Ayarlar → API Anahtarları → “Yeni Anahtar” → KPS doğrulama izni etkinleştir.
2. Sorgu (cURL)
curl -X POST https://api.imzala.org/api/v1/identity/verify \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tc_kimlik_no": "12345678901",
"ad": "Mehmet",
"soyad": "Yılmaz",
"dogum_yili": 1985
}'
3. Yanıt (JSON)
{
"verified": true,
"request_id": "req_a1b2c3d4e5",
"timestamp": "2026-05-29T08:42:13Z",
"audit_id": "audit_xyz789"
}
4. Diğer Diller
| Dil | Örnek Kod Yeri |
|---|---|
| Node.js | api-docs.imzala.org/identity/nodejs |
| Python | api-docs.imzala.org/identity/python |
| PHP | api-docs.imzala.org/identity/php |
| .NET | api-docs.imzala.org/identity/dotnet |
| iOS Swift | api-docs.imzala.org/identity/ios |
| Android Kotlin | api-docs.imzala.org/identity/android |
Webhook Bildirimi (Opsiyonel)
Asenkron doğrulama için webhook desteği var. Sorgu gönderirsiniz, sonuç hazır olduğunda webhook URL’inize POST atılır. Yüksek hacimli sistemler için ideal.
Görsel: Parmak izi tarayıcısı + biyometrik doğrulama, KPS’in üstüne ek bir güvenlik katmanı
Sık Sorulan Sorular
TC kimlik numarası 11 hanelidir ve iki algoritmik kuralı vardır. (1) 10. hane: ilk 1, 3, 5, 7, 9. hanelerin toplamı × 7’den, 2, 4, 6, 8. hanelerin toplamı çıkarılır, sonucun mod 10’u alınır. (2) 11. hane: ilk 10 hanenin toplamının mod 10’u. Bu kontroller numaranın FORMAT olarak geçerli olduğunu gösterir; gerçek kişiye ait olduğunu kanıtlamaz. Gerçek doğrulama için NVI KPS sorgusu şarttır.
Kimlik Paylaşım Sistemi (KPS), Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü (NVI) tarafından sağlanan resmi kimlik doğrulama altyapısıdır. Kurum ve kuruluşların TC kimlik bilgilerini doğrulamak için kullandıkları sistemdir. KPS üzerinden TC kimlik no + ad + soyad + doğum yılı kombinasyonu sorgulanır, sonuç TRUE/FALSE olarak döner.
NVI, 30 Eylül 2025 tarihinde ücretsiz KPSPublic.asmx servisini kullanıma kapattı. Sebepleri: (1) kötüye kullanımın artması (botlar, fraud girişimleri), (2) trafik denetiminin zorlaşması, (3) KVKK kapsamında audit trail sorumluluğunun belirginleşmesi. Bu tarihten sonra TC kimlik doğrulaması yalnızca KPS Kurumsal Üyeliği bulunan kuruluşlar için resmi yoldan mümkündür.
NVI Kurumsal KPS başvurusu kpsbasvuru.nvi.gov.tr adresinden yapılır. Başvuru için: (1) Kuruluşun vergi numarası ve faaliyet belgesi, (2) Kimlik doğrulama amacının yazılı beyanı (KVKK m.5/2-e veya açık rıza), (3) Erişim sorumlusu atama, (4) Audit log saklama taahhüdü gerekir. Onay süreci kuruluş tipine göre 2-8 hafta arasındadır.
Doğrudan NVI üzerinden hayır. Ancak KPS üyeliği olan bir aracı SaaS hizmeti üzerinden dolaylı olarak doğrulama yapılabilir. İmzala.org bu modelde çalışır: müşterinin kendi KPS Kurumsal API bilgileri platforma tanımlanır, doğrulama trafiği müşterinin NVI hesabı üzerinden ilerler, audit kayıtları müşterinin kendi denetim sorumluluğundadır.
Evet, doğru yapıldığında. KVKK m.5/2-e ‘veri sorumlusunun hukuki yükümlülüğünü yerine getirebilmesi için zorunlu olması’ veya m.5/2-c ‘sözleşmenin kurulması/ifası ile doğrudan ilgili olması’ hukuki sebepleri kullanılır. Açık rıza şart değildir; ancak aydınlatma metninde ‘TC kimlik numarası NVI Kimlik Paylaşım Sistemi üzerinden doğrulanır’ beyanı yer almalıdır. Sorgu yanıtı (TRUE/FALSE) saklanır, ham kişisel veri yanıtı saklanmaz.
Evet — iki katman ile. (1) Algoritmik kontrol (mod10 + mod11) ile şekilsel olarak geçersiz numaraları anında reddedersiniz. (2) KPS sorgusu ile gerçekten o kişiye ait olmayan numaraları yakalayabilirsiniz. Bu iki katman birlikte sahtecilik riskini büyük ölçüde sıfırlar. Ek olarak: biyometrik imza + kimlik fotoğrafı (selfie + TC kart) ile daha güçlü doğrulama yapılabilir.
Yasal olarak her sözleşmede zorunlu değil, ama bazı sektörlerde gereklidir. Finansal hizmetler (kredi, sigorta), sağlık hizmetleri, vize aracılık hizmetleri ve KVKK m.6 özel nitelikli veri işleyen platformlar için kimlik doğrulama güçlü tavsiye edilir. Ticari sözleşmelerde de fraud riskini ve mahkemede ispat yükünü düşürmek için yaygın olarak kullanılır.
Doğrudan NVI’dan başvurursanız KPS Kurumsal üyeliği ücretsiz ama altyapı kurulum maliyeti var (SOAP API, audit log saklama, KVKK uyum belgeleri). SaaS sağlayıcı üzerinden alırsanız sorgu başına ücretlendirme yaygın (₺0.50-₺5 arası). İmzala.org abonelik planında belirli sayıda ücretsiz sorgu dahildir, üstü tüketim bazlı.
Evet, REST API üzerinden mobil + web + backend her platformdan çağrılabilir. İmzala.org’un kimlik doğrulama API’si Bearer token ile çalışır, HTTPS zorunlu, yanıt JSON. iOS Swift, Android Kotlin, Flutter Dart için kod örnekleri dökümanlarımızda mevcut.
İmzala.org’un kimlik doğrulama altyapısı Almanya Hetzner veri merkezinde (KVKK Türkiye + GDPR AB çift uyum kapsamında) işlenir. Sorgu yanıtları sadece TRUE/FALSE ve audit metadata içerir; ham kişisel veri (ad-soyad-doğum tarihi) Almanya’da loglanmaz, sadece doğrulama anında kullanılır.
Sonuç
T.C. kimlik doğrulama, online iş süreçlerinde fraud önleme + KVKK uyumu + mahkemede ispat gücü için kritik. İki katman gerektirir: algoritmik kontrol (format) + NVI KPS sorgusu (gerçek doğrulama). KPSPublic’in 30 Eylül 2025’te kapatılmasıyla artık sadece Kurumsal KPS üyeliği olan kuruluşlar veya bu üyeliği olan aracı SaaS’lar üzerinden doğrulama mümkün.
Kuruluşunuzun seçenekleri:
- NVI’dan kendi Kurumsal KPS üyeliğinizi alın — ücretsiz ama 4-8 hafta + altyapı maliyeti
- SaaS aracı (İmzala.org gibi) kullanın — dakikalar içinde, sorgu bazlı ücretlendirme
İlgili Rehberler: