Новый заказ в интернет-магазине, оплата прошла успешно, курьер уже в пути, друг отметил вас на фото в соцсети. Это происходит мгновенно — не нужно постоянно запрашивать или обновлять эту информацию. Всё это вебхуки.
В статье разберем, что это такое, как работают, зачем нужны и как настроить.
Что такое вебхук
Вебхук — это автоматическое сообщение, которое одно приложение отправляет другому, когда происходит какое-то событие. Например, вы продаете товар на Авито. Когда покупатель оформит заказ, система Авито автоматически отправит вебхук на сервер и вы получите уведомление с информацией о заказе. Это работает сразу же — не нужно ничего настраивать вручную.
Чем вебхук отличается от API
Основное отличие в том, что вебхуки работают по событиям. Система автоматически присылает данные, например когда приходит новый заказ. А с API сначала нужно сделать запрос — узнать, есть ли новые данные, и если есть, сделать еще один запрос — получить данные. У каждого метода свои преимущества: вебхуки быстро отправляют обновления в режиме реального времени, а с API можно запрашивать данные, только когда они действительно нужны.
Как выглядят вебхуки
Вебхук — это HTTP-запрос, который один сервис отправляет другому.
Например, в интернет-магазине подключен вебхук платежной системы — так менеджер видит уведомления о новых оплатах. Когда клиент вносит деньги, система отправляет вебхук на сервер, например по адресу:
https://мой-магазин.ru/webhook
Сервер получил данные и обновил статус заказа на «Оплачен».
А вот так вебхук выглядит в виде программного кода:
{
"order_id": 12345,
"status": "paid",
"amount": 1500,
"currency": "RUB",
"payment_method": "card"
}
Как работают вебхуки
Вебхуки упрощают работу — заменяют ручной труд на автоматический. Вот как это работает:
- Вы настроите вебхук — укажете, куда сервис должен отправлять данные.
- Когда произойдет событие, например клиент сделает заказ, сервис отправит вебхук — автоматический запрос (POST) с данными.
- Сервер получит и обработает информацию — например, поменяет статус заказа, отправит уведомление или обновит базу данных.
Примеры, как использовать
Вебхуки применяют в разных сферах, например: маркетинг, IT, аналитика, образование, соцсети. Вот как их используют в разных сферах.
- Меняет статус доставки (СДЭК, Почта России, Boxberry)
Вы отправили клиенту заказ через курьерскую службу. Логистическая компания, например СДЭК, отправляет вебхук на сервер каждый раз, когда статус доставки меняется. Сервер получает вебхук и обновляет статус заказа на сайте или отправляет клиенту уведомление:
{
"order_id": "12345",
"status": "Доставляется",
"expected_delivery": "2024-04-01"
}
Клиент сразу видит, где его заказ, и получает сообщение, когда посылка приедет. - Отправляет уведомления в телеграм
Команде менеджеров нужно быстро получать уведомления в чате. Например, если клиент сделал заказ, выскакивает ошибка на сайте или если появился новый клиент. Как это работает: когда клиент оформил заказ, сайт отправил вебхук в телеграм и бот опубликовал сообщение в канале:
Новый заказ: iPhone 15 Pro
Сумма: 120 000 ₽
Покупатель: Иван Иванов
Так специалисты сразу видят новые заказы, и проверять CRM вручную не нужно. - Автоматически публикует посты в соцсетях (VK, телеграм)
Вы ведете блог и хотите, чтобы новые записи автоматически публиковались в соцсетях. Вот как поможет вебхук. Когда публикуете новый пост в блоге, CMS (WordPress, Shopify) отправляет вебхук в сервис автопостинга и пост автоматически размещается в соцсетях. Это экономит время — не нужно вручную копировать сообщение и каждый раз публиковать на разных площадках. - Быстро оповещает о сбоях на сайте
У компании есть сайт, и нужно быть в курсе, если вдруг появлятся ошибки. Например, если сервер упадет. Мониторинговый сервис (UptimeRobot, New Relic) видит, что сайт недоступен, отправляет вебхук в телеграм, и бот сразу сообщает:
Внимание! Сайт упал
URL: https://example.com
Время сбоя: 12:34
Так специалисты быстро отреагируют на проблему — еще до жалоб клиентов. - Автоматически генерирует и отправляет документы (счета, договоры, чеки)
Вы работаете с клиентами, и нужно, чтобы система автоматически создавала и отправляла документы по адресу. Когда клиент оформил заказ, CRM отправит вебхук в сервис, который генерирует документы. Клиенту на почту автоматически придет счет или договор в PDF. Это экономит время и избавляет от рутины. - Автоматически добавляет пользователей в имейл-рассылку
Компания собирает имейл-базу рассылок и хочет, чтобы новые клиенты автоматически попадали в список подписчиков. Когда пользователь зарегистрировался на сайте, система отправила вебхук и человек автоматически попадает в имейл-рассылку. Не нужно вручную добавлять новых пользователей.
Ограничения при работе с вебхуками
Вебхуки — это мощный инструмент автоматизации, но у него есть свои ограничения и проблемы. Данные потеряются, сервер упадет или начнутся проблемы с безопасностью, если не учитывать некоторые моменты.
- Нет гарантии, что сообщение дойдет. Иногда уведомления не доходят до получателя. Если на сервере была ошибка или сбой в сети, сообщение о новом заказе не придет.
- Проблемы с безопасностью. Если вебхук настроен неправильно, хакеры могут отправить вредоносные запросы. Например, переслать через ваш вебхук письмо с фишинговой ссылкой.
- Сложно настроить. Людям, у которых нет специальных знаний, трудно настроить вебхуки. Например, обычный пользователь может не знать, как правильно указать адрес, на который будут приходить уведомления.
На курсах программирования в онлайн-университете Skypro не только разберетесь, что такое вебхуки и как с ними работать, но и научитесь полезным навыкам. Выбирайте любое направление, которое больше нравится: Python-разработчик, веб-разработчик, Java-разработчик или инженер по тестированию. За несколько месяцев освоите одну из востребованных и высокооплачиваемых профессий. Навыков, которые получите на курсе, хватит, чтобы пройти собеседование и устроиться на новую работу.
- Сервер перегружается. Серверу тяжело справиться с нагрузкой, когда событий много или они происходят одновременно. Если у интернет-магазина распродажа и за несколько минут поступила тысяча новых заказов, сервер может упасть.
- Ограниченные события. Не все события можно настроить через вебхуки. Если что-то происходит офлайн, система не сможет это отследить.
Как повысить безопасность
Есть несколько способов.
- Используйте HTTPS. Зашифрованные данные защитят информацию, которую передают через вебхуки. Например, вместо
http://ваш-сайт.com/webhook
используйтеhttps://ваш-сайт.com/webhook
— так данные не перехватят. - Добавьте токены аутентификации. Включите в URL токены, которые действуют как уникальные идентификаторы. Вебхук будет выглядеть так:
https://ваш-сайт.com/webhook?token=уникальный_токен.
И вы будете знать, что запросы приходят от надежного источника. - Используйте Basic Auth. Это когда отправитель указывает имя пользователя и пароль вместе с запросом. Такая настройка на сервере гарантирует, что данные отправляют только авторизованные пользователи.
- Подписывайте запросы. Отправитель подписывает каждый запрос с помощью ключа, а получатель проверяет подлинность. Например, GitHub использует HMAC — подписывает свои запросы. И пользователь сразу видит, от кого именно пришли данные.
- Проверяйте IP-адреса. Ограничьте доступ к вебхуку — разрешите доступ только с определенных IP-адресов. Если знаете, что система работает только с серверов определенного провайдера, настройте правила защиты.
Как создать и проверить вебхук
Вот небольшой гайд, как создать и протестировать вебхук.
-
- Создайте вебхук
- Определите, какой сервис будет отправлять вебхук: телеграм, GitHub или маркетплейс.
- Настройте вебхук в сервисе. Например, нужно зарегистрировать вебхук для бота в телеграме. Код выглядит так:
curl -F "url=https://example.com/webhook" "https://api.telegram.org/bot/setWebhook"
Теперь телеграм будет отправлять все сообщения бота на указанный URL. - Запустите сервер. Вебхуки приходят POST-запросами, поэтому нужно создать сервер, который будет их принимать.
Например, простой сервер на Python (Flask):
from flask import Flask, request
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.json # Получаем данные вебхука
print("Получен вебхук:", data)
return "OK", 200 # Ответ на вебхук
if __name__ == '__main__':
app.run(port=5000)
Теперь вебхуки будут приходить на http://localhost:5000/webhook.
- Проверьте вебхук
Самый простой способ использовать Webhook.site.- Перейдите на Webhook.site
- Скопируйте сгенерированный URL.
- Вставьте этот URL в настройки вебхука в сервисе.
- Отправьте тестовый вебхук и посмотрите, какие данные приходят.
- Создайте вебхук

