Термин

Webhook

Автоматическое уведомление, которое одна система отправляет другой при событии — например при выставлении счёта.

Обновлено

Что это значит

Вебхук - это автоматическое уведомление, которое одна система отправляет другой в момент, когда что-то произошло: пришёл заказ, платёж подтверждён, изменился статус посылки. У принимающей стороны для этого есть подготовленный адрес, который обрабатывает сообщение.

От API он отличается направлением. API мы спрашиваем сами, когда что-то нужно; вебхук приходит сам, без повторяющихся запросов со стороны системы.

Вебхук обычно несёт не всю запись, а лишь сообщение о том, что что-то произошло, и идентификатор заказа или платежа. Подробности принимающая система запрашивает сама через API, авторизуясь API-ключом. Так не нужно доверять содержимому, пришедшему извне, и данные всегда читаются из первоисточника.

Как это работает на практике

На практике это самый дешёвый способ связать интернет-магазин, платёжный шлюз и учёт почти в реальном времени. Документ возникает тогда, когда происходит событие, а не при ночной передаче.

При проектировании нужно учитывать, что сообщение может прийти дважды или в другом порядке. Поэтому обработку делают идемпотентной: повторная доставка того же события не должна создавать второй документ. Это относится к описанию рабочего процесса, а не к памяти программиста.

Платёжный шлюз отправляет интернет-магазину вебхук об оплате, и заказ помечается как оплаченный. Но деньги шлюз перечисляет на счёт одной суммой за вычетом комиссий. Поэтому при проводке мы сверяем сумму подтверждённых платежей за период с поступлением по банковской выписке, чтобы разницу составляли только комиссии, а не пропавшие платежи.

На что обратить внимание

Адрес для вебхука публичный, поэтому нужно проверять подпись или секретный ключ, иначе кто угодно сможет прислать поддельное подтверждение платежа. А если принимающая система не работает, сообщение потеряется: хорошая интеграция включает и контроль пропущенных событий.

Разработчик на всякий случай пишет в логи всё содержимое входящих вебхуков, включая имена, адреса и телефоны клиентов. Потом логи годами не удаляются, и их видит каждый, у кого есть доступ к серверу. Техническая мелочь превращается в неконтролируемую обработку персональных данных, которую GDPR не допускает.

Нужно объяснить термин на вашей конкретной ситуации? Консультации от 55 € / час без НДС, в зависимости от темы и сложности.