Ana içeriğe geç

Bulut İmzalama (Autosign)

Bulut İmzalama, DijitalBelge platformunun lisanslı bir hizmetidir. Hesabınıza kayıtlı ve yetkilendirilmiş bir cihazın ilgili bilgisayarda aktif olması koşuluyla, bir sürece TC kimlik numarası ile imzacı olarak eklenen kişinin belgesi otomatik olarak imzalanır.

Süreç üzerinde bulut imzalamayı etkinleştirmek veya devre dışı bırakmak için /autosign endpoint'leri kullanılır.


Nasıl Çalışır?

  1. Hesabınıza bir cihaz kaydedilir ve yetkilendirilir
         │
         ▼
  2. Cihazın kurulu olduğu bilgisayar aktif durumdadır
         │
         ▼
  3. Sürece TC kimlik numarasıyla tanımlı imzacı eklenir
         │
         ▼
  4. /autosign endpoint'i ile süreç için bulut imzalama etkinleştirilir
         │
         ▼
  5. Sistem, kayıtlı cihazda bu TC'ye ait sertifikayı tespit eder
     ve belgeyi otomatik imzalar
         │
         ▼
  6. İmza durumu webhook veya döküman durumu sorgusuyla takip edilir

Gereksinimler

Gereksinim Açıklama
Lisans Bulut İmzalama lisansı aktif olmalıdır
Kayıtlı Cihaz Hesabınıza en az bir cihaz kaydedilmiş ve yetkilendirilmiş olmalıdır
Aktif Bağlantı İmzalama sırasında cihazın kurulu olduğu bilgisayar çevrimiçi ve aktif olmalıdır
TC Kimlik Numarası İmzacının TC kimlik numarası sertifika kaydıyla eşleşmelidir
IP Whitelist /autosign endpoint'leri yalnızca hesaba tanımlı IP adreslerinden çağrılabilir

Genel Bakış

Özellik Değer
Base URL https://app.dijitalbelge.com/api/external
Kimlik Doğrulama X-Client-Id / X-Client-Secret
Gerekli Scope autosign:write
Minimum Paket Enterprise

IP Whitelist Zorunluluğu

Bu endpoint'lere yalnızca hesabınıza tanımlı IP adresleri üzerinden erişilebilir.
Yetkisiz IP'den gelen istekler 403 Forbidden döner.


Endpoints

1. Bulut İmzalamayı Etkinleştir

Belirtilen süreç için bulut imzalamayı etkinleştirir.

Scope: autosign:write

İstek

POST {baseURL}/process-instances/{processId}/autosign

Path Parameters:

Parametre Tip Açıklama
processId number Sürecin ID'si

Request Body

{
  "signerId": 140,
  "expiresHours": 72
}
Alan Tip Zorunlu Açıklama
signerId number Evet Bulut imzalamanın uygulanacağı imzacının ID'si. Sürece daha önce eklenmiş olmalıdır.
expiresHours number Hayır Geçerlilik süresi (saat). Varsayılan: 72

Doğrulama Kuralları

İstek işlenmeden önce aşağıdaki kontroller sırayla yapılır:

Kontrol Hata
signerId alanı gönderilmemiş 400 Bad Request — signerId zorunludur
İmzacı bu süreçte kayıtlı değil 409 Conflict — Bu imzacı bu süreçte bulunamadı
İmzacının TC'sine ait hesapta aktif kayıtlı cihaz yok 409 Conflict — Hesapta kayıtlı aktif cihazı bulunmuyor

Tüm kontroller geçerse yalnızca o imzacı için AutoSignProcess oluşturulur veya güncellenir.

Başarılı Yanıt

HTTP 200 OK

{
  "processId": 147,
  "enabled": true,
  "expiresAt": "2026-01-08T20:00:00",
  "autoSignToken": "as_xxxxxx"
}
Alan Tip Açıklama
processId number Sürecin ID'si
enabled boolean Bulut imzalamanın aktif olup olmadığı
expiresAt string Geçerlilik bitiş tarihi (ISO 8601)
autoSignToken string Otomatik imzalama token'ı

Örnek cURL

curl -X POST https://app.dijitalbelge.com/api/external/process-instances/147/autosign \
  -H "Content-Type: application/json" \
  -H "X-Client-Id: app_xxxxx" \
  -H "X-Client-Secret: secret_xxxxx" \
  -d '{
    "signerId": 140,
    "expiresHours": 72
  }'

2. Bulut İmzalamayı Devre Dışı Bırak

Belirtilen süreç için etkin olan bulut imzalamayı iptal eder.

Scope: autosign:write

İstek

DELETE {baseURL}/process-instances/{processId}/autosign

Path Parameters:

Parametre Tip Açıklama
processId number Sürecin ID'si

Başarılı Yanıt

HTTP 200 OK

ok

Örnek cURL

curl -X DELETE https://app.dijitalbelge.com/api/external/process-instances/147/autosign \
  -H "X-Client-Id: app_xxxxx" \
  -H "X-Client-Secret: secret_xxxxx"

Otomatik İmzalamada Sıralama (stepOrder)

