Guida rapida
Inizia a usare Chaindoc in meno di 10 minuti. Questa guida spiega sia l'interfaccia web che l'integrazione API per gli sviluppatori.
Per gli utenti finali
Passo dopo passo: la tua prima firma
1IscrivitiCrea il tuo account gratis su app.chaindoc.io. Conferma il tuo indirizzo email.
2Carica documentoClicca su "Nuovo documento" e carica il tuo file. Supporta PDF, documenti Office, immagini (fino a 50 MB).
3Aggiungi dettagli del documentoInserisci il nome del documento, la descrizione e i tag per organizzarlo. Scegli il livello di accesso (privato, team o pubblico).
4Crea richiesta di firmaClicca su "Richiedi firme", aggiungi gli indirizzi e-mail dei destinatari, imposta la scadenza e personalizza il messaggio.
5Configura il flusso della firmaScegli l'ordine di firma (in parallelo o in sequenza), attiva KYC se serve, scegli le preferenze di notifica.
6Invia richiestaControlla e invia. I destinatari riceveranno un'e-mail con un link sicuro per la firma.
7Tieni traccia dei progressiTieni d'occhio lo stato delle firme in tempo reale. Ricevi notifiche quando le firme sono state raccolte.
8Scarica il documento firmatoUna volta finito, scarica il documento firmato con il certificato blockchain.
Per gli sviluppatori
Integra Chaindoc nella tua app usando la nostra API REST e gli SDK.
1. Prendi le chiavi API
2. Installa l'SDK
Scegli l'SDK in base al tuo caso d'uso:
# Node.js 18+ required
npm install @chaindoc_io/server-sdk3. Crea il tuo primo documento tramite API
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);4. Crea una richiesta di firma
// 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);5. Integrare l'interfaccia di firma (frontend)
Per la firma incorporata nella tua app web:
// 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. Tieni traccia dello stato e gestisci gli eventi
// Check signature request status
const status = await chaindoc.signatures.getRequestStatus(
sigRequest.signatureRequest.uuid
);
if (status.signatureRequest.status === 'completed') {
console.log('All signatures collected!');
// Download signed document
// Send notifications
// Update your database
}7. Configura i webhook (facoltativo)
Ricevi notifiche in tempo reale sugli eventi:
// 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');
});Esempio completo di flusso di lavoro
Ecco un esempio completo che mette insieme tutti i passaggi:
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 });Passi successivi
- Dai un'occhiata alla guida all'installazione per sapere come configurare l'SDK.
- Dai un'occhiata alla documentazione API per un riferimento completo agli endpoint.
- Dai un'occhiata alla documentazione degli SDK per esempi specifici del framework (React, Vue, Angular).
- Configura i webhook per ricevere notifiche in tempo reale sugli eventi
- Dai un'occhiata alle migliori pratiche di sicurezza per l'implementazione in produzione.
Domande frequenti
Quanto tempo ci vuole per la verifica della blockchain?
La verifica della blockchain di solito ci mette 1-5 minuti, a seconda della rete. I documenti sono disponibili subito, la verifica avviene in modo asincrono.
Posso fare una prova senza un piano a pagamento?
Sì! Il piano gratuito include l'accesso all'interfaccia web. Per accedere all'API serve il piano Business, ma puoi usare l'ambiente sandbox per fare dei test.
Le firme sono legalmente vincolanti?
Sì, le firme Chaindoc sono in linea con le normative eIDAS, ESIGN Act e UETA. La verifica blockchain offre un'ulteriore prova legale.
Quali formati di file sono supportati?
PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, JPG, PNG, GIF, WEBP, SVG, MP4, AVI, MOV, WMV. Dimensione massima del file: 50 MB.