API Entegrasyonu
Güçlü REST API ve SDK'larımızla Chaindoc'u uygulamalarınıza entegre edin. Belge iş akışlarını otomatikleştirin, imzaları toplayın ve olayları gerçek zamanlı olarak senkronize edin.
Genel Bakış
Chaindoc, özel belge imzalama iş akışları oluşturmanıza, süreçleri otomatikleştirmenize ve mevcut sistemlerinizle entegre etmenize olanak tanıyan kapsamlı bir REST API sağlar. API, tam TypeScript desteği ve otomatik yeniden deneme özelliği ile geliştiriciler için tasarlanmıştır.
Başlangıç
1. API Erişimi Alın
2. Entegrasyon Yöntemini Seçin
Chaindoc üç entegrasyon yaklaşımı sunar:
- REST API - Maksimum esneklik için doğrudan HTTP istekleri
- Sunucu SDK - Otomatik yeniden deneme özelliğine sahip, tür güvenli Node.js SDK (@chaindoc_io/server-sdk)
- Embed SDK - Web uygulamaları için ön uç imza arayüzü (@chaindoc_io/embed-sdk)
3. Hızlı Örnek
curl -X POST https://api.chaindoc.io/api/v1/documents \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Contract",
"description": "Service agreement",
"status": "published",
"hashtags": ["#contract"],
"meta": []
}'Temel API Kavramları
Kimlik Doğrulama
Tüm API istekleri, Yetkilendirme başlığında API anahtarları kullanılarak kimlik doğrulaması gerektirir:
Authorization: Bearer sk_live_xxxxxxxxxxxxx- Genel Anahtarlar (pk_) - Ön uç uygulamaları için salt okunur erişim
- Gizli Anahtarlar (sk_) - Arka uç sunucuları için tam okuma/yazma erişimi
- Test Anahtarları (pk_test_, sk_test_) - Hazırlık/geliştirme için
- Canlı Anahtarlar (pk_live_, sk_live_) - Üretim için
Hız Sınırları
API uç noktaları, adil kullanımı sağlamak için hız sınırlarına sahiptir:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 8
X-RateLimit-Reset: 1640000000- Genel uç noktalar: 10 saniyede 3 istek
- Medya yükleme: 10 saniyede 3 istek
- Okuma işlemleri: 60 saniyede 10 istek
- İmza oluşturma: 3 saniyede 20 istek
Hata İşleme
API, ayrıntılı hata mesajları içeren standart HTTP durum kodlarını döndürür:
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request",
"details": [
{
"field": "name",
"message": "name must be a string"
}
]
}Yaygın Entegrasyon Modelleri
Belge Yükleme ve İmzalama Akışı
1Dosya YüklePOST /media/upload - PDF, Office belgesi veya resim yükleyin
2Belge OluşturPOST /documents - Blockchain doğrulaması için status='published' ile belge kaydı oluşturun
3İmza İsteği OluşturPOST /signatures/requests - Alıcıları ekleyin ve iş akışını yapılandırın
4Gömülü Oturum OluşturPOST /embedded/sessions - Her imzalayan için oturum oluşturun
5Açık İmza ArayüzüÖn uçta imza akışını açmak için sessionId ile Embed SDK'yı kullanın.
6İlerlemeyi Takip EdinGET /signatures/requests/:id/status - İmzalama sürecini izleyin
7Webhook Alınsignature.request.completed olayı, tüm imzalar toplandığında
Yalnızca Arka Uç İş Akışı
İmzalayanların arayüzünüzü kullanmadığı durumlar için:
// Create signature request with email notifications
const sigRequest = await chaindoc.signatures.createRequest({
versionId: documentVersionId,
recipients: [{ email: 'signer@example.com' }],
deadline: new Date('2024-12-31'),
embeddedFlow: false, // Signers use Chaindoc email links
message: 'Please review and sign this document',
});
// Chaindoc sends emails to recipients
// Track status via webhooks or API pollingToplu Belge İşleme
// Process multiple documents in batch
const documents = ['doc1.pdf', 'doc2.pdf', 'doc3.pdf'];
for (const file of documents) {
const buffer = await readFile(file);
const blob = new Blob([buffer], { type: 'application/pdf' });
const { media } = await chaindoc.media.upload([blob]);
await chaindoc.documents.create({
name: file,
description: 'Batch processed document',
media: media[0],
status: 'published',
hashtags: ['#batch'],
meta: [{ key: 'batch', value: 'import-2024' }],
});
}Gelişmiş Özellikler
Webhook'lar
Belge olayları için gerçek zamanlı bildirimler alın:
// Configure webhook endpoint
app.post('/webhooks/chaindoc', async (req, res) => {
const event = req.headers['x-webhook-event'];
switch (event) {
case 'document.verified':
await handleBlockchainVerification(req.body);
break;
case 'signature.request.completed':
await notifyAllParties(req.body);
break;
}
res.status(200).send('OK');
});KYC Entegrasyonu
Yüksek güvenlikli iş akışları için kimlik doğrulamayı entegre edin:
// Create signature request with KYC required
const sigRequest = await chaindoc.signatures.createRequest({
versionId: documentVersionId,
recipients: [{
email: 'signer@example.com',
shareToken: 'sumsub_token_here' // Optional: pre-verified KYC
}],
deadline: new Date('2024-12-31'),
isKycRequired: true, // Enforce identity verification
});Erişim Kontrolü
Ayrıntılı erişim kontrolü ile belge izinlerini yönetin:
// Update document access rights
await chaindoc.documents.updateRights(documentId, {
accessType: 'restricted',
accessEmails: [
{ email: 'viewer@company.com', level: 'read' },
{ email: 'editor@company.com', level: 'write' },
],
accessRoles: [
{ roleId: 1, level: 'read' }, // Team role
],
});En İyi Uygulamalar
- API anahtarlarını ortam değişkenlerinde saklayın, asla kodda saklamayın
- Geliştirme için test anahtarlarını, üretim için canlı anahtarları kullanın.
- Hız sınırı yönetimi için üstel geri çekilme uygulayın
- Tekrar saldırılarını önlemek için webhook imzalarını doğrulayın
- Uygun olduğunda API yanıtlarını önbelleğe alın
- Daha iyi performans için belgeleri oluşturmadan önce dosyaları yükleyin
- Büyük veri kümeleri için sayfa numaralandırma kullanın.
- Hız sınırı başlıklarını izleyin ve istek sıklığını ayarlayın
Örnek Entegrasyonlar
E-ticaret Platformu
Yüksek değerli siparişler için satın alma sözleşmelerini otomatik olarak oluşturun ve imzalayın.
İK Sistemi
Onboarding sırasında otomatik istihdam sözleşmesi imzalamak için HRIS ile entegre edin.
CRM Entegrasyonu
Salesforce, HubSpot veya özel CRM'deki müşteri kayıtlarından doğrudan imza talepleri oluşturun.
Belge Yönetim Sistemi
Tahrifat önleyici denetim izleri için mevcut DMS'ye blok zinciri doğrulaması ekleyin.
Kaynaklar
- API Belgeleri - Tüm uç noktalarla birlikte eksiksiz REST API referansı
- SDK'lar - Çerçeve örnekleri içeren Sunucu SDK ve Yerleşik SDK belgeleri
- Webhooks - Gerçek zamanlı olay bildirimleri kurulum kılavuzu
- Hızlı Başlangıç - İlk entegrasyonunuzu 10 dakika içinde çalıştırın
- GitHub Örnekleri - Örnek entegrasyonlar ve kod parçacıkları