Skip to content

Stripe webhooks — алерт по неуспешным доставкам

Endpoint `/stripe/webhook` начал отвечать 500 после деплоя — Stripe сделал 5 retry, потом сдался. Платежи отстают на 24h. Узнавать через 60 сек.

Рецепт

bash
#!/usr/bin/env bash
# Pulls last 100 webhook attempts; alerts on >= N failures.
STRIPE_KEY="${STRIPE_KEY:?must be set}"
THRESHOLD="${THRESHOLD:-3}"

JSON=$(curl -sS -u "$STRIPE_KEY:" \
  "https://api.stripe.com/v1/events?limit=100")
FAILED=$(echo "$JSON" | python3 -c '
import json, sys
d = json.load(sys.stdin)
fail = sum(1 for e in d.get("data", []) if e.get("pending_webhooks", 0) > 0)
print(fail)
' 2>/dev/null)

[ -z "$FAILED" ] && { echo "parse-fail"; exit 1; }
[ "$FAILED" -ge "$THRESHOLD" ] && echo "high $FAILED" || echo "ok $FAILED"

То же самое в Enterno.io

Endpoint + Enterno HTTP-монитор с keyword "ok" + Slack-уведомления = pager-уровень покрытия. Параллельно Security Scanner проверит endpoint на signature-validation.

Настроить HTTP monitor → ← Все рецепты

Похожие рецепты

Нужно ловить момент, когда реплика начала отставать от мастера больше чем на 10 секунд.