API документация

REST API для регистрации SHA-256 хэшей в блокчейне Polygon. Версия 1.0

Base URL https://factflew-backend-production.up.railway.app/api/v1
Авторизация: B2B эндпоинты требуют API-ключ в заголовке:
Authorization: Bearer YOUR_API_KEY

Публичные эндпоинты (verify) работают без авторизации. Для получения API-ключа — напишите на api@factflew.io или воспользуйтесь тарифом API на странице тарифов.
POST /register-pwa

Регистрация SHA-256 хэша файла из веб-приложения. Файл остаётся на устройстве пользователя — на сервер отправляется только хэш. Транзакция в блокчейн выполняется асинхронно.

Заголовки
ПараметрТипОписание
Content-Typestringapplication/json
X-FF-CodestringFF-код пользователя (опционально)
Тело запроса
ПараметрТипОписание
hashstringSHA-256 хэш файла, 64 hex символа *обязательно
fileNamestringИмя файла (опционально)
fileSizenumberРазмер файла в байтах (опционально)
ff_codestringFF-код пользователя (опционально)
Пример запроса
POST /api/v1/register-pwa Content-Type: application/json { "hash": "a3f7c9d2e8b14f6c1234567890abcdef1234567890abcdef1234567890abcdef", "fileName": "contract.pdf", "fileSize": 204800, "ff_code": "FF-3SZZXD-MRS44CL5" }
Ответ
201 Успешно поставлено в очередь
{ "success": true, "data": { "status": "pending", "jobId": "uuid-job-id", "hash": "a3f7c9d2...", "token_reward": 10, "night_rate": false, "message": "Registration queued. Blockchain confirmation in progress." } }
400 Неверный формат хэша
409 Хэш уже зарегистрирован
GET /verify/:hash

Публичная верификация хэша. Проверяет наличие регистрации в базе данных и возвращает данные транзакции. Авторизация не требуется.

Параметры URL
ПараметрТипОписание
hashstringSHA-256 хэш файла, 64 hex символа *обязательно
Пример запроса
GET /api/v1/verify/a3f7c9d2e8b14f6c1234567890abcdef1234567890abcdef1234567890abcdef
Ответ — найдено
200
{ "success": true, "exists": true, "hash": "a3f7c9d2e8b14f6c...", "txHash": "0x05c59fb5561317a97a5822f106d6f42382daf378a88bf71f37819c6689658786", "timestamp": "2026-07-20T09:08:01+00:00", "ff_code": "FF-3SZZXD-MRS44CL5", "polygonscan": "https://polygonscan.com/tx/0x05c59fb..." }
Ответ — не найдено
{ "success": true, "exists": false, "message": "Хэш не найден" }
POST /register B2B API

B2B эндпоинт для интеграции в корпоративные системы. Принимает хэш + метаданные, поддерживает webhook-уведомления. Требует API-ключ.

Заголовки
ПараметрТипОписание
AuthorizationstringBearer YOUR_API_KEY *обязательно
Content-Typestringapplication/json
Тело запроса
ПараметрТипОписание
hashstringSHA-256 хэш файла *обязательно
final_hashstringСоставной хэш (файл + метаданные) — приоритет над hash (опционально)
file_sizenumberРазмер файла в байтах (опционально)
file_typestringMIME-тип файла (опционально)
webhook_urlstringURL для callback после подтверждения транзакции (опционально)
Пример запроса
POST /api/v1/register Authorization: Bearer YOUR_API_KEY Content-Type: application/json { "hash": "a3f7c9d2e8b14f6c1234567890abcdef1234567890abcdef1234567890abcdef", "file_size": 204800, "file_type": "application/pdf", "webhook_url": "https://your-server.com/factflew-callback" }
Ответ
202 Принято в обработку
{ "success": true, "data": { "status": "pending", "jobId": "uuid-job-id", "hash": "a3f7c9d2...", "token_reward": 10, "night_rate": false, "message": "Хэш принят. Транзакция отправляется в Polygon.", "check_status": "https://factflew.io/verify?hash=a3f7c9d2..." } }
Коды ответов
КодЗначение
200Успешно
201 / 202Принято в обработку (асинхронная транзакция)
400Неверный запрос — проверьте формат хэша
401Отсутствует или неверный API-ключ
409Хэш уже зарегистрирован — возвращает данные существующей записи
429Превышен лимит запросов (rate limit)
500Внутренняя ошибка сервера