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.
Yönlendirmeli imza
Kullanıcı imzalayacaksa
Kullanıcıyı imza sayfasına yönlendirirsiniz, imza bitince uygulamanıza döner. 3D Secure akışına benzer; imza arayüzünü siz yazmazsınız.
Özet üzerinden imzalama
Kendi arayüzünüzü koruyacaksanız
Sunucu imzalanacak veriyi hazırlar, imza kullanıcının kartında üretilir, imzalı yapıyı sunucu tamamlar. Belge istemciye inmez.
Doğrulama
Gelen imzayı kontrol edecekseniz
İmzalı PDF, CAdES veya XAdES dosyasını gönderin; imza geçerliliği, imzalayan sertifika ve zaman damgası bilgisi dönsün.
Başlarken
- 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
İ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
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
İ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
| Profil | Ne verir | Gereksinim |
|---|---|---|
| CAdES-BES | Temel imza. | — |
| CAdES-T | Zaman damgalı imza; imzanın ne zaman atıldığı kanıtlanır. | Zaman damgası hesabı |
| CAdES-ESXLong | Uzun 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-B | XML belgeler için zarflanmış imza. | Belge iyi biçimli XML olmalı |
| XAdES-ESXLong | XML 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.p7sAynı 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
429veRetry-Afteralı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.