Pagos Stripe fallidos en Gotify self-hosted

Pagos Stripe fallidos en Gotify self-hosted

Los cargos fallidos son la fuga silenciosa del ARR. Los emails de Stripe caen en una bandeja compartida. Slack es un mal sitio para emails de clientes e IDs de factura si el canal es amplio. Gotify deja el ping en un servidor que tú corres: push Android, WebUI simple, un application token.

El webhook de Stripe sigue apuntando a AlertHub — misma URL que en las alertas de pagos Stripe con Zapier y la doc de Stripe. Solo añades Gotify en Connections. Critical mapea a prioridad Gotify 8 (sonido); warning a 5. Info no sale del panel.

Gotify debe ser HTTPS y alcanzable desde internet. Una instancia solo en LAN no recibirá nada.

Eventos que merecen paginar

Evento StripeNivelPrioridad GotifyPor qué
invoice.payment_failedCritical8Facturación recurrente fallida
payment_intent.payment_failedCritical8Cargo one-shot fallido
customer.subscription.deletedWarning5Churn a revisar
invoice.paid / payment_intent.succeededInfo—Historial, sin sirena

No pongas PAN ni PII extra en los títulos. Importe, divisa e id de factura bastan en la pantalla de bloqueo.

Configuración (una vez)

  1. Construye la URL de Stripe (placeholders en la doc de Stripe o el constructor).
  2. En Stripe: Developers → Webhooks → esa URL, eventos de arriba.
  3. En Gotify: Apps → crea una app → copia el token → pega https://tu-gotify/message?token=TU_TOKEN en Connections → Gotify.

Los installs en subpath funcionan: https://example.com/gotify/message?token=….

Alerta 1: Factura no cobrada

invoice.payment_failed en critical es el default para SaaS. Título con importe y divisa; descripción con id de factura y un recordatorio de abrir Stripe (no el email del cliente en la notificación si el teléfono es público). La prioridad 8 de Gotify es el punto: el email de dunning no lo es.

Alerta 2: payment_intent.payment_failed one-shot

Un checkout que no termina sigue necesitando humano cuando el carrito es de alto valor. Mismo proyecto AlertHub, segunda URL de webhook Stripe con un ah_title distinto, o una URL y {{type}} en el título. Los intents correctos en info.

Alerta 3: Suscripción borrada

customer.subscription.deleted en warning es cola de revisión, no alarma de incendio. Finanzas puede mirar la WebUI de Gotify; la guardia no necesita prioridad 8 por cada cancelación.

Ideas para sacarle más partido

  • Slack después, no en su lugar. Añade Slack a un #billing privado si el equipo crece — guardia híbrida. No vuelques Stripe en #general.
  • Stripe por Zapier/Make. Si ya pasas por automatización, AlertHub como último nodo — n8n/Zapier/Make → Gotify.
  • ntfy en vez de Gotify. Misma URL de Stripe, destino ntfy si no montas servidor.
  • Rota la app de Gotify, no Stripe. Un token en Connections; Stripe sigue hablando con AlertHub.

Preguntas frecuentes

¿Stripe hace POST a Gotify?
No. Stripe → AlertHub → Gotify.

¿Puedo usar HTTP en la LAN?
No. AlertHub llama desde la nube. Termina TLS en un reverse proxy.

¿Los eventos de test mode paginan producción?
Usa un proyecto AlertHub aparte (o ignora info) para webhooks de test de Stripe.

Siguientes pasos

Mantén el webhook de Stripe, pega una URL de mensaje de Gotify y dispara invoice.payment_failed en test mode.

Relacionado: configuración de Gotify · Pagos Stripe con Zapier · WooCommerce → Gotify