SelSup Developers

Публичный API · API Reference

Работы

Методы раздела «Работы»: точные маршруты, параметры, тела запросов и раскрываемые структуры ответов.

3 методов/api/jobСтабильныйМашинное описание ↗
{ }

Страница собрана в отдельный редактируемый контракт. Перед операциями записи проверяйте примеры на тестовых данных.

/api/job

Готовые сценарии

Готовые сценарии

01

Начать работу с разделом «Работы»

Используйте отдельный API-токен и сначала проверяйте операции чтения на тестовых данных.

  1. Сохраните токен на серверной стороне и передавайте его в заголовке Authorization.
  2. Проверьте обязательные параметры и раскройте структуру запроса или ответа.
  3. Обрабатывайте HTTP-статус и стабильное поле error в прикладных ошибках.

Модель данных

Структуры данных раздела

Модели перечислены отдельно и раскрываются также непосредственно у методов, где они используются.

Job11 полей
idinteger · int32

Поле id.

namestring

Поле name.

categoryClassstring

Группы категорий Честного знака

clientIdinteger · int64

Поле clientId.

deletedboolean

Поле deleted.

positionIdinteger · int64

Поле positionId.

versionIdinteger · int64

Поле versionId.

createdUserstring

Поле createdUser.

createdDatestring · date-time

Поле createdDate.

pricenumber · double

Поле price.

tariffsJobTariff[]

Поле tariffs.

JobTariff8 полей
idinteger · int64

Поле id.

jobIdinteger · int32

Поле jobId.

pricenumber · double

Поле price.

brandIdinteger · int32

Поле brandId.

categoryClassstring

Группы категорий Честного знака

categoryIdinteger · int32

Поле categoryId.

priorityinteger · int32

Поле priority.

productIdinteger · int64

Поле productId.

Контракт ошибок

Как API возвращает прикладные ошибки

Код ошибки одинаков для всех локалей, а текст для пользователя переводится сервером. Поэтому бизнес-логику стройте по error, а localMessage используйте только для отображения.

error

Стабильный машинный код ошибки для логики интеграции.

localMessage

Готовое сообщение на языке пользователя API-токена.

params

Значения

Язык localMessage определяется полем lang пользователя, которому принадлежит API-токен. Язык страницы документации и заголовок Accept-Language его не переключают; если язык пользователя не указан, используется русский.

RUПользователь с локалью ru
{
  "error": "error_brand_already_exists",
  "localMessage": "Бренд Base уже существует",
  "params": {
    "name": "Base"
  }
}
ENПользователь с локалью en
{
  "error": "error_brand_already_exists",
  "localMessage": "Brand Base already exists",
  "params": {
    "name": "Base"
  }
}

Методы

Методы

PUT

Изменить работу

/api/job/{jobId}
Токен с правами записи

Обновляет информацию о работе

Параметры пути

ПолеТипОбязательноОписание
jobId integer · int64 Да Поле jobId.

Тело запроса

