Guia de início rápido
Comece a usar o Chaindoc em menos de 10 minutos. Este guia abrange tanto a interface web quanto a integração da API para desenvolvedores.
Para utilizadores finais
Passo a passo: a tua primeira assinatura
1Inscreva-seCrie a sua conta gratuita em app.chaindoc.io. Confirme o seu endereço de e-mail.
2Carregar documentoClique em «Novo documento» e carregue o seu ficheiro. Suporta PDF, documentos do Office, imagens (até 50 MB).
3Adicionar detalhes do documentoDigite o nome do documento, a descrição e as tags para organização. Escolha o nível de acesso (privado, equipa ou público).
4Criar pedido de assinaturaClique em «Solicitar assinaturas», adicione os e-mails dos destinatários, defina o prazo e personalize a mensagem.
5Configurar o fluxo de assinaturasEscolha a ordem de assinatura (paralela ou sequencial), habilite o KYC, se necessário, e selecione as preferências de notificação.
6Enviar pedidoRevê e envia. Os destinatários recebem um e-mail com um link seguro para assinatura.
7Acompanhe o progressoMonitorize o estado da assinatura em tempo real. Receba notificações quando as assinaturas forem recolhidas.
8Baixar documento assinadoQuando terminar, baixa o documento assinado com o certificado blockchain.
Para desenvolvedores
Integre o Chaindoc na sua aplicação usando a nossa API REST e SDKs.
1. Obter chaves API
2. Instale o SDK
Escolha o SDK com base no seu caso de uso:
# Node.js 18+ required
npm install @chaindoc_io/server-sdk3. Crie o seu primeiro documento através da 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. Crie um pedido de assinatura
// 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. Integrar a interface de assinatura (front-end)
Para assinatura incorporada na sua aplicação 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. Acompanhe o estado e lide com eventos
// 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. Configurar Webhooks (opcional)
Receba notificações em tempo real sobre eventos:
// 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');
});Exemplo completo de fluxo de trabalho
Aqui está um exemplo completo que combina todas as etapas:
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 });Próximos passos
- Leia o guia de instalação para obter informações detalhadas sobre a configuração do SDK
- Explore a documentação da API para obter uma referência completa dos pontos finais
- Verifique a documentação dos SDKs para exemplos específicos da estrutura (React, Vue, Angular)
- Configure Webhooks para notificações de eventos em tempo real
- Revise as práticas recomendadas de segurança para implementação em produção
Perguntas frequentes
Quanto tempo demora a verificação da blockchain?
A verificação da blockchain normalmente é concluída em 1 a 5 minutos, dependendo da rede. Os documentos ficam disponíveis imediatamente, a verificação acontece de forma assíncrona.
Posso testar sem um plano pago?
Sim! O plano gratuito inclui acesso à interface web. O acesso à API requer o plano Business, mas podes usar o ambiente sandbox para testes.
As assinaturas são juridicamente vinculativas?
Sim, as assinaturas Chaindoc estão em conformidade com os regulamentos eIDAS, ESIGN Act e UETA. A verificação da blockchain fornece provas legais adicionais.
Que formatos de ficheiro são suportados?
PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, JPG, PNG, GIF, WEBP, SVG, MP4, AVI, MOV, WMV. Tamanho máximo do ficheiro: 50 MB.