Üyelik Kimlik Doğrulama (TCKK_TIMESTAMP)¶
Bu örnek, bir platformun üyelerinden birine kimlik doğrulama yaptırmasını ve doğrulama tamamlandığında webhook ile üyenin hesabını otomatik olarak "kimliği doğrulandı" durumuna almasını gösterir. Akış, aşağıda e-ticaret senaryosu üzerinden anlatılıyor; ancak süreç, imzacı ve webhook mantığı Örnek Sektörler bölümündeki tüm kullanım alanları için birebir aynıdır.
Önceki örneklerden farkı: burada bir sözleşme imzalatılmıyor — amaç yalnızca
kişinin gerçekten iddia ettiği kişi olduğunu (TC kimlik kartı + telefon + konum ile)
teyit etmek. Bu yüzden süreç tipi olarak DIJITAL_KIMLIK_DOGRULAMA
kullanılır: belge imzalanmaz, gerçek bir dosya üretilmez, yalnızca kimlik
doğrulama kanıtı oluşturulur.
Senaryo (e-ticaret): Bir e-ticaret sitesi, belirli bir işlem limitinin üzerine çıkan (ör. yüksek tutarlı sipariş, taksitli ödeme, satıcı hesabı başvurusu vb.) üyelerinden kimlik doğrulaması istiyor. Üye "Kimliğimi Doğrula" butonuna bastığında sistem TCKK_TIMESTAMP yöntemiyle bir doğrulama süreci başlatır: üye telefonunun NFC anteniyle TC kimlik kartını okutur, kayıtlı cep telefonuna gelen SMS kodunu girer ve cihazın konumu okunur; tüm bunlar bir zaman damgasıyla mühürlenir. Doğrulama tamamlanınca platformun sistemine webhook düşer ve üyenin hesabı otomatik olarak doğrulanmış işaretlenir.
Örnek Sektörler¶
DIJITAL_KIMLIK_DOGRULAMA + TCKK_TIMESTAMP ikilisi, "bir belge imzalatmadan,
yalnızca bu kişi gerçekten iddia ettiği kişi mi?" sorusuna cevap arayan her üyelik
akışında kullanılabilir:
| Sektör | Doğrulama Genelde Ne Zaman İstenir | Amaç |
|---|---|---|
| E-Ticaret | Yüksek tutarlı sipariş, taksitli ödeme, satıcı/mağaza hesabı başvurusu | Dolandırıcılık ve "chargeback" riskini azaltmak |
| Kripto Para / Yatırım Platformları | Hesap açılışı, para çekme limiti aşımı | KYC ("Müşterini Tanı") mevzuat yükümlülüğü |
| Araç / Gayrimenkul Kiralama ve Paylaşım | İlan verme, araç veya konut teslim alma | Kiralayanın gerçek kimliğiyle eşleştiğinin garanti edilmesi |
| Bahis / Şans Oyunları | Üyelik açılışı, para çekme talebi | Yaş doğrulama ve "tek kişi tek hesap" kuralı |
| Fintech / Ödeme Kuruluşları | Hesap açılışı, limit artışı, IBAN ekleme | BDDK/MASAK KYC yükümlülüğü |
| İkinci El Pazar Yerleri | Yüksek değerli ilan, "doğrulanmış satıcı" rozeti | Alıcı güvenini artırmak |
Sektöre göre değişen tek şey Adım 1'deki süreç adı (name) ve Adım 5'te webhook'u
aldığınızda hesabınızda tetiklediğiniz iş kuralıdır (örn. e-ticarette sipariş limiti
açmak, fintech'te IBAN eklemeye izin vermek); API çağrılarının kendisi değişmez.
Neden TCKK_TIMESTAMP?¶
İmzalama Türleri sayfasındaki karşılaştırmaya göre, yüz tanıma veya video kaydına gerek duymayan, yalnızca fiziksel kimlik kartı + SMS + konum doğrulaması yeterli olan akışlar için önerilen yöntem budur:
| Yöntem | Kimlik Kartı NFC | SMS (Telefon) | Konum | Yüz/Video |
|---|---|---|---|---|
TCKK_TIMESTAMP |
✅ | ✅ | ✅ | ❌ |
TCKK_FACE_TIMESTAMP |
✅ | ✅ | ✅ | Anlık yüz |
TCKK_ONBOARDING |
✅ | ✅ | ✅ | Fotoğraf + video |
E-ticaret ve fintech gibi çoğu üyelik doğrulama akışında ek biyometri gerekmediğinden
en hafif seçenek olan TCKK_TIMESTAMP yeterlidir. Bahis veya kripto gibi daha yüksek
güvence gerektiren sektörlerde aynı akış TCKK_FACE_TIMESTAMP veya TCKK_ONBOARDING
ile birebir aynı şekilde kurulabilir (yalnızca Adım 3'teki signatureTypeId değişir).
Ön Koşullar¶
- Panelde bir webhook tanımlı ve aktif olmalı (bkz. Webhook) — doğrulama tamamlandığında sisteminize bildirim düşecek.
- Üyenin TC kimlik numarası, cep telefonu ve e-posta bilgisi, KVKK aydınlatma/onay süreciniz tamamlanmış şekilde elinizde olmalı.
- API kimlik bilgileriniz (
X-Client-Id/X-Client-Secret) ve gerekli scope'lar:process:start,signer:managment,document:sign,process:status.
document:write gerekmez — hiç döküman yüklemeyeceksiniz
Önceki örneklerin aksine bu akışta hiçbir aşamada dosya yüklenmez. Aşağıda göreceğiniz gibi imzacıyı sürece bağladığınız tek çağrı, gizli "signing control" belgesini de kendisi oluşturur.
Genel Akış¶
Üye "Kimliğimi Doğrula" der
→ Süreç Oluştur (processType: DIJITAL_KIMLIK_DOGRULAMA)
→ processId ↔ üyeId eşlemesini kendi veritabanınızda saklayın
→ İmzacıyı Oluştur / Bul
→ İmzacıyı Sürece Bağla (TCKK_TIMESTAMP) — döküman otomatik oluşur, ayrıca yüklenmez
→ Süreci Başlat → üyeye link/QR gider
→ Üye: Kimlik Kartı NFC + SMS Kodu + Konum İzni
→ Webhook (DOCUMENT_SIGNED) → üye hesabı "Kimliği Doğrulandı" işaretlenir
Adım 1 – Süreci Oluştur¶
POST /api/external/process-instances
{
"name": "Üye Kimlik Doğrulama - Ali Veli (#4521)",
"processType": "DIJITAL_KIMLIK_DOGRULAMA"
}
Yanıt (HTTP 201):
{
"id": 512,
"name": "Üye Kimlik Doğrulama - Ali Veli (#4521)",
"statusCode": "NEW",
"processType": "DIJITAL_KIMLIK_DOGRULAMA",
"signers": [],
"documents": [],
"accessToken": "xY7pQ2m",
"createdAt": "2026-09-15T10:00:00"
}
processId ↔ üye eşlemesini kendiniz saklayın
Bu API'de sürece özel bir "referans kodu" alanı yoktur; webhook geldiğinde sizi
hangi üyeyle ilgili olduğunu bulmanız için dönen id (processId, burada 512)
değerini kendi veritabanınızda üyenin kaydına (#4521) yazmanız gerekir — Stripe
vb. servislerdeki external_reference mantığının burada uygulama tarafında
yapılması gerekir.
Adım 2 – İmzacıyı Oluştur / Bul¶
DIJITAL_KIMLIK_DOGRULAMA sürecinde imzacı, /document/{documentId}/signers
endpoint'indeki gibi bilgileriyle inline oluşturulamaz — önce hesabın imzacı
rehberinde bir Signer kaydı olması gerekir. Üye sisteminizde daha önce
doğrulanmamışsa bulk-insert ile oluşturun (kayıtlıysa bu adım atlanıp mevcut
signerId kullanılır):
POST /api/external/signers/bulk-insert
[
{
"fullName": "Ali Veli",
"email": "[email protected]",
"phone": "+905551112233",
"identityNumber": "12345678901"
}
]
Yanıt:
[
{ "id": 138, "fullName": "Ali Veli" }
]
id: 138 değerini bir sonraki adımda signerId olarak kullanın.
Adım 3 – İmzacıyı TCKK_TIMESTAMP ile Sürece Bağla¶
Burada döküman yüklenmez — imzacıyı doğrudan sürece bağlayan tek bir çağrı
yeterlidir. signatureTypeId: 11, Referans API — İmzalama
Türleri'nden TCKK_TIMESTAMP kodunun ID'sidir.
POST /api/external/process-instances/512/signers/all-documents
{
"signerId": 138,
"signatureTypeId": 11,
"stepOrder": 1,
"mustSign": true
}
| Alan | Açıklama |
|---|---|
signerId |
Adım 2'de oluşturulan/bulunan Signer ID'si |
signatureTypeId: 11 |
TCKK_TIMESTAMP — kimlik kartı NFC + SMS + konum + zaman damgası |
stepOrder |
Süreçte birden fazla kişi doğrulanacaksa sırayı belirler; tek kişilik akışta 1 |
mustSign |
true — doğrulama tamamlanmadan süreç kapanmaz |
Belge burada, sizin göndermenize gerek kalmadan oluşur
Bu istek ilk kez çağrıldığında sistem, sürece ait gizli bir "signing control"
belgesi (isSigningControl: true, dosya adı otomatik imza_belgesi_
DIJITAL_KIMLIK_DOGRULAMA_512 gibi üretilir) yoksa kendisi oluşturur ve
imzacıyı ona bağlar — üyeye hiçbir zaman gösterilmez, indirilebilir gerçek bir
dosya değildir (bkz. Süreç Tipleri).
Aynı sürece birden fazla kişi ekleyecekseniz bu endpoint'i farklı signerId /
stepOrder ile tekrar çağırmanız yeterli; hepsi aynı gizli belgeye bağlanır.
Yanıt (HTTP 200) — oluşturulan görev ID'si:
[9]
9, bu imza/doğrulama görevinin (DocumentSigningTask) ID'sidir; ayrıca izlemeniz
gerekmiyorsa saklamanıza gerek yoktur — süreç durumunu her zaman processId (512)
ile sorgulayabilirsiniz.
Adım 4 – Süreci Başlat¶
PUT /api/external/process-instances/512/status/start
Yanıt: ok
Süreç başlatıldığında Ali Veli'ye e-posta/SMS ile accessToken içeren doğrulama
bağlantısı (veya QR kod) gönderilir.
Üye Tarafında Ne Olur?¶
Ali Veli bağlantıyı açtığında sırasıyla:
1. Kimlik Kartı NFC Okuma → telefonun NFC anteniyle T.C. kimlik kartı okutulur,
kart üzerindeki bilgiler signer.identityNumber ile
karşılaştırılır
2. SMS Doğrulama → signer.phone'a (+905551112233) gönderilen tek kullanımlık
kod, ekrana girilir
3. Konum İzni → tarayıcı/uygulama cihazdan GPS konumunu okur
4. Zaman Damgası → yukarıdaki adımların tamamlandığı an, değiştirilemez
şekilde mühürlenir
Bu dört unsur (kimlik + telefon + konum + zaman), TCKK_TIMESTAMP yönteminin ürettiği
kimlik doğrulama kanıtının temelini oluşturur (bkz. İmza Formatları ve
Doğrulama — JAdES).
Adım 5 – Webhook: Doğrulama Sonucu¶
Üye adımları tamamladığında sisteminize DOCUMENT_SIGNED olayı düşer:
{
"event": "DOCUMENT_SIGNED",
"timestamp": "2026-09-15T10:04:32",
"accountId": 5,
"data": {
"processId": 512,
"documentId": 8801,
"documentName": "imza_belgesi_DIJITAL_KIMLIK_DOGRULAMA_512",
"allSigned": true
}
}
documentId (8801), Adım 3'te sizin göndermediğiniz, sistemin otomatik oluşturduğu
gizli signing-control belgesinin ID'sidir — Adım 6'daki kanıt indirme çağrısı için
webhook'tan öğrenirsiniz; ayrıca documentName her zaman imza_belgesi_
<processType>_<processId> kalıbında otomatik üretilir.
Webhook handler'ınızda yapmanız gereken:
X-Webhook-Signaturebaşlığını doğrulayın (bkz. Webhook — İmza Doğrulama).data.processId(512) değerini Adım 1'de sakladığınız eşlemeden kendi üye kaydınıza (#4521) çevirin.allSigned: trueise üyenin hesabınıidentityVerified = true/identityVerifiedAt = timestampolarak güncelleyin ve kısıtlı işlemi (yüksek limitli ödeme, satıcı paneli vb.) açın.
Tamamlandı
Ali Veli, telefonuyla kimlik kartını okutup SMS kodunu girdikten ve konum izni
verdikten sonra sürecin tek imzacısı olduğu için süreç COMPLETED durumuna
geçti; platformun sistemi webhook'u alarak üyeyi "kimliği doğrulandı" olarak
işaretledi — hiçbir belge imzalanmadı, yalnızca kimlik doğrulama kanıtı üretildi.
Adım 6 (Opsiyonel) – Doğrulama Kanıtını Sakla¶
Denetim veya uyuşmazlık durumunda ("üye şu tarihte şu konumda kimliğini doğruladı"
kanıtı) ayrı olarak saklanan JAdES kanıt dosyası indirilebilir. documentId'yi
webhook'tan almadıysanız (ör. henüz gelmediyse) süreç detayından da öğrenebilirsiniz:
GET /api/external/process-instances/512
Yanıttaki documents[0].id alanı, aradığınız documentId'dir (8801).
GET /api/external/process-instances/512/document/8801/files
[
{
"id": 601,
"fileType": "EVIDENCE",
"storedFileId": 9101,
"fileName": "kimlik_dogrulama_kaniti.jades",
"size": 4096,
"linkedAt": "2026-09-15T10:04:32"
}
]
GET /api/external/process-instances/512/document/8801/file/9101
Bu dosya, SMS/konum/NFC doğrulama adımlarının kanıtını ve zaman damgasını mühürler — gerçek bir imzalı belge değildir (bkz. İmza Formatları ve Doğrulama — JAdES).
İlgili Kaynaklar¶
- Süreç Yönetimi API — Süreç Tipleri —
DIJITAL_KIMLIK_DOGRULAMAdetayı - Dosya İmzalama (CAdES/ASiC-E) — İmzacıyı Sürece Bağla —
/signers/all-documentsendpoint'inin (DOSYA_IMZALAMA için yazılmış ama aynı yapıyı kullanan) tam alan referansı - İmzalama Türleri —
TCKK_TIMESTAMP/TCKK_FACE_TIMESTAMP/TCKK_ONBOARDINGkarşılaştırması - İmzacı API — imzacı oluşturma / arama
- Webhook — olay tipleri ve imza doğrulama (HMAC)
- İmza Formatları ve Doğrulama — JAdES kanıt dosyası