application/json
Поля объектаJob
ПолеТипОбязательноОписание
id integer · int32 Нет Поле id.
name string Нет Поле name.
categoryClass stringSHOES, LIGHT, DRUGS, CAMERA, TYRES, MILK, WATER, TOBACCO, FURS, BEER, BICYCLES, PERFUMES, ELECTRONIC, OTHER, NONE, FOOD, WHEELCHAIRS, OTP, NCP, BIO, ANTISEPTIC, NABEER, SOFTDRINKS, PETFOOD, SEAFOOD, MEAT, TOYS, TITAN, RADIO, OPTIC_FIBER, VEGETABLE_OIL, CONSERVE, VETPHARMA, CHEMISTRY, AUTOFLUIDS, GROCERY, BOOKS, CONSTRUCTION, FIRE, HEATER, CABLERAW, POLYMER, SWEETS, CARPARTS, NATURAL_FUR, NICOTINDEV, GADGETS, FROZEN, FERTILIZERS, HOMEWARE, VETBIO, INDUSTRIAL, PYROTECHNICS Нет Группы категорий Честного знака
clientId integer · int64 Нет Поле clientId.
deleted boolean Нет Поле deleted.
positionId integer · int64 Нет Поле positionId.
versionId integer · int64 Нет Поле versionId.
createdUser string Нет Поле createdUser.
createdDate string · date-time Нет Поле createdDate.
price number · double Нет Поле price.
tariffs JobTariff[] Нет Поле tariffs.
Структура элемента массива JobTariff
ПолеТипОбязательноОписание
id integer · int64 Нет Поле id.
jobId integer · int32 Нет Поле jobId.
price number · double Нет Поле price.
brandId integer · int32 Нет Поле brandId.
categoryClass stringSHOES, LIGHT, DRUGS, CAMERA, TYRES, MILK, WATER, TOBACCO, FURS, BEER, BICYCLES, PERFUMES, ELECTRONIC, OTHER, NONE, FOOD, WHEELCHAIRS, OTP, NCP, BIO, ANTISEPTIC, NABEER, SOFTDRINKS, PETFOOD, SEAFOOD, MEAT, TOYS, TITAN, RADIO, OPTIC_FIBER, VEGETABLE_OIL, CONSERVE, VETPHARMA, CHEMISTRY, AUTOFLUIDS, GROCERY, BOOKS, CONSTRUCTION, FIRE, HEATER, CABLERAW, POLYMER, SWEETS, CARPARTS, NATURAL_FUR, NICOTINDEV, GADGETS, FROZEN, FERTILIZERS, HOMEWARE, VETBIO, INDUSTRIAL, PYROTECHNICS Нет Группы категорий Честного знака
categoryId integer · int32 Нет Поле categoryId.
priority integer · int32 Нет Поле priority.
productId integer · int64 Нет Поле productId.
curl --request PUT 'https://api.selsup.ru/api/job/1001' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "id": 1001,
  "name": "Example",
  "categoryClass": "SHOES",
  "clientId": 1001,
  "deleted": false,
  "positionId": 1001
}'

Успешный ответ

200
Поля объекта Job
ПолеТипОбязательноОписание
id integer · int32 Нет Поле id.
name string Нет Поле name.
categoryClass stringSHOES, LIGHT, DRUGS, CAMERA, TYRES, MILK, WATER, TOBACCO, FURS, BEER, BICYCLES, PERFUMES, ELECTRONIC, OTHER, NONE, FOOD, WHEELCHAIRS, OTP, NCP, BIO, ANTISEPTIC, NABEER, SOFTDRINKS, PETFOOD, SEAFOOD, MEAT, TOYS, TITAN, RADIO, OPTIC_FIBER, VEGETABLE_OIL, CONSERVE, VETPHARMA, CHEMISTRY, AUTOFLUIDS, GROCERY, BOOKS, CONSTRUCTION, FIRE, HEATER, CABLERAW, POLYMER, SWEETS, CARPARTS, NATURAL_FUR, NICOTINDEV, GADGETS, FROZEN, FERTILIZERS, HOMEWARE, VETBIO, INDUSTRIAL, PYROTECHNICS Нет Группы категорий Честного знака
clientId integer · int64 Нет Поле clientId.
deleted boolean Нет Поле deleted.
positionId integer · int64 Нет Поле positionId.
versionId integer · int64 Нет Поле versionId.
createdUser string Нет Поле createdUser.
createdDate string · date-time Нет Поле createdDate.
price number · double Нет Поле price.
tariffs JobTariff[] Нет Поле tariffs.
Структура элемента массива JobTariff
ПолеТипОбязательноОписание
id integer · int64 Нет Поле id.
jobId integer · int32 Нет Поле jobId.
price number · double Нет Поле price.
brandId integer · int32 Нет Поле brandId.
categoryClass stringSHOES, LIGHT, DRUGS, CAMERA, TYRES, MILK, WATER, TOBACCO, FURS, BEER, BICYCLES, PERFUMES, ELECTRONIC, OTHER, NONE, FOOD, WHEELCHAIRS, OTP, NCP, BIO, ANTISEPTIC, NABEER, SOFTDRINKS, PETFOOD, SEAFOOD, MEAT, TOYS, TITAN, RADIO, OPTIC_FIBER, VEGETABLE_OIL, CONSERVE, VETPHARMA, CHEMISTRY, AUTOFLUIDS, GROCERY, BOOKS, CONSTRUCTION, FIRE, HEATER, CABLERAW, POLYMER, SWEETS, CARPARTS, NATURAL_FUR, NICOTINDEV, GADGETS, FROZEN, FERTILIZERS, HOMEWARE, VETBIO, INDUSTRIAL, PYROTECHNICS Нет Группы категорий Честного знака
categoryId integer · int32 Нет Поле categoryId.
priority integer · int32 Нет Поле priority.
productId integer · int64 Нет Поле productId.
{
  "id": 1001,
  "name": "Example",
  "categoryClass": "SHOES",
  "clientId": 1001,
  "deleted": false,
  "positionId": 1001
}
Ошибки14

