Интеграция по API
Как подключать внешние системы (1С, CRM, оборудование) через открытый REST API ModernERP Pro. Обмен данными в реальном времени.
Зачем нужен API
API (Application Programming Interface) ModernERP Pro позволяет интегрировать систему с внешними приложениями и устройствами. Это даёт возможность:
- Обмениваться данными с 1С — передавать заказы, отгрузки, выпуск продукции, ФОТ, справочники.
- Синхронизировать заказы с CRM — автоматически создавать заказы в ModernERP Pro при поступлении новых заявок из CRM.
- Подключать производственное оборудование (IIoT) — получать телеметрию со станков, автоматически фиксировать выработку и простои.
- Выгружать данные в BI-системы — для построения кастомных дашбордов и отчётов.
- Автоматизировать рутинные операции — массовое создание заказов, обновление остатков, импорт справочников.
API построен по принципам REST, использует JSON и защищён аутентификацией по токену. Все эндпоинты задокументированы в интерактивной спецификации Swagger (доступна по адресу /api/doc после авторизации).
Архитектура API
Базовый URL
Все запросы отправляются на адрес вашего сервера ModernERP Pro:
https://ваш-сервер.ru/api/v1/— для защищённых эндпоинтов.
Аутентификация
Для доступа к API требуется API-токен, который генерируется в личном кабинете пользователя с правами администратора.
- Токен передаётся в заголовке
Authorization: Bearer <ваш-токен>. - Токен можно аннулировать и перегенерировать в любой момент.
Формат данных
- Запросы и ответы — JSON.
- Кодировка — UTF-8.
- Даты и время — в формате ISO 8601 (
YYYY-MM-DDTHH:mm:ssZ).
Ошибки
При ошибках API возвращает стандартные HTTP-коды:
200— успешный запрос.400— неверные параметры запроса.401— неверный или отсутствующий токен.403— недостаточно прав для выполнения операции.404— ресурс не найден.422— ошибка валидации данных.500— внутренняя ошибка сервера.
В теле ответа всегда присутствует поле status (success или error) и, в случае ошибки, поле message с описанием.
Основные группы эндпоинтов
API ModernERP Pro разделён на логические группы для удобства работы:
📦 Товары (Products)
GET /products — список товаров.
POST /products — создание нового товара.
GET /products/{id} — детали товара.
PUT /products/{id} — обновление товара.
📄 Заказы (Sale Orders)
GET /sale-orders — список заказов клиентов.
POST /sale-orders — создание нового заказа.
GET /sale-orders/{id} — детали заказа.
PUT /sale-orders/{id} — обновление заказа.
GET /sale-orders/{id}/status — текущий статус заказа.
⚙️ Производство (Production)
GET /production-orders — список заказов на производство.
GET /production-orders/{id} — детали заказа.
PUT /production-orders/{id}/status — обновление статуса производства.
POST /production-orders/{id}/complete — завершение заказа.
🏭 Склад и остатки (Stock)
GET /stock — остатки по всем товарам.
GET /stock/{product_id} — остатки конкретного товара.
POST /stock-movements — создание складской операции (приход/расход).
🚚 Отгрузки (Shipments)
GET /shipments — список отгрузок.
POST /shipments — создание отгрузки.
PUT /shipments/{id}/status — обновление статуса отгрузки.
👤 Контрагенты (Clients & Suppliers)
GET /clients — список клиентов.
POST /clients — создание клиента.
GET /suppliers — список поставщиков.
Полная спецификация доступна по адресу /api/doc (только для авторизованных пользователей).
Примеры запросов
Получение списка заказов
GET /api/v1/sale-orders HTTP/1.1
Host: ваш-сервер.ru
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Ответ:
{
"status": "success",
"data": [
{
"id": 1001,
"orderId": "SO-2603-0042",
"client": "ООО ИндорТех",
"amount": 2500000,
"status": "PROCESSING",
"createdAt": "2026-03-15T10:30:00Z"
},
...
]
}
Обновление статуса заказа в производстве
PUT /api/v1/production-orders/123/status HTTP/1.1
Host: ваш-сервер.ru
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: application/json
{
"status": "COMPLETED",
"qty": 100
}
Ответ:
{
"status": "success",
"data": {
"id": 123,
"orderId": "PRD-2603-0012",
"status": "COMPLETED"
}
}
Создание складского движения (приход)
POST /api/v1/stock-movements HTTP/1.1
Host: ваш-сервер.ru
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: application/json
{
"product_id": 567,
"warehouse_id": 1,
"type": "IN",
"qty": 500,
"comment": "Поступление от поставщика ООО Металл"
}
Как получить API-токен
Токен генерируется в личном кабинете пользователя с ролью ROLE_ADMIN или ROLE_DIRECTOR. Для этого:
- Войдите в систему под учётной записью с правами администратора.
- Перейдите в раздел «Администрирование» → «Пользователи».
- Отредактируйте профиль нужного пользователя или создайте нового (специально для интеграции).
- Нажмите кнопку «Сгенерировать API-токен».
- Скопируйте токен и сохраните его в безопасном месте. Повторный показ токена невозможен, при утере нужно сгенерировать новый.
Рекомендации по использованию
- Соблюдайте лимиты запросов — по умолчанию не более 100 запросов в минуту. При превышении вы получите HTTP 429 (Too Many Requests). Для пакетных операций используйте метод
batchили увеличивайте интервал. - Используйте идемпотентные операции — если операция не должна повторяться (например, создание заказа), используйте заголовок
Idempotency-Keyс уникальным ключом. - Обрабатывайте ошибки — всегда проверяйте HTTP-статус и поле
statusв ответе. При ошибках 4xx и 5xx повторяйте запрос с экспоненциальной задержкой. - Используйте webhooks — для получения уведомлений об изменениях (например, завершение производства, отгрузка) вместо постоянного опроса API. Настройка webhooks доступна в разделе «Настройки интеграции».
- Тестируйте в песочнице — если у вас есть тестовый контур, сначала отработайте интеграцию там, чтобы не нарушать работу основной системы.
Часто задаваемые вопросы
Какие форматы данных поддерживает API?
На данный момент поддерживается только JSON. В будущем планируется поддержка XML для совместимости с некоторыми устаревшими системами.
Можно ли получить доступ к API из внешней сети (не локальной)?
Да, если ваш сервер ModernERP Pro доступен из внешней сети (публичный IP или через VPN). Рекомендуется использовать HTTPS и ограничить доступ по IP-адресам для повышения безопасности.
Как узнать, какие данные можно передавать через API?
Полный список эндпоинтов и моделей данных доступен в интерактивной документации Swagger по адресу /api/doc (требуется авторизация). Там же можно выполнять тестовые запросы прямо из браузера.
Можно ли подключить 1С через API?
Да, для этого у нас есть готовый модуль-расширение для 1С, который работает через наш API. Вы можете настроить обмен заказами, клиентами, отгрузками и ФОТ. Подробнее см. раздел Интеграция с 1С:Бухгалтерия.
Связанные разделы документации
- Интеграция с 1С:Бухгалтерия – настройка обмена данными с 1С.
- Архитектура и развёртывание – системные требования для API-сервера.
- Безопасность и аудит – как защищены данные при передаче.
- Мониторинг состояния сервера – как отслеживать нагрузку на API.