Hızlı başlangıç rehberi

Chaindoc'u 10 dakika içinde çalışır hale getirin. Bu rehber hem web arayüzünü hem de API'yi kapsar, böylece size uygun olanı seçebilirsiniz.

Web arayüzü üzerinden imzalama

İlk imza isteğinizi göndermek için hiçbir kod yazmanıza gerek yok. Web uygulaması her şeyi halleder: yükleme, alıcılar, imza akışı ve blockchain doğrulama.

Adım adım: ilk imzanız

1Hesabınızı oluşturunapp.chaindoc.io adresinden kaydolun ve e-postanızı doğrulayın. Yaklaşık 30 saniye sürer.

2Belge yükleyin"Yeni Belge"ye tıklayın ve dosyanızı sürükleyin. Chaindoc, PDF, Office belgelerini ve 50MB'a kadar resimleri destekler.

3Detayları doldurunBir ad verin, isterseniz açıklama ekleyin ve erişim seviyesi seçin (özel, ekip veya herkese açık). Etiketler isteğe bağlıdır ancak sonra aramada yardımcı olur.

4İmza isteği oluşturun"İmza İste"ye tıklayın, imzalayıcı e-postalarını ekleyin, son tarih belirleyin ve mesaj yazın. İmza sırası paralel (herkes aynı anda) veya sıralı (tek tek) olabilir.

5GönderinDetayları gözden geçirin ve gönderin. Her alıcı güvenli bir imza bağlantısı içeren e-posta alır. Kimlik kontrolüne ihtiyacınız varsa KYC doğrulamasını da etkinleştirebilirsiniz.

6İlerlemeyi takip edinGösterge paneli kimlerin imzaladığını ve kimin imzalamadığını gerçek zamanlı gösterir. Her imza geldiğinde bildirim alırsınız.

7İmzalı kopyayı indirinHerkes imzaladığında, son belgeyi indirin. Belgenin değiştirilmediğini kanıtlayan bir blockchain doğrulama sertifikası ile birlikte gelir.

Farklı imza türlerini (basit, gelişmiş, nitelikli) anlamak ister misiniz? Bu uyumluluk için önemlidir. Çoğu iş sözleşmesi basit e-imzalarla çalışır, ancak düzenlenmiş sektörler genellikle gelişmiş veya nitelikli imza gerektirir.

API ile entegrasyon

Kendi uygulamanıza imzalama özelliği ekliyorsanız, REST API ve TypeScript SDK'larını kullanacaksınız. Akış web arayüzüyle aynıdır, sadece otomatiktir.

1. API anahtarlarınızı alın

API erişimi Business plan gerektirir. Gösterge panelinizde Ayarlar > API Erişimi'ne gidin ve iki anahtar oluşturun:

  • Public key (`pk_`) Embed SDK ile ön uç kullanımı için
  • Secret key (`sk_`) Server SDK ile arka uç kullanımı için. Bunu istemci tarafı kodundan uzak tutun.

2. SDK'yı kurun

Kullanım alanınıza uygun SDK'yı seçin. Çoğu uygulama ikisine de ihtiyaç duyar: belge oluşturmak için Server SDK ve imza arayüzü için Embed SDK.

# Node.js 18+ required
npm install @chaindoc_io/server-sdk

Detaylı framework kurulumu (React, Vue, Angular, Next.js) için kurulum rehberine bakın.

3. Belge yükleyin ve oluşturun

server.ts
import { Chaindoc } from '@chaindoc_io/server-sdk';
import { readFile } from 'fs/promises';

// Initialize SDK
const chaindoc = new Chaindoc({
  secretKey: process.env.CHAINDOC_SECRET_KEY!,
});

// 1. Upload document
const buffer = await readFile('./contract.pdf');
const file = new Blob([buffer], { type: 'application/pdf' });
const { media } = await chaindoc.media.upload([file]);

// 2. Create document record
const doc = await chaindoc.documents.create({
  name: 'Service Agreement',
  description: 'Q4 2024 Contract',
  media: media[0],
  status: 'published', // Triggers blockchain verification
  hashtags: ['#contract', '#2024'],
  meta: [{ key: 'client', value: 'Acme Corp' }],
});

console.log('Document created:', doc.documentId);

`status: 'published'` ayarı blockchain doğrulamayı otomatik olarak tetikler. Beklemek isterseniz, `'draft'` kullanın ve sonra yayınlayın.

4. İmza isteği oluşturun

server.ts
// Create signature request for multiple signers
const sigRequest = await chaindoc.signatures.createRequest({
  versionId: doc.document.versions[0].uuid,
  recipients: [
    { email: 'signer1@example.com' },
    { email: 'signer2@example.com' },
  ],
  deadline: new Date('2024-12-31'),
  message: 'Please review and sign this agreement',
  embeddedFlow: true, // Enable for frontend integration
});

console.log('Signature request created:', sigRequest.signatureRequest.uuid);

İmza arayüzünü uygulamanızın içinde gösterecekseniz `embeddedFlow: true` ayarlayın. Bunu yapmadan imzalayıcılar Chaindoc'un barındırılan imza sayfasına bağlantı alır.

5. İmza arayüzünü gösterin (frontend)

Bu isteğe bağlıdır. `embeddedFlow: true` ayarlarsanız, imza arayüzünü uygulamanızın içinde açabilirsiniz. Önce arka uçta bir oturum oluşturun, sonra oturum ID'sini ön uca iletin.

