Краткое руководство
Начни работать с Chaindoc меньше чем за 10 минут. Это руководство рассказывает как про веб-интерфейс, так и про интеграцию API для разработчиков.
Для конечных пользователей
Пошаговая инструкция: твоя первая подпись
1ЗарегистрируйсяЗаведи бесплатный аккаунт на app.chaindoc.io. Подтверди свой адрес электронной почты.
2Загрузить документНажми «Новый документ» и загрузи свой файл. Поддерживаются PDF, документы Office, изображения (до 50 МБ).
3Добавь детали документаВведите название документа, описание и теги для упорядочивания. Выберите уровень доступа (личный, для команды или общедоступный).
4Создать запрос на подписьНажмите «Запросить подписи», добавьте адреса электронной почты получателей, установите срок и настройте сообщение.
5Настройте поток подписейВыберите порядок подписи (параллельный или последовательный), включите KYC, если нужно, выберите настройки уведомлений.
6Отправить запросПросмотрите и отправьте. Получатели получат электронное письмо с безопасной ссылкой для подписания.
7Отслеживайте прогрессСледи за статусом подписания в реальном времени. Получай уведомления, когда подписи будут собраны.
8Скачать подписанный документКогда всё готово, скачай подписанный документ с сертификатом блокчейна.
Для разработчиков
Добавьте Chaindoc в свое приложение с помощью нашего REST API и SDK.
1. Получите ключи API
2. Установите SDK
Выбери SDK, который подходит для твоего случая:
# Node.js 18+ required
npm install @chaindoc_io/server-sdk3. Создайте свой первый документ через 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. Создайте запрос на подпись
// 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. Интегрируйте интерфейс для подписи (фронтенд)
Для встроенной подписи в твоем веб-приложении:
// 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. Отслеживайте статус и обрабатывайте события
// 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. Настройка веб-хуков (необязательно)
Получайте уведомления о событиях в реальном времени:
// 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');
});Полный пример рабочего процесса
Вот полный пример, где все шаги собраны вместе:
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 });Следующие шаги
- Прочитайте руководство по установке, чтобы узнать, как настроить SDK.
- Загляни в документацию API, чтобы посмотреть полный список конечных точек.
- Посмотрите документацию SDK, чтобы найти примеры для конкретных фреймворков (React, Vue, Angular).
- Настройте веб-хуки для уведомлений о событиях в реальном времени
- Просмотрите рекомендации по безопасности для развертывания в производственной среде.
Часто задаваемые вопросы
Сколько времени занимает проверка блокчейна?
Проверка блокчейна обычно занимает 1–5 минут, в зависимости от сети. Документы доступны сразу, проверка происходит асинхронно.
Можно ли протестировать без платного тарифа?
Да! Бесплатный план включает доступ к веб-интерфейсу. Для доступа к API нужен бизнес-план, но для тестирования можно использовать тестовую среду.
Подписи имеют юридическую силу?
Да, подписи Chaindoc соответствуют требованиям eIDAS, ESIGN Act и UETA. Проверка блокчейна дает дополнительные юридические доказательства.
Какие форматы файлов поддерживаются?
PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, JPG, PNG, GIF, WEBP, SVG, MP4, AVI, MOV, WMV. Максимальный размер файла: 50 МБ.