Webhook.site предоставляет временный URL — так вы увидите, какие данные приходят Источник: webhook.site
Сервер должен правильно обработать вебхук, когда его получает, — принять сообщение, проверить, что это новый заказ, и отправить подтверждение. Это выглядит так:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.json
print("Получен вебхук:", data)
# Проверяем тип события
if data.get("event") == "new_order":
order_id = data["order_id"]
print(f"Обрабатываем заказ #{order_id}")
# Отправляем подтверждение
return jsonify({"message": "Order received", "order_id": order_id}), 200
return jsonify({"message": "Event not supported"}), 400
if __name__ == '__main__':
app.run(port=5000)
Главное: как работает вебхук и для чего он нужен
- Вебхук — это когда одно приложение отправляет данные другому приложению, если происходит определенное событие.
- У системы есть ограничения: нет гарантии, что сообщение придет; лимит по объему данных; нужен надежный URL; вебхук сложно настроить, если нет специальных знаний. А еще данные потеряются, если сервер, который принимает сообщение, недоступен.
- Между API и вебхуками есть отличия. Например, вебхук отправляет данные автоматически, а с API нужно запрашивать информацию.
- Добавьте токены аутентификации, используйте HTTPS, подписывайте запросы, используйте Basic Auth, проверяйте IP-адреса — так вы обезопасите информацию.
- Вебхуки используют, например, в программировании, образовании, маркетинге, аналитике.
Добавить комментарий