Биллинговые вебхуки
Наблюдайте, ищите и повторяйте биллинговые вебхук-события вендора, которые платформа ForestVPN записывает для вашего проекта.
Когда биллинговый вендор (например, Stripe) сообщает платформе о том, что
что-то произошло — платёж прошёл, подписка продлилась, платёж оспорен — это
входящее событие записывается по каждому проекту до его обработки.
Семейство /platform/v1/billing/webhooks позволяет увидеть, что именно
пришло, успешно ли прошла обработка, и повторно запустить всё, что не
удалось.
Просмотр событий
curl https://api.fvpn.net/platform/v1/billing/webhooks \
-H "Authorization: Bearer $FVPN_API_KEY" \
-H "X-Project-Id: $FVPN_PROJECT_ID"GET /platform/v1/billing/webhooks перечисляет недавние события;
GET /platform/v1/billing/webhooks/search фильтрует их. Каждая запись о
событии несёт:
event_type— имя события у вендораstatusиprocessing_attempts— где событие находится в своём жизненном циклеreceived_at/processed_at— временная линия от приёма до завершенияlast_error— сообщение об ошибке, когда обработка не удаласьraw_payload_b64иdecoded_summary— доказательства, дословно
Состояние и задержка
Две модели чтения показывают, справляется ли обработка вебхуков:
GET /platform/v1/billing/webhooks/health— снимок текущего состояния конвейера;GET /platform/v1/billing/webhooks/lag-timeseries— задержка от приёма до обработки во времени; именно этот показатель стоит выводить в оповещения.
Повтор
Обработка идемпотентна, поэтому неудавшееся (или подозрительное) событие можно безопасно запустить повторно:
curl -X POST https://api.fvpn.net/platform/v1/billing/webhooks/$EVENT_ID/replay \
-H "Authorization: Bearer $FVPN_API_KEY" \
-H "X-Project-Id: $FVPN_PROJECT_ID"Повтор — это инструмент восстановления при инцидентах вендора: найдите
неудавшийся отрезок с помощью search, повторите события и наблюдайте, как
health возвращается в зелёный.
Справочник
Полные формы запросов и ответов — в сгенерированном
справочнике API в разделе platform-billing. Само состояние
биллинга (тарифы, подписки, счета) находится в более широком семействе
/platform/v1/billing/*, документированном рядом.