Подпишите свой сервер на нужные события. SelSup отправит POST-запрос на сохранённый адрес, когда изменится заказ или доступный остаток. Проверяйте подпись каждого уведомления перед обработкой.
/api/webhook
Примеры использования
Примеры использования
01
Передавать новые заказы во внешнюю систему
Настройте обработчик, подпишитесь на CREATE_ORDER и проверьте уведомление на тестовом заказе.
Подготовьте публичный HTTPS-адрес, который принимает JSON через POST.
Создайте подписку с url и types: ["CREATE_ORDER"], сохраните id и signingSecret.
Проверьте подпись полученного запроса, сохраните уведомление и верните HTTP-ответ 2xx.
Для отключения отправки удалите подписку по её id.
Эти поля описывают настройки подписки. Формат самого уведомления зависит от выбранного события и приведён в руководстве по вебхукам.
Webhook7 полей
idinteger · int32
Идентификатор подписки, который SelSup присваивает после создания.
namestring
Название для различения подписок, например «Заказы для WMS».
urlstring
Публичный адрес вашего обработчика. На него SelSup отправляет POST-запросы.
typesstring[]
Массив типов событий: CREATE_ORDER, ORDER, ORDER_STATUS, CREATE_PRODUCT или STOCK.
clientIdinteger · int64
Идентификатор кабинета, которому принадлежит подписка. Определяется по авторизации.
organizationIdinteger · int64
Ограничение по организации для событий заказов. Без значения подписка принимает заказы разных организаций кабинета.
signingSecretstring
Секрет проверки подписи X-SelSup-Signature. Возвращается при создании и просмотре подписок; храните его на сервере.
read-only
Ошибки
Обработка ошибок
При ошибке API возвращает её код в поле error и сообщение на языке пользователя в localMessage. Проверяйте код error в программе, а localMessage показывайте пользователю.
error
Код ошибки для обработки в программе.
localMessage
Сообщение на языке пользователя, которому принадлежит токен.
params
Значения, которые сервер подставил в сообщение об ошибке.
文
Язык localMessage определяется полем lang пользователя, которому принадлежит API-токен. Язык страницы документации и заголовок Accept-Language его не переключают; если язык пользователя не указан, используется русский.
RUПользователь с локалью ru
{
"error": "error_brand_already_exists",
"localMessage": "Бренд Base уже существует",
"params": {
"name": "Base"
}
}
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
401auth_required
Требуется авторизация
Заголовок Authorization отсутствует, пуст или содержит недействительный токен.
400error_access_denied
Недостаточно прав
Токен существует, но его роль не позволяет выполнить операцию.
500error_unknown
Непредвиденная ошибка
Не удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
400error_subscription_expired
У вас закончился срок действия тарифа. Оплатите тариф для продолжения использования сервиса.
Для работы с подписками требуется действующий тариф. После оплаты повторите запрос.
POST
Создать подписку
/api/webhook/
Токен с правами записи
Принимает адрес обработчика и непустой массив типов событий. SelSup создаёт отдельный секрет подписи и возвращает сохранённую подписку. Для событий заказов можно ограничить отправку по organizationId.
Тело запроса
application/json
Поля объектаWebhook
Поле
Тип
Обязательно
Описание
id
integer · int32
Нет
Идентификатор подписки, который SelSup присваивает после создания.
name
string
Нет
Название для различения подписок, например «Заказы для WMS».
url
string
Нет
Публичный адрес вашего обработчика. На него SelSup отправляет POST-запросы.
types
string[]
Нет
Массив типов событий: CREATE_ORDER, ORDER, ORDER_STATUS, CREATE_PRODUCT или STOCK.
clientId
integer · int64
Нет
Идентификатор кабинета, которому принадлежит подписка. Определяется по авторизации.
organizationId
integer · int64
Нет
Ограничение по организации для событий заказов. Без значения подписка принимает заказы разных организаций кабинета.
signingSecret
string
Нет
Секрет проверки подписи X-SelSup-Signature. Возвращается при создании и просмотре подписок; храните его на сервере.
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
401auth_required
Требуется авторизация
Заголовок Authorization отсутствует, пуст или содержит недействительный токен.
400error_access_denied
Недостаточно прав
Токен существует, но его роль не позволяет выполнить операцию.
500error_unknown
Непредвиденная ошибка
Не удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
400error_empty_type
Не указан тип
Массив types отсутствует, пуст или содержит null. Передайте хотя бы один поддерживаемый тип события.
400error_empty_url
Не указан адрес сайта
В поле url не указан адрес обработчика или переданы только пробелы.
400error_invalid_url
Некорректный адрес обработчика
Проверьте публичный адрес обработчика и его длину: допускается не более 200 символов. Локальные и запрещённые адреса не принимаются.
400error_subscription_expired
У вас закончился срок действия тарифа. Оплатите тариф для продолжения использования сервиса.
Для работы с подписками требуется действующий тариф. После оплаты повторите запрос.
DELETE
Удалить подписку
/api/webhook/{webhookId}
Токен с правами записи
Прекращает отправку уведомлений по этой подписке. Уже полученные сообщения в вашей системе остаются.
Параметры пути
Поле
Тип
Обязательно
Описание
webhookId
integer · int64
Да
Идентификатор подписки из ответа создания или списка.
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
401auth_required
Требуется авторизация
Заголовок Authorization отсутствует, пуст или содержит недействительный токен.
400error_access_denied
Недостаточно прав
Токен существует, но его роль не позволяет выполнить операцию.
500error_unknown
Непредвиденная ошибка
Не удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
400error_subscription_expired
У вас закончился срок действия тарифа. Оплатите тариф для продолжения использования сервиса.
Для работы с подписками требуется действующий тариф. После оплаты повторите запрос.