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:

terminal
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:

terminal
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:

terminal
{
  "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:

terminal
// 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 polling

Toplu Belge İşleme

terminal
// 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:

terminal
// 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:

terminal
// 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:

terminal
// 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ı