Прикладные ошибки обычно возвращаются как JSON с полями error, localMessage и params. Ориентируйтесь на error; локализованный текст может меняться. Как API возвращает прикладные ошибки ↑

401auth_required
Требуется авторизация

Заголовок Authorization отсутствует, пуст или содержит недействительный токен.

400error_access_denied
Недостаточно прав

Токен существует, но его роль не позволяет выполнить операцию.

500error_unknown
Непредвиденная ошибка

Внутренняя ошибка. Сохраните время запроса и обратитесь в поддержку, не повторяя мутацию вслепую.

400error_empty_category_class
Не указан класс

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_category_class; localMessage содержит приведённый выше перевод.

400error_empty_job_price
Не указана цена для выполнения работы

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_job_price; localMessage содержит приведённый выше перевод.

400error_empty_position
Не указана должность

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_position; localMessage содержит приведённый выше перевод.

400error_empty_tariff_price
Не указана цена для тарифа №{position}

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_tariff_price; localMessage содержит приведённый выше перевод.

400error_empty_tariff_priority
Не указан приоритет для тарифа

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_tariff_priority; localMessage содержит приведённый выше перевод.

400error_empty_tariffs
Не указаны тарифы

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_tariffs; localMessage содержит приведённый выше перевод.

400error_job_already_exists
Задание с названием {jobName} уже существует

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_job_already_exists; localMessage содержит приведённый выше перевод.

400error_job_modified
Данные о работе уже обновлены. Обновите страницу.

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_job_modified; localMessage содержит приведённый выше перевод.

400error_job_tariff_wrong_product_id
Некорректно указан идентификатор товара: {id}

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_job_tariff_wrong_product_id; localMessage содержит приведённый выше перевод.

400error_no_client
Клиент не найден или был удален. Напишите в поддержку

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.

400error_subscription_expired
У вас закончился срок действия тарифа. Оплатите тариф для продолжения использования сервиса.

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.

DELETE

Удалить работу

/api/job/{jobId}
Токен с правами записи

Удаляет работу помечая ее удаленной

Параметры пути

ПолеТипОбязательноОписание
jobId integer · int32 Да Поле jobId.

Параметры запроса

ПолеТипОбязательноОписание
deleted boolean Да Поле deleted.
curl --request DELETE 'https://api.selsup.ru/api/job/1001?deleted=false' \
  --header 'Authorization: YOUR_API_TOKEN'

Успешный ответ

200
"string"
Ошибки6

Прикладные ошибки обычно возвращаются как JSON с полями error, localMessage и params. Ориентируйтесь на error; локализованный текст может меняться. Как API возвращает прикладные ошибки ↑

401auth_required
Требуется авторизация

Заголовок Authorization отсутствует, пуст или содержит недействительный токен.

400error_access_denied
Недостаточно прав

Токен существует, но его роль не позволяет выполнить операцию.

500error_unknown
Непредвиденная ошибка

Внутренняя ошибка. Сохраните время запроса и обратитесь в поддержку, не повторяя мутацию вслепую.

400error_job_modified
Данные о работе уже обновлены. Обновите страницу.

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_job_modified; localMessage содержит приведённый выше перевод.

400error_no_client
Клиент не найден или был удален. Напишите в поддержку

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.

