SelSup Developers

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

Вебхуки

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

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

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

/api/webhook

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

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

01

Начать работу с разделом «Вебхуки»

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

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

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

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

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

Webhook6 полей
idinteger · int32

Идентификатор вебхука, отдается после создания

namestring

Название вебхука

urlstring

Адрес сайта, куда будет отправляться запрос

typesstring[]

Список типов

clientIdinteger · int64

Поле clientId.

organizationIdinteger · int64

Организация для которой создается webhook

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

Как 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"
  }
}

Методы

Методы

GET

Список Webhookок

/api/webhook/
Токен с правами чтения

Возвращает список всех вебхуков, которые созданы в аккаунте клиента

curl --request GET 'https://api.selsup.ru/api/webhook/' \
  --header 'Authorization: YOUR_API_TOKEN'

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

200
Структура элемента массива Webhook[]
ПолеТипОбязательноОписание
id integer · int32 Нет Идентификатор вебхука, отдается после создания
name string Нет Название вебхука
url string Нет Адрес сайта, куда будет отправляться запрос
types string[] Нет Список типов
clientId integer · int64 Нет Поле clientId.
organizationId integer · int64 Нет Организация для которой создается webhook
[
  "string"
]
Ошибки4

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

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

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

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

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

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

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

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

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

POST

Создать Webhook

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

Создает новую подписку на события. В настоящий момент можно получать следующие события: CREATE_ORDER, ORDER, ORDER_STATUS, CREATE_PRODUCT, STOCK,которые передаются в параметре types: ["CREATE_ORDER"]

Тело запроса

application/json
Поля объектаWebhook
ПолеТипОбязательноОписание
id integer · int32 Нет Идентификатор вебхука, отдается после создания
name string Нет Название вебхука
url string Нет Адрес сайта, куда будет отправляться запрос
types string[] Нет Список типов
clientId integer · int64 Нет Поле clientId.
organizationId integer · int64 Нет Организация для которой создается webhook
curl --request POST 'https://api.selsup.ru/api/webhook/' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "id": 1001,
  "name": "Example",
  "url": "https://example.com",
  "types": "string",
  "clientId": 1001,
  "organizationId": 1001
}'

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

200
Поля объекта Webhook
ПолеТипОбязательноОписание
id integer · int32 Нет Идентификатор вебхука, отдается после создания
name string Нет Название вебхука
url string Нет Адрес сайта, куда будет отправляться запрос
types string[] Нет Список типов
clientId integer · int64 Нет Поле clientId.
organizationId integer · int64 Нет Организация для которой создается webhook
{
  "id": 1001,
  "name": "Example",
  "url": "https://example.com",
  "types": "string",
  "clientId": 1001,
  "organizationId": 1001
}
Ошибки7

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

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

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

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

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

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

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

400error_empty_type
Не указан тип

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

400error_empty_url
Не указан адрес сайта

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

400error_invalid_url
Некорректный адрес сайта, он должен начинаться с http:// или https://, в адресе запрещено указывать слово selsup, localhost

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

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

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

DELETE

Удалить Webhook

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

Позволяет удалить подписку на события, чтобы отменить получение уведомлений

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

ПолеТипОбязательноОписание
webhookId integer · int64 Да Поле webhookId.
curl --request DELETE 'https://api.selsup.ru/api/webhook/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

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

200

Тело ответа пустое.

Ошибки4

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

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

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

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

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

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

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

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

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

Authorization

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

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

Попробовать

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

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

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