Guía de inicio rápido

Empieza a utilizar Chaindoc en menos de 10 minutos. Esta guía cubre tanto la interfaz web como la integración de la API para desarrolladores.

Para usuarios finales

Paso a paso: tu primera firma

1RegístrateCrea tu cuenta gratuita en app.chaindoc.io. Verifica tu dirección de correo electrónico.

2Subir documentoHaz clic en «Nuevo documento» y sube tu archivo. Admite archivos PDF, documentos de Office e imágenes (hasta 50 MB).

3Añadir detalles del documentoIntroduce el nombre del documento, la descripción y las etiquetas para organizarlo. Elige el nivel de acceso (privado, equipo o público).

4Crear solicitud de firmaHaz clic en «Solicitar firmas», añade los correos electrónicos de los destinatarios, establece la fecha límite y personaliza el mensaje.

5Configura el flujo de firmas.Elige el orden de firma (paralelo o secuencial), habilita KYC si es necesario y selecciona las preferencias de notificación.

6Enviar solicitudRevisa y envía. Los destinatarios recibirán un correo electrónico con un enlace de firma segura.

7Sigue el progreso.Supervisa el estado de la firma en tiempo real. Recibe notificaciones cuando se recopilen las firmas.

8Descargar documento firmadoUna vez completado, descarga el documento firmado con certificado blockchain.

Para desarrolladores

Integra Chaindoc en tu aplicación utilizando nuestra API REST y nuestros SDK.

1. Obtén las claves API.

2. Instala el SDK.

Elige el SDK en función de tu caso de uso:

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

3. Crea tu primer documento a través de la API.

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

4. Crea una solicitud de firma.

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

5. Integrar la interfaz de firma (frontend).

Para la firma integrada en tu aplicación 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. Seguimiento del estado y gestión de eventos

terminal
// 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 los webhooks (opcional)

Recibe notificaciones en tiempo real sobre eventos:

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

Ejemplo de flujo de trabajo completo

Aquí tienes un ejemplo completo que combina todos los pasos:

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

Próximos pasos

  • Lee la guía de instalación para obtener información detallada sobre la configuración del SDK.
  • Explora la documentación de la API para obtener una referencia completa de los puntos finales.
  • Consulta la documentación de los SDK para ver ejemplos específicos del marco (React, Vue, Angular).
  • Configura Webhooks para recibir notificaciones de eventos en tiempo real.
  • Revisa las prácticas recomendadas de seguridad para la implementación en producción.

Preguntas frecuentes

¿Cuánto tiempo lleva la verificación de la cadena de bloques?

La verificación de la cadena de bloques suele completarse en 1-5 minutos, dependiendo de la red. Los documentos están disponibles de inmediato, la verificación se realiza de forma asíncrona.

¿Puedo probarlo sin un plan de pago?

¡Sí! El plan gratuito incluye acceso a la interfaz web. El acceso a la API requiere el plan Business, pero puedes utilizar el entorno sandbox para realizar pruebas.

¿Las firmas son legalmente vinculantes?

Sí, las firmas de Chaindoc cumplen con las normativas eIDAS, ESIGN Act y UETA. La verificación mediante cadena de bloques proporciona pruebas legales adicionales.

¿Qué formatos de archivo son compatibles?

PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, JPG, PNG, GIF, WEBP, SVG, MP4, AVI, MOV, WMV. Tamaño máximo del archivo: 50 MB.