400error_subscription_expired
У вас закончился срок действия тарифа. Оплатите тариф для продолжения использования сервиса.

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.

POST

Создания работы

/api/job/
Токен с правами записи

Создает новую работу, которую можно выполнять

Тело запроса

application/json
Поля объектаJob
ПолеТипОбязательноОписание
id integer · int32 Нет Поле id.
name string Нет Поле name.
categoryClass stringSHOES, LIGHT, DRUGS, CAMERA, TYRES, MILK, WATER, TOBACCO, FURS, BEER, BICYCLES, PERFUMES, ELECTRONIC, OTHER, NONE, FOOD, WHEELCHAIRS, OTP, NCP, BIO, ANTISEPTIC, NABEER, SOFTDRINKS, PETFOOD, SEAFOOD, MEAT, TOYS, TITAN, RADIO, OPTIC_FIBER, VEGETABLE_OIL, CONSERVE, VETPHARMA, CHEMISTRY, AUTOFLUIDS, GROCERY, BOOKS, CONSTRUCTION, FIRE, HEATER, CABLERAW, POLYMER, SWEETS, CARPARTS, NATURAL_FUR, NICOTINDEV, GADGETS, FROZEN, FERTILIZERS, HOMEWARE, VETBIO, INDUSTRIAL, PYROTECHNICS Нет Группы категорий Честного знака
clientId integer · int64 Нет Поле clientId.
deleted boolean Нет Поле deleted.
positionId integer · int64 Нет Поле positionId.
versionId integer · int64 Нет Поле versionId.
createdUser string Нет Поле createdUser.
createdDate string · date-time Нет Поле createdDate.
price number · double Нет Поле price.
tariffs JobTariff[] Нет Поле tariffs.
Структура элемента массива JobTariff
ПолеТипОбязательноОписание
id integer · int64 Нет Поле id.
jobId integer · int32 Нет Поле jobId.
price number · double Нет Поле price.
brandId integer · int32 Нет Поле brandId.
categoryClass stringSHOES, LIGHT, DRUGS, CAMERA, TYRES, MILK, WATER, TOBACCO, FURS, BEER, BICYCLES, PERFUMES, ELECTRONIC, OTHER, NONE, FOOD, WHEELCHAIRS, OTP, NCP, BIO, ANTISEPTIC, NABEER, SOFTDRINKS, PETFOOD, SEAFOOD, MEAT, TOYS, TITAN, RADIO, OPTIC_FIBER, VEGETABLE_OIL, CONSERVE, VETPHARMA, CHEMISTRY, AUTOFLUIDS, GROCERY, BOOKS, CONSTRUCTION, FIRE, HEATER, CABLERAW, POLYMER, SWEETS, CARPARTS, NATURAL_FUR, NICOTINDEV, GADGETS, FROZEN, FERTILIZERS, HOMEWARE, VETBIO, INDUSTRIAL, PYROTECHNICS Нет Группы категорий Честного знака
categoryId integer · int32 Нет Поле categoryId.
priority integer · int32 Нет Поле priority.
productId integer · int64 Нет Поле productId.
curl --request POST 'https://api.selsup.ru/api/job/' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "id": 1001,
  "name": "Example",
  "categoryClass": "SHOES",
  "clientId": 1001,
  "deleted": false,
  "positionId": 1001
}'

Успешный ответ

