Monetize.software может отправлять вам уведомления каждый раз, когда в вашем приложении происходит событие, и отслеживать изменения состояния для ваших подписчиков.
С интегрированными вебхуками вы сможете:
- Поддерживать синхронизацию вашего бэкенда с данными о подписках и покупках в реальном времени
- Настраивать автоматизированные рабочие процессы, реагирующие на события подписки
- Отправлять своевременные уведомления подписчикам о проблемах с оплатой или взаимодействовать с ними при отписке.
Поддерживаемые события
Событие | Описание |
payment.completed | Успешно завершенный платеж (разовый или первый платеж подписки) |
subscription.created | Создание новой подписки |
subscription.updated | Обновление подписки (изменение плана, статуса и т.д.) |
subscription.cancelled | Отмена подписки |
refund.created | Создание возврата средств |
Структура вебхука
Заголовки HTTP
Структура payload
Дополнительные поля для платежей
Дополнительные поля для подписок
Дополнительные поля для возвратов
Проверка подлинности
Подпись вебхука
Если вы настроили секретный ключ, каждый вебхук будет содержать заголовок
X-Monetize-Signature
с HMAC SHA256 подписью тела запроса.Пример проверки подписи
Python
Node.js
PHP
Обработка вебхуков
Требования к endpoint'у
- HTTPS: Вебхуки отправляются только на HTTPS URL'ы
- Статус ответа: Ваш endpoint должен возвращать HTTP статус 200-299 для успешной обработки
- Таймаут: Время ожидания ответа составляет 10 секунд
- Идемпотентность: Будьте готовы к получению дублирующихся событий
Рекомендации по обработке
Механизм повторных попыток
Система автоматически повторяет отправку вебхука при неудаче:
- Количество попыток: 5 попыток
- Интервалы: 5, 10, 20, 40, 80 минут (увеличивающиеся задержки)
- Условия повтора: HTTP статус 5xx или таймаут соединения
- После 5 неудачных попыток: отправка уведомлений прекращается
Логирование
Все попытки отправки вебхуков логируются, включая:
- Время отправки
- HTTP статус ответа
- Тело ответа (первые 1000 символов)
- Сообщения об ошибках
- Номер попытки
Логи доступны в панели управления в разделе Настройки → Вебхуки → выбрать конкретный вебхук.
FAQ
Что делать, если вебхуки не приходят?
- Проверьте, что URL доступен и возвращает статус 200
- Убедитесь, что используется HTTPS
- Проверьте логи вебхуков в панели управления
- Убедитесь, что вебхук активен и подписан на нужные события
Можно ли настроить несколько вебхуков?
Да, вы можете создать несколько вебхуков с разными URL и событиями.
Как обновить настройки существующего вебхука?
В разделе Настройки → Вебхуки нажмите на иконку редактирования рядом с нужным вебхуком.
Что делать, если вебхуки приходят дублированно?
Это нормальное поведение при повторных попытках. Реализуйте идемпотентную обработку, используя поле
id
события для дедупликации.Безопасность
- Всегда проверяйте подпись вебхука при использовании секретного ключа
- Используйте HTTPS для всех webhook URL'ов
- Не логируйте полные данные вебхуков в открытом виде
- Ограничьте доступ к webhook endpoint'ам
- Валидируйте данные перед обработкой
Ограничения
- Максимальный размер payload: 1 МБ
- Таймаут: 10 секунд
- Максимальное количество вебхуков на аккаунт: 10
- Ретенция логов: 30 дней
Поддержка
При возникновении проблем с вебхуками обращайтесь в техническую поддержку, указав:
- ID вебхука
- Время события
- Ожидаемое поведение
- Фактическое поведение
- Логи с вашей стороны (если есть)