Otomatik imzalama, imzacıların stepOrder değerini dikkate alarak çalışır. Her döngüde yalnızca sırası gelen imzacılar kuyruğa alınır.

Davranış Kuralları

stepOrder değeri Davranış
null veya 0 Sıralama kontrolü yapılmaz, her zaman kuyruğa eklenir
N (N > 0) Aynı belgedeki imzalanmamış görevlerin en düşük stepOrder'ı N ise kuyruğa eklenir; değilse atlanır

Örnek

Adım İmzacı Durum Sonuç
1 A İmzalamadı Kuyruğa eklenir
1 B İmzalamadı Kuyruğa eklenir
2 C (oto-imza aktif) İmzalamadı Atlanır — adım 1 henüz bitmedi

Adım 1'deki tüm imzacılar (A ve B) imzasını tamamladığında, bir sonraki döngüde C kuyruğa alınır ve otomatik imzalama gerçekleşir.

Önemli

Otomatik imzalama etkinleştirilmiş bir imzacının stepOrder'ı önceki adımdaki tüm imzacılar tamamlanmadan işlem yapılmaz. Bu davranış kasıtlıdır; sıra bekleyen imzacılar için sistemi tekrar tetiklemenize gerek yoktur, adım tamamlandığında otomatik olarak devreye girer.


Tam Entegrasyon Akışı

# 1. Süreç oluştur
PROCESS_ID=$(curl -s -X POST https://app.dijitalbelge.com/api/external/process-instances \
  -H "Content-Type: application/json" \
  -H "X-Client-Id: app_xxxxx" \
  -H "X-Client-Secret: secret_xxxxx" \
  -d '{"name": "Bulut İmza Süreci"}' | jq -r '.id')

# 2. Döküman ekle
DOC_ID=$(curl -s -X POST https://app.dijitalbelge.com/api/external/process-instances/$PROCESS_ID/document/single \
  -H "Content-Type: application/json" \
  -H "X-Client-Id: app_xxxxx" \
  -H "X-Client-Secret: secret_xxxxx" \
  -d '{"name":"Sözleşme.pdf","base64":"JVBERi0...","fileName":"sozlesme.pdf"}' | jq -r '.id')

# 3. TC kimlik numarasıyla tanımlı imzacıyı ekle
curl -X POST https://app.dijitalbelge.com/api/external/process-instances/$PROCESS_ID/document/$DOC_ID/signers \
  -H "Content-Type: application/json" \
  -H "X-Client-Id: app_xxxxx" \
  -H "X-Client-Secret: secret_xxxxx" \
  -d '{"signerId": 138}'

# 4. Bulut imzalamayı etkinleştir (signerId zorunlu)
curl -X POST https://app.dijitalbelge.com/api/external/process-instances/$PROCESS_ID/autosign \
  -H "Content-Type: application/json" \
  -H "X-Client-Id: app_xxxxx" \
  -H "X-Client-Secret: secret_xxxxx" \
  -d '{"signerId": 138, "expiresHours": 72}'

# 5. Süreci başlat
curl -X PUT https://app.dijitalbelge.com/api/external/process-instances/$PROCESS_ID/status/start \
  -H "X-Client-Id: app_xxxxx" \
  -H "X-Client-Secret: secret_xxxxx"

İmza Durumu Takibi

İmzalama tamamlanınca durum güncellenir. İki yöntemle takip edebilirsiniz:

curl -X GET https://app.dijitalbelge.com/api/external/process-instances/147/document/7203 \
  -H "X-Client-Id: app_xxxxx" \
  -H "X-Client-Secret: secret_xxxxx"

Yanıttaki statusCode alanını izleyin:

Durum Açıklama
PENDING İmza bekleniyor
SIGNED İmzalandı
FAILED İmzalama başarısız
EXPIRED İmzalama süresi doldu

Webhook tanımlıysa sistem, imzalama tamamlandığında belirlediğiniz URL'ye POST isteği gönderir.

{
  "event": "DOCUMENT_SIGNED",
  "processId": 147,
  "documentId": 7203,
  "signerId": 138,
  "signedAt": "2026-01-06T10:00:00"
}

Hata Yanıtları

HTTP Kodu Açıklama
400 signerId gönderilmemiş
401 Kimlik doğrulama başarısız
403 IP adresi whitelist'te tanımlı değil veya scope yetersiz
404 Süreç bulunamadı
409 İmzacı bu süreçte bulunamadı veya hesapta aktif kayıtlı cihaz yok
500 Sunucu hatası

Sık Sorulan Sorular

Cihaz çevrimdışıysa ne olur?
İmzalama tetiklenir ancak cihaz bağlantı kurulana kadar bekleme durumunda kalır. Belirli bir süre sonra FAILED durumuna düşer.

Birden fazla kayıtlı cihaz olabilir mi?
Evet. Hesabınıza birden fazla cihaz kaydedebilirsiniz. Sistem, imzacının TC numarasıyla eşleşen aktif cihazı seçer.

TC numarası yanlış girilirse ne olur?
Eşleşen sertifika bulunamaz, imzalama tetiklenmez ve döküman PENDING durumunda kalır.


İlgili Sayfalar