История вебхуков: как использовать?

В настройках профиля есть раздел «Интеграция», где можно создавать API-ключи и вебхуки, а также просматривать историю их отправки.

В предыдущих статьях рассказывали о том, как настроить интеграцию и работать с документацией, а теперь перейдем к работе с историей вебхуков.


Где найти историю?

В карточке аккаунта перейдите в редактирование профиля — «Интеграция» — «История вебхуков».


Что отображается в истории вебхуков?

Здесь фиксируются события, на которые настроены соответствующие вебхуки. Эти события различаются по типу, статусу и паре API Key+webhook. В деталях платежа можно увидеть тело запроса, отправленного в момент события, а также историю попыток отправки. Чтобы просмотреть детали платежа, нужно кликнуть по строке вебхука.


Какие есть типы событий и чем они отличаются?

Каждое событие привязано к типу платежа и статусу контракта:

  • Типы платежей бывают двух видов:
- оплата (покупка цифрового продукта, курса, консультации или первый платеж по подписке);
- рекуррентный платеж (продление или отмена подписки).
  • А статусы контракта трех:
- success (успешный платеж);
- failed (незавершенный платеж, например, недостаточно средств на балансе клиента или другая причина);
- cancelled (отмененный, в случае подписки).

Поэтому в истории можно встретить следующие типы событий:

  • payment.success — успешная покупка продуктов (не донатов) и первая оплата подписки;
  • payment.failed — неуспешная покупка продуктов (не донатов) и первая оплата подписки;
  • subscription.recurring.payment.success — успешное продление подписки (второй, третий и последующие платежи);
  • subscription.recurring.payment.failed — неуспешное продление подписки (второй, третий и последующие платежи);
  • subscription.cancelled — отмена ранее купленной подписки.

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

  • Вебхук с типом «Результат платежа» принимает только события payment.success и payment.failed.
  • Вебхук с типом «Регулярный платеж» принимает только события subscription.recurring.payment.success, subscription.recurring.payment.failed и subscription.cancelled.


Что такое статус вебхука?

Статус показывает был ли получен вебхук.

Может быть только два статуса:

- DELIVERED (доставлено) — вебхук успешно доставлен.

- FAILED (не доставлено) — произошел сбой при доставке.

Статус вебхука определяется HTTP-кодом, который поступает вместе с событием.


Какие HTTP коды могут быть у вебхуков и что они значат?

Коды 2ХХ и 3ХХ указывают на успешную доставку вебхука.

Коды 4ХХ и 5ХХ говорят о неудачной доставке. В таких случаях lava.top повторяет попытки отправки до 19 раз.

Если lava.top получает неудачный статус-код, повторные попытки отправляются с интервалами, начиная с момента предыдущей попытки:

  • 1s,
  • 5s,
  • 15s,
  • 1m,
  • 1m,
  • 1m,
  • 1m,
  • 1m,
  • 1m,
  • 1m,
  • 1m,
  • 1m,
  • 1m,
  • 1m,
  • 1h,
  • 1h,
  • 1h,
  • 1h,
  • 1h.

При каждой попытке отправить вебхук в историю будет добавляться событие с соответствующим HTTP-кодом. Если статус-код указывает на успех, то появится одно событие об успешной или неуспешной оплате. При неуспешном ответе может быть до 20 попыток (они прекращаются после успешной отправки или после 19 попыток). Все эти события можно просмотреть в разделе «История попыток отправки» в деталях вебхука.

Наиболее популярные коды ответов:

Код 401 / Код 403 — неверные данные авторизации, нельзя получить доступ к методу принятия вебхуков;

Код 404 — в вебхуке прописан неверный URL (ссылка на сервер автора, который принимает и обрабатывает вебхуки);

Код 500 — ошибка на стороне сервера автора, который принимает вебхуки.


Повторная отправка вебхука

С помощью кнопки стрелки каждый вебхук можно отправить повторно.

Нажмите и подтвердите отправку.



Нет события в истории вебхуков — что это значит?

Может быть такая ситуация — в разделе «Продажи» отображается оплата, но нет события в истории вебхуков. Возможные причины:

  • Клиент совершил покупку напрямую через платформу, а не через API.
  • Вебхук для такого события не настроен, или его тип не соответствует покупке.


Как найти нужное событие через фильтр?

Чтобы открыть поля для поиска по дополнительным параметрам, нажмите кнопку справа от фильтров.

При поиске по почте покупателя в списке истории вебхуков появятся события с указанным email. То же самое с полем Invoice ID — введите параметр и в истории вебхуков сразу появится нужное событие.