Довідник 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 в заголовок авторизації з аутентифікацією 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 запитів за 60 секунд
- Створення підпису: 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Перевірте документ
Перевірте автентичність документа за допомогою блокчейну. Повертає статус перевірки з хешем транзакції та ідентифікатором ланцюга.
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