НЭС

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

API для разработчиков

REST API платформы НЭС для интеграции ERP, WMS, CRM и собственных сервисов закупок. Базовый префикс — /api/v1, формат данных — JSON, кодировка — UTF-8.

Base URL

https://nes-system.ru

Быстрый старт

  1. Зарегистрируйте аккаунт и создайте компанию через API или личный кабинет.
  2. Выполните POST /api/v1/auth/login — получите HttpOnly-cookies с JWT.
  3. Или сгенерируйте API-ключ в личном кабинете и передавайте Authorization: Bearer nes_....
  4. Передавайте cookies во всех запросах браузера (credentials: include) или Bearer-токен в интеграциях.
  5. Для операций компании добавляйте query-параметр company_id.

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

Access-token (cookies) живёт 15 минут, refresh-token — 7 дней. API-ключи (nes_...) создаются вручную в личном кабинете и действуют до отзыва. Обновление сессии: POST /api/v1/auth/refresh. Лимит на auth-эндпоинты — 20 запросов в минуту с одного IP.

Пример: вход и запрос профиля
# API-ключ (сгенерируйте в личном кабинете: /settings/api-tokens)
curl -H "Authorization: Bearer nes_YOUR_API_TOKEN" \
  https://nes-system.ru/api/v1/users/me

# Или вход через cookies (для браузера)
curl -c cookies.txt -X POST https://nes-system.ru/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"user@example.com","password":"password123"}'

curl -b cookies.txt https://nes-system.ru/api/v1/users/me

Эндпоинты

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

Регистрация, вход и обновление сессии. Токены передаются в HttpOnly-cookies.

POST

/api/v1/auth/register

Регистрация пользователя

POST

/api/v1/auth/login

Вход, установка access_token и refresh_token (cookies)

POST

/api/v1/auth/logout

Выход, очистка cookies

Auth
POST

/api/v1/auth/refresh

Обновление access_token по refresh_token

Auth
GET

/api/v1/auth/ws-token

Токен для WebSocket-чата RFP

Auth
GET

/api/v1/users/me

Профиль текущего пользователя

Auth
GET

/api/v1/api-tokens

Список API-ключей (только из сессии ЛК)

Auth
POST

/api/v1/api-tokens

Сгенерировать API-ключ (только из сессии ЛК)

Auth
DELETE

/api/v1/api-tokens/{token_id}

Отозвать API-ключ

Auth

Компании

Создание компании, проверка ИНН через ФНС (ЕГРЮЛ), управление профилем.

POST

/api/v1/companies/validate-inn

Проверка ИНН

POST

/api/v1/companies

Создание компании

Auth
GET

/api/v1/companies

Список компаний пользователя

Auth
GET

/api/v1/companies/{company_id}

Карточка компании

Auth
PATCH

/api/v1/companies/{company_id}

Обновление компании

Auth

Каталог и поиск

Публичный поиск товаров и каталоги поставщиков.

GET

/api/v1/search?q={query}&sort_by=price

Поиск предложений

GET

/api/v1/catalog/global

Глобальный каталог товаров

GET

/api/v1/catalog/suppliers/{company_id}

Каталог поставщика

GET

/api/v1/products

Список товаров

GET

/api/v1/products/{product_id}/offers

Предложения по товару

Прайсы и остатки

Загрузка Excel/CSV и программное обновление предложений поставщика.

GET

/api/v1/prices/template

Скачать шаблон Excel

POST

/api/v1/prices/upload?company_id={uuid}

Импорт прайса (multipart/form-data: file, mapping)

Auth
GET

/api/v1/prices/offers?company_id={uuid}

Список предложений компании

Auth
POST

/api/v1/prices/offers?company_id={uuid}

Создать/обновить предложение

Auth
PATCH

/api/v1/prices/offers/{offer_id}?company_id={uuid}

Обновить цену, остаток, город, срок поставки

Auth

RFP и корзина

Корзина закупок, запросы предложений, чат и сверка сделок.

GET

/api/v1/cart?company_id={uuid}

Корзина

Auth
POST

/api/v1/cart/items?company_id={uuid}

Добавить в корзину

Auth
POST

/api/v1/cart/submit?company_id={uuid}

Отправить RFP из корзины

Auth
GET

/api/v1/rfps/outgoing?company_id={uuid}

Исходящие RFP

Auth
GET

/api/v1/rfps/incoming?company_id={uuid}

Входящие RFP

Auth
POST

/api/v1/rfps/{rfp_id}/respond?company_id={uuid}

Ответ поставщика

Auth
GET

/api/v1/rfps/{rfp_id}/messages

Сообщения чата

Auth
POST

/api/v1/reconciliation?company_id={uuid}

Запуск сверки сделки

Auth

Тендеры и периодика

Тендерные процедуры и шаблоны периодических закупок.

GET

/api/v1/tenders

Список тендеров

Auth
POST

/api/v1/tenders?company_id={uuid}

Создать тендер

Auth
POST

/api/v1/tenders/{tender_id}/bids?company_id={uuid}

Подать ставку

Auth
GET

/api/v1/subscriptions?company_id={uuid}

Шаблоны периодических закупок

Auth
GET

/api/v1/subscriptions/{id}?company_id={uuid}

Настройки шаблона закупки

Auth
POST

/api/v1/subscriptions?company_id={uuid}

Создать шаблон

Auth
PATCH

/api/v1/subscriptions/{id}?company_id={uuid}

Обновить шаблон закупки

Auth
GET

/api/v1/dashboard/stats?company_id={uuid}

Статистика дашборда

Auth

Уведомления

In-app уведомления для пользователя.

GET

/api/v1/notifications

Список уведомлений

Auth
GET

/api/v1/notifications/unread-count

Количество непрочитанных

Auth
POST

/api/v1/notifications/{id}/read

Отметить прочитанным

Auth

Примеры интеграции

Поиск товаров
curl "https://nes-system.ru/api/v1/search?q=SKU-001&sort_by=price&page=1&limit=20"
Загрузка прайса Excel
curl -b cookies.txt -X POST \
  "https://nes-system.ru/api/v1/prices/upload?company_id=YOUR_COMPANY_UUID" \
  -F "file=@price.xlsx" \
  -F 'mapping={"sku_column":"sku","name_column":"name","price_column":"price","stock_column":"stock","city_column":"город","lead_days_column":"срок поставки","additional_conditions_column":"доп условия"}'
Обновление предложения через API
curl -b cookies.txt -X PATCH \
  "https://nes-system.ru/api/v1/prices/offers/OFFER_UUID?company_id=YOUR_COMPANY_UUID" \
  -H "Content-Type: application/json" \
  -d '{"price":"1500.00","stock":25,"lead_days":5,"city":"Москва","additional_conditions":"Доставка от 10 шт."}'
WebSocket — чат RFP
# Получить токен
curl -b cookies.txt https://nes-system.ru/api/v1/auth/ws-token

# Подключение к чату RFP
wscat -c "wss://nes-system.ru/ws/rfp/RFP_UUID?token=ACCESS_TOKEN"

Шаблон прайса Excel

Скачать: GET /api/v1/prices/template

СтолбецОписание
skuАртикул (обязательно)
nameНазвание товара (обязательно)
priceЦена (обязательно)
stockОстаток (обязательно)
городГород поставки
срок поставкиСрок в днях
доп условияДополнительные условия

Мониторинг и поддержка