alloop
Ingresos

Stripe

Configura el webhook de Stripe hacia alloop con los diez eventos necesarios, incluido invoice.paid, sin el cual las renovaciones no se cuentan.

El fragmento de tu web sabe de dónde viene cada persona; Stripe sabe cuánto pagó. El webhook une las dos mitades desde el servidor, así que la venta se cuenta aunque el navegador del cliente falle, cierre la pestaña o bloquee scripts.

1. Crea el webhook en Stripe

En el panel de Stripe, Desarrolladores → Webhooks → Añadir endpoint. La URL es la tuya, con tu identificador de academia:

https://track.alloop.ch/webhooks/stripe/tu-academia

2. Selecciona los diez eventos

Este es el paso donde se pierde dinero si se hace a medias. Selecciona los diez:

checkout.session.completed
checkout.session.async_payment_succeeded
invoice.paid
invoice.payment_failed
charge.refunded
charge.dispute.created
customer.subscription.created
customer.subscription.updated
customer.subscription.deleted
customer.subscription.resumed

Sin invoice.paid tus renovaciones no existen

Es el error más caro y el más silencioso. Con checkout.session.completed a secas, la primera venta de una suscripción se cuenta y ninguna renovación después. El panel parece funcionar —las altas entran— mientras tu MRR y tu LTV se quedan cortos mes a mes, y el churn parece mejor de lo que es. Si solo revisas una cosa de esta página, que sea que invoice.paid está marcado.

Comprueba lo que quedó configurado de verdad, no lo que creías marcar:

stripe webhook_endpoints list --limit 5
# o para uno concreto:
stripe webhook_endpoints retrieve we_XXXX

En enabled_events deben salir los diez.

3. Comprueba que el aviso viaja

Con la CLI de Stripe puedes dispararlo sin cobrar a nadie:

stripe trigger checkout.session.completed

En Webhooks → tu endpoint → Intentos recientes, la entrega debe figurar como 200. Si sale en rojo, el detalle del error viene en la misma pantalla.

4. Haz una compra real de prueba

Entra a tu web desde un enlace marcado, compra con un nombre reconocible como test-alloop y confirma dos cosas:

  1. Stripe marca la entrega del webhook como correcta.
  2. En tu panel aparece la venta con el mismo importe que ves en Stripe, y con su origen.

Cuando los dos importes coinciden, el círculo está cerrado. Una venta no existe hasta verla en el panel.

Si vendes también con tu propio Checkout

Si tu web usa Stripe Checkout por su cuenta (en lugar del checkout de alloop), una suscripción emite checkout.session.completed y invoice.paid por el mismo cobro. alloop deduplica —el ingreso no se dobla, el registro es idempotente por cargo—, pero conviene saberlo si ves dos eventos para una venta.

Y si tu web tiene su propio píxel

Si además llevas un píxel de Meta propio, tendrás la conversión duplicada en Meta (tu píxel y el envío de alloop, sin deduplicar entre ellos). No afecta a tus números en alloop, pero sí a lo que Meta te reporta y, por tanto, a cómo optimiza. Consolídalo en uno.

Varias divisas

Si cobras en más de una moneda (por ejemplo euros y francos), cada venta llega en la moneda en que se cobró. Sumar divisas distintas da un total que engaña, así que el panel las separa. Mira cada moneda por su lado antes de sacar conclusiones de un total único.

Errores comunes

SíntomaCausa probableArreglo
Las altas se cuentan, las renovaciones noFalta invoice.paidPaso 2: añádelo y verifica con enabled_events
El webhook aparece como fallidoURL mal escrita o client_id que no es el tuyoRevisa la URL del paso 1
La venta llega con importe ceroEstá activado un evento que no lleva el detalle del pagoUsa exactamente los diez del paso 2
El total no cuadra con StripeSe están sumando divisas distintasMira cada moneda por separado
La venta entra sin origenEl fragmento no está en la página de compraInstalación

Siguiente paso

Si además vendes con una tienda, conecta WooCommerce. Para entender los términos del panel, pasa por el glosario.

En esta página