200
Поля объекта Job
ПолеТипОбязательноОписание
id integer · int32 Нет Поле id.
name string Нет Поле name.
categoryClass stringSHOES, LIGHT, DRUGS, CAMERA, TYRES, MILK, WATER, TOBACCO, FURS, BEER, BICYCLES, PERFUMES, ELECTRONIC, OTHER, NONE, FOOD, WHEELCHAIRS, OTP, NCP, BIO, ANTISEPTIC, NABEER, SOFTDRINKS, PETFOOD, SEAFOOD, MEAT, TOYS, TITAN, RADIO, OPTIC_FIBER, VEGETABLE_OIL, CONSERVE, VETPHARMA, CHEMISTRY, AUTOFLUIDS, GROCERY, BOOKS, CONSTRUCTION, FIRE, HEATER, CABLERAW, POLYMER, SWEETS, CARPARTS, NATURAL_FUR, NICOTINDEV, GADGETS, FROZEN, FERTILIZERS, HOMEWARE, VETBIO, INDUSTRIAL, PYROTECHNICS Нет Группы категорий Честного знака
clientId integer · int64 Нет Поле clientId.
deleted boolean Нет Поле deleted.
positionId integer · int64 Нет Поле positionId.
versionId integer · int64 Нет Поле versionId.
createdUser string Нет Поле createdUser.
createdDate string · date-time Нет Поле createdDate.
price number · double Нет Поле price.
tariffs JobTariff[] Нет Поле tariffs.
Структура элемента массива JobTariff
ПолеТипОбязательноОписание
id integer · int64 Нет Поле id.
jobId integer · int32 Нет Поле jobId.
price number · double Нет Поле price.
brandId integer · int32 Нет Поле brandId.
categoryClass stringSHOES, LIGHT, DRUGS, CAMERA, TYRES, MILK, WATER, TOBACCO, FURS, BEER, BICYCLES, PERFUMES, ELECTRONIC, OTHER, NONE, FOOD, WHEELCHAIRS, OTP, NCP, BIO, ANTISEPTIC, NABEER, SOFTDRINKS, PETFOOD, SEAFOOD, MEAT, TOYS, TITAN, RADIO, OPTIC_FIBER, VEGETABLE_OIL, CONSERVE, VETPHARMA, CHEMISTRY, AUTOFLUIDS, GROCERY, BOOKS, CONSTRUCTION, FIRE, HEATER, CABLERAW, POLYMER, SWEETS, CARPARTS, NATURAL_FUR, NICOTINDEV, GADGETS, FROZEN, FERTILIZERS, HOMEWARE, VETBIO, INDUSTRIAL, PYROTECHNICS Нет Группы категорий Честного знака
categoryId integer · int32 Нет Поле categoryId.
priority integer · int32 Нет Поле priority.
productId integer · int64 Нет Поле productId.
{
  "id": 1001,
  "name": "Example",
  "categoryClass": "SHOES",
  "clientId": 1001,
  "deleted": false,
  "positionId": 1001
}
Ошибки12

Прикладные ошибки обычно возвращаются как JSON с полями error, localMessage и params. Ориентируйтесь на error; локализованный текст может меняться. Как API возвращает прикладные ошибки ↑

401auth_required
Требуется авторизация

Заголовок Authorization отсутствует, пуст или содержит недействительный токен.

400error_access_denied
Недостаточно прав

Токен существует, но его роль не позволяет выполнить операцию.

500error_unknown
Непредвиденная ошибка

Внутренняя ошибка. Сохраните время запроса и обратитесь в поддержку, не повторяя мутацию вслепую.

400error_empty_category_class
Не указан класс

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_category_class; localMessage содержит приведённый выше перевод.

400error_empty_job_price
Не указана цена для выполнения работы

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_job_price; localMessage содержит приведённый выше перевод.

400error_empty_position
Не указана должность

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_position; localMessage содержит приведённый выше перевод.

400error_empty_tariff_price
Не указана цена для тарифа №{position}

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_tariff_price; localMessage содержит приведённый выше перевод.

400error_empty_tariff_priority
Не указан приоритет для тарифа

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_tariff_priority; localMessage содержит приведённый выше перевод.

400error_empty_tariffs
Не указаны тарифы

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_tariffs; localMessage содержит приведённый выше перевод.

400error_job_already_exists
Задание с названием {jobName} уже существует

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_job_already_exists; localMessage содержит приведённый выше перевод.

400error_job_tariff_wrong_product_id
Некорректно указан идентификатор товара: {id}

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_job_tariff_wrong_product_id; localMessage содержит приведённый выше перевод.

400error_no_client
Клиент не найден или был удален. Напишите в поддержку

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.

Authorization

Токен для тестовых запросов

Токен хранится только в localStorage этого браузера и отправляется исключительно в заголовке Authorization запросов к api.selsup.ru.

Попробовать

Параметры реального запроса

Реальный ответ API

Выполните запрос, чтобы увидеть ответ SelSup.