// Create embedded session for signer
const session = await chaindoc.embedded.createSession({
  email: 'signer1@example.com',
  metadata: {
    documentId: doc.documentId,
    signatureRequestId: sigRequest.signatureRequest.uuid,
  },
});

// Return sessionId to frontend
res.json({ sessionId: session.sessionId });

6. Durumu kontrol edin ve olayları dinleyin

Durumu yoklayabilirsiniz, ancak üretim için webhook'lar daha iyi bir seçenektir. Sunucunuzu bir şey olduğunda anında bilgilendirirler.

terminal
// Poll approach (fine for testing)
const status = await chaindoc.signatures.getRequestStatus(
  sigRequest.signatureRequest.uuid
);

if (status.signatureRequest.status === 'completed') {
  console.log('All signatures collected!');
}

7. Webhook'ları ayarlayın (önerilir)

Webhook'lar olayları gerçek zamanlı olarak sunucunuza gönderir, böylece sürekli kontrol etmeniz gerekmez. İşte temel bir Express işleyici:

webhooks.ts
// Configure webhook endpoint
app.post('/webhooks/chaindoc', (req, res) => {
  const event = req.headers['x-webhook-event'];
  const payload = req.body;
  
  switch (event) {
    case 'document.verified':
      console.log('Document verified on blockchain:', payload.txHash);
      break;
    case 'signature.request.completed':
      console.log('All signatures collected!');
      // Send notifications, update status, etc.
      break;
  }
  
  res.status(200).send('OK');
});

Üretimde, payload'un gerçekten Chaindoc'tan geldiğinden emin olmak için webhook imzalarını HMAC ile doğrulamalısınız. Webhook rehberi bunu detaylı olarak kapsar.

Tam iş akışı örneği

Bu her şeyi bir araya getirir: yükleme, oluşturma, imzalama, doğrulama. Kopyalayın, API anahtarlarınızı ekleyin ve çalışan bir prototipiniz olsun.

complete-workflow.ts
import { Chaindoc } from '@chaindoc_io/server-sdk';
import { readFile } from 'fs/promises';

async function createSigningWorkflow() {
  const chaindoc = new Chaindoc({
    secretKey: process.env.CHAINDOC_SECRET_KEY!,
  });
  
  // Step 1: Upload document
  const buffer = await readFile('./contract.pdf');
  const file = new Blob([buffer], { type: 'application/pdf' });
  const { media } = await chaindoc.media.upload([file]);
  
  // Step 2: Create document
  const doc = await chaindoc.documents.create({
    name: 'Service Agreement',
    description: 'Contract for consulting services',
    media: media[0],
    status: 'published',
    hashtags: ['#contract'],
    meta: [],
  });
  
  // Step 3: Create signature request
  const sigRequest = await chaindoc.signatures.createRequest({
    versionId: doc.document.versions[0].uuid,
    recipients: [{ email: 'signer@example.com' }],
    deadline: new Date('2024-12-31'),
    embeddedFlow: true,
  });
  
  // Step 4: Create session for frontend
  const session = await chaindoc.embedded.createSession({
    email: 'signer@example.com',
    metadata: {
      documentId: doc.documentId,
      signatureRequestId: sigRequest.signatureRequest.uuid,
    },
  });
  
  return {
    documentId: doc.documentId,
    sessionId: session.sessionId,
  };
}

// Usage
const { documentId, sessionId } = await createSigningWorkflow();
console.log('Ready for signing:', { documentId, sessionId });

Sırada ne var

Artık temelleri öğrendiğinize göre, ne geliştirdiğinize bağlı olarak derinlemesine inceleyebileceğiniz konular:

  • Kurulum — React, Vue, Angular ve Next.js için framework özel kurulum
  • API dokümantasyonu — tam endpoint referansı ve istek/yanıt örnekleri
  • SDK'lar — Server SDK ve Embed SDK, framework başına entegrasyon rehberleriyle
  • Webhook'lar — üretim uygulamaları için gerçek zamanlı olay bildirimleri
  • Güvenlik en iyi uygulamaları — canlıya geçmeden önce kilitlenmesi gerekenler

Sık sorulan sorular

Blockchain doğrulaması ne kadar sürer?

Genellikle 1-5 dakika, ağa bağlı olarak. Belgeniz hemen kullanılabilir. Doğrulama arka planda çalışır ve bittiğinde webhook olayı alırsınız.

API'yi ücretsiz test edebilir miyim?

Ücretsiz plan web arayüzüne erişim sağlar. API erişimi Business plan gerektirir, ancak sandbox ortamı gerçek verileri etkilemeden ve kota kullanmadan her şeyi test etmenize olanak tanır.

Bu imzalar hukuken bağlayıcı mı?

Evet. Chaindoc imzaları Avrupa'da eIDAS, ABD'de ESIGN Act ve UETA, ve çoğu diğer yargı bölgesindeki eşdeğer düzenlemelere uygundur. Blockchain doğrulama, bunun üzerine anlaşmazlıklarda önemli olabilen ek bir kanıt katmanı ekler. Uyumluluk ihtiyaçlarınıza hangi imza türünün uyduğunu öğrenmek için imza dokümantasyonuna bakın.

Hangi dosya formatlarını yükleyebilirim?

PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, JPG, PNG, GIF, WEBP, SVG, MP4, AVI, MOV ve WMV. Maksimum dosya boyutu 50MB'dir.