Разработчикам

API Reference

REST API для интеграции КодЛог с вашими системами

Base URL
https://api.kodlog.ru/v1
Формат
JSON (UTF-8)
Авторизация
Bearer Token / API Key

Аутентификация

POST /auth/login
Получение JWT-токена для работы с API. Токен действует 24 часа.
Request
{
  "email": "user@example.com",
  "password": "your_password"
}
Response 200
{
  "success": true,
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIs...",
    "expires_at": "2026-01-31T23:59:59Z",
    "user": {
      "id": 1,
      "email": "user@example.com",
      "role": "admin"
    }
  }
}
POST /auth/api-key
Аутентификация через API-ключ (для серверных интеграций). Передайте ключ в заголовке X-API-Key.
Headers
// Для всех последующих запросов:
Authorization: Bearer {token}
// или
X-API-Key: {api_key}

Получатели

GET /recipients
Список получателей с пагинацией и фильтрацией
Query Parameters
ПараметрТипОписание
pageintegerопц.Номер страницы (по умолч. 1)
limitintegerопц.Записей на странице (по умолч. 20, макс. 100)
statusstringопц.pending | in_progress | confirmed | cancelled
searchstringопц.Поиск по ФИО или СНИЛС
region_idintegerопц.Фильтр по региону
Response 200
{
  "success": true,
  "data": {
    "items": [{
      "id": 1,
      "full_name": "Иванов Иван Иванович",
      "snils": "123-456-789 00",
      "phone": "+7 (999) 123-45-67",
      "address": "г. Москва, ул. Ленина, д. 1",
      "status": "pending",
      "codes_count": 0,
      "created_at": "2026-01-20T10:00:00Z"
    }],
    "pagination": { "page": 1, "total_pages": 10, "total": 200 }
  }
}
POST /recipients
Создание нового получателя
Request Body
ПолеТипОписание
full_namestringобяз.ФИО получателя
snilsstringобяз.СНИЛС (формат: XXX-XXX-XXX XX)
phonestringопц.Телефон
addressstringобяз.Адрес доставки
region_idintegerобяз.ID региона
Request
{
  "full_name": "Петров Пётр Петрович",
  "snils": "987-654-321 00",
  "phone": "+7 (999) 987-65-43",
  "address": "г. Москва, ул. Пушкина, д. 10",
  "region_id": 77
}
PUT /recipients/{id}
Обновление данных получателя. Передайте только изменяемые поля.
DELETE /recipients/{id}
Удаление получателя. Невозможно, если есть привязанные коды маркировки.

Коды маркировки

GET /codes
Список отсканированных кодов маркировки с фильтрацией
Query Parameters
ПараметрТипОписание
recipient_idintegerопц.Фильтр по получателю
verifiedbooleanопц.Только верифицированные / невериф.
date_fromstringопц.Дата начала (ISO 8601)
date_tostringопц.Дата окончания (ISO 8601)
Response 200
{
  "success": true,
  "data": {
    "items": [{
      "id": 1,
      "recipient_id": 1,
      "gtin": "04630037580018",
      "serial": "ABC1234567",
      "verified": true,
      "verification_status": "valid",
      "photo_url": "https://storage.kodlog.ru/photos/...",
      "latitude": 55.7558,
      "longitude": 37.6173,
      "courier_id": 5,
      "scanned_at": "2026-01-20T14:30:00Z"
    }]
  }
}
POST /codes
Добавление нового кода маркировки (используется мобильным приложением)
Request Body
ПолеТипОписание
recipient_idintegerобяз.ID получателя
codestringобяз.Полный DataMatrix-код
photostringопц.Base64-фото подтверждения
latitudefloatопц.Широта
longitudefloatопц.Долгота
Request
{
  "recipient_id": 1,
  "code": "010463003758001821ABC1234567...",
  "photo": "data:image/jpeg;base64,/9j/4AAQ...",
  "latitude": 55.7558,
  "longitude": 37.6173
}

Синхронизация

POST /sync
Пакетная синхронизация данных с мобильного устройства. Принимает массив операций (создание/обновление кодов и получателей).
Request
{
  "device_id": "uuid-device-123",
  "last_sync": "2026-01-20T10:00:00Z",
  "operations": [
    { "type": "code_create", "data": { ... } },
    { "type": "recipient_update", "data": { ... } }
  ]
}
Response 200
{
  "success": true,
  "data": {
    "synced": 2,
    "conflicts": 0,
    "server_updates": [ /* новые данные с сервера */ ]
  }
}

Верификация (Честный Знак)

POST /verify
Верификация кода маркировки через API CRPT (Честный Знак). Поддерживается одиночная и пакетная проверка.
Request
{
  "codes": [
    { "gtin": "04630037580018", "serial": "ABC1234567" }
  ]
}
Response 200
{
  "success": true,
  "data": [{
    "gtin": "04630037580018",
    "serial": "ABC1234567",
    "status": "valid",
    "product_name": "Лекарственный препарат",
    "owner": "ООО Фармацевтика"
  }]
}

Ограничения и коды ответов

Rate Limits

Старт100 запросов/мин
Бизнес500 запросов/мин
EnterpriseБез ограничений
// Заголовки ответа:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1706745600

HTTP Status Codes

200Успешный запрос
201Ресурс создан
400Неверные параметры
401Не авторизован
403Доступ запрещён
404Не найдено
429Превышен лимит запросов
500Ошибка сервера
Формат ошибки
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Поле snils обязательно для заполнения",
    "details": [{ "field": "snils", "rule": "required" }]
  }
}

Готовы начать интеграцию?

Получите API-ключ и начните работу с КодЛог API

Получить API ключ Документация →