Geliştirici

E-imzayı kendi uygulamanıza ekleyin

W.Sign, imzanın zor kısmını üstlenir: imzalı özniteliklerin kurulması, zaman damgası, sertifika zinciri ve iptal kontrolü, uzun dönemli imza yapıları. Sizin tarafınızda kalan iş bir HTTP çağrısı.

Üç entegrasyon yolu

İhtiyacınıza en yakın olanı seçin; üçü de aynı imza altyapısını kullanır.

Başlarken

  1. 1

    Geliştirici konsolunda entegratör kaydı açın

    Portala giriş yapıp Geliştirici bölümünden kendi entegratör kaydınızı oluşturursunuz. Kayıt açıldığında bir API anahtarı üretilir; anahtar yalnızca bir kez gösterilir, kaybederseniz konsoldan yeniden üretebilirsiniz.
  2. 2

    İzin listelerinizi tanımlayın

    Kullanıcının imza sonrası döneceği adresler ve — kullanacaksanız — webhook adresiniz alan adı bazında izin listesine girer. Listede olmayan bir adrese yönlendirme yapılmaz; bu, oturumunuzun başka bir siteye taşınmasını engeller.
  3. 3

    Zaman damgası hesabınızı girin

    Zaman damgalı ve uzun dönemli profiller için RFC 3161 sunucu adresiniz ve kimlik bilgileriniz konsoldan tanımlanır. Damga sizin kontörünüzden düşer; parola şifreli saklanır ve bir daha okunamaz.
  4. 4

    İsteklerinizi API anahtarıyla imzalayın

    Sunucudan sunucuya yapılan tüm çağrılarda anahtarı başlıkta gönderirsiniz:X-WSign-Api-Key: <api-anahtarınız>Anahtar yalnızca sunucu tarafında durmalıdır — tarayıcıya koymayın.

Yönlendirmeli imza oturumu

Kullanıcıya imza attırmanın en kısa yolu. Belgeyi ve dönüş adreslerinizi gönderir, karşılığında bir imza bağlantısı alırsınız; kullanıcıyı oraya yönlendirirsiniz. İmza tamamlandığında kullanıcı sizin adresinize döner ve sonucu üç yoldan biriyle alırsınız.

1. Oturumu açın

POST https://api.sign.wsoft.tr/v1/redirect-sign/sessions
X-WSign-Api-Key: <api-anahtarınız>
Content-Type: application/json

{
  "documentBase64":     "<belge içeriği, base64>",
  "documentName":       "Sozlesme.pdf",
  "successRedirectUrl": "https://uygulamaniz.com/imza/tamam",
  "cancelRedirectUrl":  "https://uygulamaniz.com/imza/iptal",
  "nonce":              "<base64, en az 16 bayt rastgele>",
  "signatureProfile":   "CAdES-T",
  "ttlMinutes":         15
}

201 Created yanıtında sessionId, kullanıcıyı göndereceğiniz redirectUrl, expiresAt ve zaman damgası uygulanıp uygulanmayacağını belirten timestamped döner.

2. Kullanıcıyı yönlendirin

Kullanıcı imza sayfasında belgeyi görür, kartını takar ve PIN'ini girer. İmza kartın üzerinde üretilir; özel anahtar hiçbir aşamada cihazdan çıkmaz. Ardından belirttiğiniz adrese döner.

3. Sonucu alın — üç yol

Webhook

Sonuç sunucunuza POST edilir. Gövde X-WSign-Signature: sha256=<hex> başlığıyla HMAC-SHA256 imzalanır; doğrulamadan işlemeyin.

Tarayıcı POST'u

Oturumu returnMode=post ile açarsanız sonuç kullanıcının tarayıcısı üzerinden adresinize POST edilir. Dışarıdan erişilemeyen sunucular için.

Sonucu çekme

Oturum kimliğiyle sonuç ucundan çekersiniz. Webhook tanımlamak zorunda değilsiniz.

Üç yolun da taşıdığı yük aynıdır ve aynı HMAC ile imzalanır — birinden diğerine geçmek için doğrulama kodunuzu değiştirmeniz gerekmez. Gönderdiğiniz nonce yükte geri döner; oturumu kendi kaydınızla eşleştirmek için kullanın.

