Справочник по REST API Chaindoc
Полное руководство по интеграции REST API Chaindoc в твои приложения. Управляй документами, подписями, проверкой блокчейна и встроенными рабочими процессами подписания.
Обзор
Chaindoc REST API дает возможность программно управлять документами, проверять блокчейн и использовать цифровую подпись. API создан для интеграции между серверами и работает как с открытыми, так и с секретными ключами API.
Основные особенности
- Управление документами — создавайте, обновляйте и управляйте документами с помощью проверки блокчейна
- Цифровые подписи — просите и собирайте цифровые подписи от разных людей
- Проверка блокчейна — проверяйте, что документ настоящий в сетях блокчейна
- Встроенные сессии — создавайте безопасные сессии для рабочих процессов подписания на стороне клиента
- Загрузка медиафайлов — загружайте файлы (PDF, изображения, видео) для создания документов
- Интеграция KYC — делись и проверяй данные о личности с Sumsub
Аутентификация
Chaindoc API использует ключи API для аутентификации. Есть два типа ключей с разными уровнями доступа.
Типы ключей API
- Открытый ключ (pk_) — доступ только для чтения для фронтенд-приложений и проверки
- Секретный ключ (sk_) — полный доступ на чтение и запись для бэкэнд-серверов
Как получить ключи API
1Подпишись на бизнес-планТолько пользователи бизнес-плана могут создавать ключи API
2Перейдите к разделу «Доступ к API»Зайдите в «Настройки» → «Доступ к API» в своей панели управления
3Создать ключ APIНажми кнопку «Создать ключ API».
4Храните в надежном местеХраните секретный ключ в надежном месте (он показывается только один раз)
Использование ключей API
Включи свой ключ API в заголовок Authorization с аутентификацией Bearer:
curl -X GET https://api.chaindoc.io/api/v1/me \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxx"Ограничение скорости
Конечные точки API имеют ограничения по скорости, чтобы избежать злоупотреблений. Ограничения по скорости зависят от типа конечной точки.
- Общие ограничения: 3 запроса за 10 секунд
- Загрузка медиафайлов: 3 запроса за 10 секунд
- Проверка OTP: 5 запросов за 60 секунд
- Операции чтения: 10 запросов в минуту
- Создание подписи: 20 запросов за 3 секунды
Если превысишь лимит запросов, получишь ответ 429 Too Many Requests. Заголовки лимита запросов есть в ответах:
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 2
X-RateLimit-Reset: 1640000000Обработка ошибок
Коды статуса HTTP
- 200 — Успех
- 201 — Ресурс создан без проблем
- 400 — Неправильный запрос (ошибка проверки)
- 401 — Неавторизованный (недействительный или отсутствующий ключ API)
- 403 — Запрещено (не хватает прав)
- 404 — Ресурс не найден
- 429 — Слишком много запросов (превышен лимит)
- 500 — Внутренняя ошибка сервера
Формат ответа на ошибку
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request",
"details": [
{
"field": "name",
"message": "name must be a string"
}
]
}Общий API
Получить информацию о ключе API
Получите информацию о текущем ключе API.
GET /me
Authorization: Bearer sk_live_xxxxxПроверка
Проверь, что API работает и ключи в порядке.
GET /health
Authorization: Bearer sk_live_xxxxxAPI документов
Создать документ
Создайте новый документ с проверкой блокчейна. Когда статус будет «опубликован», документ автоматически проверят в блокчейне.
POST /documents
Headers:
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonОбновите документ
Обновляйте документ, создавая новую версию. Старые версии сохраняются для контроля.
PUT /documents/:documentId
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonОбновите права доступа к документу
Обновите настройки доступа к документу.
PUT /documents/:documentId/rights
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonПроверьте документ
Проверяйте подлинность документов с помощью блокчейна. Получите статус проверки с хэшем транзакции и ID цепочки.
POST /documents/verify
{
"versionHash": "0x123abc...",
"certificateHash": "0x456def..."
}Получить статус проверки
Получите статус проверки блокчейна для версии документа.
GET /documents/versions/:versionId/verification
Authorization: Bearer sk_live_xxxxxAPI подписей
Создать запрос на подпись
Создайте запрос на подпись для одного или нескольких получателей. Включите встроенный поток для интеграции с интерфейсом.
curl -X POST https://api.chaindoc.io/api/v1/signatures/requests \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"versionId": "f0b7721f-0399-4035-9b69-7b95d3a367f0",
"recipients": [{"email": "signer@example.com"}],
"deadline": "2024-12-31T23:59:59Z",
"embeddedFlow": true
}'Получить статус запроса подписи
Проверяйте статус запроса на подпись и смотрите, кто уже подписал.
GET /signatures/requests/:requestId/status
Authorization: Bearer sk_live_xxxxxПодпиши документ
Подпиши документ (если у тебя есть ключ API).
POST /signatures/sign
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonПолучить подписи пользователей
Получите все подписи для аутентифицированного пользователя.
GET /signatures
Authorization: Bearer sk_live_xxxxxПолучать запросы на подпись
Получите все запросы на подпись для аутентифицированного пользователя с поддержкой пагинации.
GET /signatures/requests?pageNumber=1&pageSize=10
Authorization: Bearer sk_live_xxxxxAPI для загрузки медиафайлов
Загрузи файлы, которые нужны для создания документа. Поддерживаются PDF, изображения и видео. Максимум 10 файлов за раз.
curl -X POST https://api.chaindoc.io/api/v1/media/upload \
-H "Authorization: Bearer sk_live_xxxxx" \
-F "media=@contract.pdf"KYC API
Делитесь данными KYC
Делитесь данными KYC (Know Your Customer) с получателями для проверки личности.
POST /kyc/share
Authorization: Bearer sk_live_xxxxx
Content-Type: application/jsonВстроенный API сеансов
Создавайте встроенные сессии для подписания документов в вашем приложении. Сессии действуют 10 минут.
POST /embedded/sessions
Authorization: Bearer sk_live_xxxxx
Content-Type: application/json