Kiirjuhend

Hakka Chaindoc'iga tööle alla 10 minutiga. See juhend viib sind läbi nii veebiliidese kui ka API, et saaksid valida endale sobiva tee.

Allkirjastamine veebiliidese kaudu

Esimeste allkirjade saatmiseks ei ole koodi vaja. Veebirakendus haldab kõike: üleslaadimine, adressaadid, allkirjastamise voog ja blockchain verifitseerimine.

Samm-sammult: sinu esimene allkiri

1Loo kontoRegistreeru aadressil app.chaindoc.io ja kinnita oma e-post. Võtab umbes 30 sekundit.

2Laadi dokument ülesKliki "Uus dokument" ja lohista fail sisse. Chaindoc toetab PDF, Office dokumente ja pilte kuni 50MB.

3Täida üksikasjadAnna sellele nimi, lisa soovi korral kirjeldus ja vali juurdepääsutase (privaatne, meeskond või avalik). Sildid on valikulised, kuid aitavad hiljem otsimisel.

4Loo allkirja pöördumineKliki "Palu allkirju", lisa allkirjastajate e-posti aadressid, sea tähtaeg ja kirjuta sõnum. Allkirjastamise järjekord võib olla paralleelne (kõik allkirjastavad korraga) või järjestikune (üks korraga).

5SaadaKontrolli üksikasjad ja vajuta saada. Iga adressaat saab e-kirja turvalise allkirjastamise lingiga. Võid ka lubada KYC verifitseerimise, kui vajad isikutuvastust.

6Jälgi progressiTöölaud näitab reaalajas, kes on allkirjastanud ja kes mitte. Saad teate iga allkirja saabumisel.

7Laadi alla allkirjastatud koopiaKui kõik on allkirjastanud, laadi alla lõplik dokument. See sisaldab blockchain verifitseerimise tunnistust, mis tõendab, et dokumenti pole muudetud.

Tahad mõista erinevaid allkirja tüüpe (lihtne, täiustatud, kvalifitseeritud)? See on oluline vastavuse seisukohalt. Enamik ärilepinguid töötab hästi lihtsate digiallkirjadega, kuid reguleeritud tööstusharjad vajavad sageli täiustatud või kvalifitseeritud allkirju.

Integreerimine API kaudu

Kui ehitad allkirjastamise oma rakendusse, kasutad REST API ja TypeScript SDK-sid. Voog on sama mis veebiliideses, lihtsalt automatiseeritud.

1. Hangi oma API võtmed

API juurdepääs nõuab Business plaani. Mine oma töölaual Settings > API Access ja loo kaks võtit:

  • Avalik võti (`pk_`) frontend'i kasutamiseks Embed SDK-ga
  • Salajane võti (`sk_`) backend'i kasutamiseks Server SDK-ga. Hoia see kliendipoolsest koodist eemal.

2. Paigalda SDK

Vali SDK, mis sobib sinu kasutusjuhtumiga. Enamik rakendusi vajab mõlemat: Server SDK dokumentide loomiseks ja Embed SDK allkirjastamise kasutajaliidese jaoks.

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

Üksikasjaliku raamistiku seadistuse (React, Vue, Angular, Next.js) kohta vaata paaldusjuhendit.

3. Laadi üles ja loo dokument

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'` seadistamine käivitab blockchain verifitseerimise automaatselt. Kui soovid oodata, kasuta `'draft'` ja avalda hiljem.

4. Loo allkirja pöördumine

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);

Sea `embeddedFlow: true`, kui kavatsed näidata allkirjastamise kasutajaliidest oma rakenduses. Ilma selleta saavad allkirjastajad lingi Chaindoc'i hostitud allkirjastamise lehele.

5. Näita allkirjastamise liidest (frontend)

See on valikuline. Kui seadsid `embeddedFlow: true`, saad avada allkirjastamise liidese otse oma rakenduses. Esmalt loo sessioon backend'is, seejärel edasta sessiooni ID frontend'ile.

// 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. Kontrolli staatust ja kuula sündmusi

Saad staatust küsitleda, kuid webhook'id on tootmiseks parem valik. Need teavitavad sinu serverit kohe, kui midagi juhtub.

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. Seadista webhook'id (soovitatav)

Webhook'id tõukavad sündmused sinu serverisse reaalajas, nii et sa ei pea pidevalt kontrollima. Siin on põhiline Express handler:

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');
});

Tootmises peaksid veenduma, et webhook allkirjad on HMAC-ga verifitseeritud, et olla kindel, et päring tõesti tuli Chaindoc'ist. Webhook'ide juhend käsitleb seda üksikasjalikult.

Täielik töövoo näide

See paneb kõik kokku: üleslaadimine, loomine, allkirjastamine, verifitseerimine. Kopeeri see, asenda oma API võtmed ja sul on töötav prototüüp.

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 });

Kuhu edasi minna

Nüüd, kui oled põhitõed selgeks saanud, siin on, mida uurida olenevalt sellest, mida ehitad:

  • Paigaldus — raamistikupõhine seadistus React, Vue, Angular ja Next.js jaoks
  • API dokumentatsioon — täielik endpoint viide päringu/vastuse näidetega
  • SDK-d — Server SDK ja Embed SDK raamistikupõhiste integratsioonijuhenditega
  • Webhook'id — reaalajas sündmuste teavitused tootmisrakendustele
  • Turbe parimad tavad — mida lukustada enne elama minekut

Sagedased küsimused

Kui kaua blockchain verifitseerimine aega võtab?

Tavaliselt 1-5 minutit, olenevalt võrgust. Sinu dokument on kohe saadaval. Verifitseerimine toimub taustal ja saad webhook sündmuse, kui see on valmis.

Kas saan API-d tasuta testida?

Tasuta plaan annab juurdepääsu veebiliidesele. API juurdepääs vajab Business plaani, kuid sandbox keskkond võimaldab testida kõike, ilma et see mõjutaks päris andmeid või kasutaks kvooti.

Kas need allkirjad on õiguslikult siduvad?

Jah. Chaindoc allkirjad vastavad eIDAS-ile Euroopas, ESIGN Act'ile ja UETA-le USAs ning samaväärsetele määrustele enamikus teistes jurisdiktsioonides. Blockchain verifitseerimine lisab sellele veel ühe tõendamiskihi, mis võib vaidlustes oluline olla. Vaata allkirjade dokumentatsiooni üksikasjadeks, milline allkirja tüüp sobib sinu vastavusvajadustele.

Milliseid failiformaate saan üles laadida?

PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, JPG, PNG, GIF, WEBP, SVG, MP4, AVI, MOV ja WMV. Maksimaalne failisuurus on 50MB.