Özet üzerinden imzalama

Kendi arayüzünüzü koruyarak imzalamak istediğinizde. İki adımlıdır: sunucu imzalanacak veriyi hazırlar, kartın ürettiği ham imzayı geri gönderirsiniz, imzalı yapıyı sunucu tamamlar. Belge kullanıcının bilgisayarına inmez, imza mantığı sizde değil bizde kalır.

Adım 1 — hazırla

POST https://api.sign.wsoft.tr/v1/sign/hash/prepare
X-WSign-Api-Key: <api-anahtarınız>
Content-Type: application/json

{
  "algorithm":       "CAdES-T",
  "content":         "<belge içeriği, base64>",
  "certificateId":   "<imzalayanın sertifikası>",
  "digestAlgorithm": "SHA-256"
}

Yanıt: sessionId, karta imzalatacağınız dataToSign (base64) ve oturumun geçerlilik süresi.

Adım 2 — tamamla

Kartın ürettiği ham imzayı sessionId ile birlikte /v1/sign/hash/complete ucuna gönderirsiniz. Yanıtta imzalı yapı ve imzalayan sertifika döner; zaman damgası, zincir ve iptal verisi seçtiğiniz profile göre içine yerleştirilmiş olur.

Profiller

ProfilNe verirGereksinim
CAdES-BESTemel imza.
CAdES-TZaman damgalı imza; imzanın ne zaman atıldığı kanıtlanır.Zaman damgası hesabı
CAdES-ESXLongUzun dönemli imza; sertifika ve iptal bilgisi imzanın içine gömülür, sertifikanın süresi dolduktan sonra da doğrulanır.Zaman damgası hesabı
XAdES-B-BXML belgeler için zarflanmış imza.Belge iyi biçimli XML olmalı
XAdES-ESXLongXML için uzun dönemli imza.Zaman damgası hesabı + XML

PDF yüklediğinizde portal akışı imzayı PDF'in içine gömer (PAdES) ve uzun dönemli seviyede üretir; imza, standart PDF görüntüleyicilerin imza panelinde görünür.

Doğrulama

Doğrulama ucu API anahtarı istemez. İmzalı PDF, CAdES (.p7s, .cms, .p7m) veya XAdES (.xml) dosyasını gönderirsiniz; imzanın geçerliliği, imzalayan sertifika, zaman damgası ve uzun dönem doğrulama bilgileri döner. Belgede birden fazla imza varsa hepsi listelenir.

POST https://api.sign.wsoft.tr/v1/verify/upload
Content-Type: multipart/form-data

file=@sozlesme.pdf
# ayrık imzada orijinal dosyayı da ekleyin:
# detached=@sozlesme.pdf.p7s

Aynı işi tarayıcıdan denemek için imza doğrulayıcıyı kullanabilirsiniz — kurulum ve hesap gerekmez.

Limitler ve hata kodları

Limitler

  • • Belge boyutu: 50 MB (API), doğrulamada da aynı tavan.
  • • Oturum ömrü: varsayılan 15 dakika, açarken değiştirilebilir.
  • • Aylık oturum kotası entegratör başına tanımlıdır; konsoldan görürsünüz.
  • • İstek hızı sınırlıdır; sınıra takılırsanız 429 ve Retry-After alırsınız.

Sık karşılaşılan hatalar

  • TSA_NOT_CONFIGURED — damgalı profil seçtiniz ama zaman damgası hesabınız tanımlı değil.
  • CALLBACK_NOT_CONFIGURED — webhook adresi gönderdiniz ama izin listenizde webhook alan adı yok.
  • INVALID_XML_CONTENT — XAdES seçtiniz ama belge geçerli XML değil.
  • INVALID_NONCE — nonce base64 olmalı ve en az 16 bayta çözülmeli.
  • QUOTA_EXCEEDED — aylık oturum kotanız dolmuş.

Denemeye hazır mısınız?

Geliştirici konsolundan kendi entegratör kaydınızı açın; kurumsal kurulum ve kapalı ağ senaryoları için bize yazın.