Gravity Forms y su Add-on de Stripe permiten crear suscripciones recurrentes de múltiples años directamente en WordPress. El proceso requiere configurar feeds específicos con intervalos de facturación personalizados, webhooks en Stripe para sincronización automática, y validar que los clientes puedan actualizar métodos de pago o cancelar desde tu sitio.
En 30 segundos
- Gravity Forms necesita licencia Developer ($199/año) y el Add-on de Stripe para procesar suscripciones multi-año
- Las suscripciones se crean en Feeds donde elegís tipo Subscription e intervalo de facturación (anual, bienal, trimestral)
- Stripe requiere webhooks configurados para sincronizar estados de pago y poder avisar cambios de suscripción al sitio
- Los clientes ven y manejan sus suscripciones activas desde el sitio; pueden cambiar tarjeta o cancelar sin tocar Stripe directamente
- Los problemas más comunes son webhooks sin configurar, caché agresivo bloqueando scripts de Stripe, y errores de autenticación 3D Secure
Qué es Gravity Forms y el Add-on de Stripe
Gravity Forms es un plugin de formularios avanzados para WordPress que permite crear desde simples contactos hasta sistemas complejos de pago. El Add-on de Stripe integra el procesador de pagos de Stripe directamente en los formularios, permitiendo cobrar pagos únicos o configurar suscripciones recurrentes sin que el cliente salga de tu sitio.
Instalás el plugin, comprás la licencia developer de Gravity Forms para acceder al Add-on de Stripe, conectás tus claves API de Stripe y listo: tu formulario puede cobrar. La parte de suscripciones multi-año va un paso más allá: vos definís que cada 2, 3 o 5 años la tarjeta se cargue automáticamente, sin que el usuario tenga que hacer nada.
Diferencia entre Pagos Únicos y Suscripciones Recurrentes
En Gravity Forms, cuando creás un Feed (la configuración que conecta un formulario con Stripe) elegís el tipo de transacción. Ahí está la bifurcación importante.
Pagos únicos usan el tipo «Products and Services»: el usuario completa el formulario, se cobran X pesos una sola vez, se genera un Charge en Stripe. Fin. Ideal para compras puntuales, donaciones, o servicios de una sola vez.
Suscripciones recurrentes usan el tipo «Subscription»: acá Stripe crea un objeto Customer + Subscription que se repite automáticamente cada período que vos definas (mensual, trimestral, anual, bienal). Cada período, Stripe intenta cobrar la tarjeta guardada. Si falla, reintentas. Si el usuario cancela, termina la suscripción pero mantiene acceso hasta que expire el período actual.
La clave: con suscripciones, vos no sos quien cobra. Es Stripe quien maneja los reintentos, maneja el ciclo de vida, avisa de cambios. Tu rol es ofrecer el formulario, manejar los webhooks que Stripe te envía, y darle al usuario un portal para ver su suscripción.
Requisitos Previos: SSL, Licencia Developer y Configuración Stripe
Antes de armar nada, necesitás tres cosas (y la tercera cuesta plata).
Primero, certificado SSL. Stripe no permite formularios de pago en HTTP. Tiene que ser HTTPS. Si tu sitio corre en un hosting decente, ya tenés SSL gratis (Let’s Encrypt), así que eso zafó. Si no, configuralo. Sobre eso hablamos en automatizar tus procesos de suscripción.
Segundo, Gravity Forms con licencia Developer. Las versiones gratuita y básica no incluyen Add-ons. Necesitás Developer ($199/año) o Elite ($399/año). Comprás en gravityforms.com, instalás el plugin, activás la licencia, y desde ahí podés descargar el Add-on de Stripe (incluido).
Tercero, cuenta Stripe lista. Accedés a stripe.com, creás una cuenta (si no la tenés), verificás identidad y dominio, y generás dos claves: Publishable Key (la que va en el front, sin riesgos) y Secret Key (la que solo maneja el servidor, NUNCA exponerla). Gravity Forms usa ambas para comunicarse con Stripe de forma segura.
Instalación y Configuración del Add-on de Stripe
Una vez que tenés Gravity Forms con licencia Developer, el Add-on ya está disponible para descargar.
Vas a Forms > Settings > License. Acá activás tu licencia (pones el email y key que te dieron). Una vez activada, ves «Add-ons» en el menú lateral. Buscás Stripe, lo instalás, lo activás. Recargá la página.
Ahora en Forms > Settings aparece una pestaña «Stripe» (o ves Stripe en las opciones globales). Pegás la Publishable Key y la Secret Key que sacaste de Stripe. Guardás. Gravity Forms valida que las claves sean correctas. Si pasan el test, ya está conectado.
Desde ahora, cuando edites un formulario, tenés disponible la acción «Stripe» para enviar los datos del formulario a Stripe.
Crear un Feed de Suscripción: Ciclos de Facturación y Tarifa de Configuración
Un Feed es la configuración que dice: «este formulario mandá datos a Stripe como suscripción».
Editás el formulario, bajás a la sección de acciones (Actions) y agregás «Create a Stripe Payment». Acá elegís tipo de transacción: elegís «Subscription» (no «Products and Services»).
Ahora viene lo que querés: configurar el ciclo de facturación. Hay presets (mensual, trimestral, anual) pero si necesitás bienal, trienal o algo personalizado, Gravity Forms permite ingresar un número + unidad (2 años, 3 años, etc.). El intervalo se guarda en Stripe y ese es el período que se cobra automáticamente. Esto se conecta con lo que analizamos en crear extensiones propias en WordPress.
También podés agregar una «Setup Fee» (tarifa de configuración única) que se cobra solo la primera vez. Útil si querés cobrar un costo de activación aparte de la suscripción. Ejemplo: suscripción anual $100 + setup fee $50 = primer pago $150, luego $100 cada año.
Si querés período de prueba gratuito, también va acá: marcás «Free Trial» e indicás cuántos días. El usuario completa el formulario, no se cobra nada los primeros 15 días (o los que digas), y después empieza la facturación automática.
Configurar Webhooks en Stripe para Sincronización Automática
Webhooks son mensajes que Stripe te manda a tu sitio diciendo «che, pasó algo». Pagó, falló, canceló, vencimiento próximo, lo que sea.
Sin webhooks configurados, tu sitio no se entera de nada. El usuario cancela desde Stripe, pero tu sitio sigue creyendo que paga. Es un quilombo.
Configurarlos es simple. Vas a Stripe Dashboard > Developers > Webhooks. Agregás un endpoint (tu sitio + ruta de webhook). Gravity Forms, cuando instalás el Add-on, crea automáticamente una ruta: generalmente tu-sitio.com/wp-json/gravityforms/v2/webhooks (varía un poco según versión). Copias esa URL, la pegás en Stripe, seleccionás qué eventos querés que te avise (mínimo: charge.succeeded, charge.failed, customer.subscription.deleted, customer.subscription.updated), y guardás.
Stripe manda un test, Gravity Forms recibe y registra. Listo. Ahora cada transacción importante avisa a tu sitio automáticamente.
Gestión de Suscripciones: Información de Cliente y Cancellación
El usuario rellena el formulario, se cobra, queda suscripto. ¿Y ahora? ¿Cómo ve su suscripción? ¿Cómo actualiza la tarjeta vencida? Para más detalles técnicos, mirá proteger datos sensibles de tus clientes.
Gravity Forms por defecto guarda los datos en la base de datos del sitio. El usuario puede ver un «resumen de suscripción» si vos creás una página con shortcode, pero la experiencia es básica.
Hay complementos (plugins adicionales, algunos gratis, otros pagos) que mejoran esto: GravityStripe por ejemplo agrega un portal de cliente donde ven suscripción activa, pueden cambiar tarjeta, cambiar cantidad, cancelar, pausar. Algunos son plugin, otros son soluciones integradas.
Si no usás complemento, el usuario que quiere cancelar tiene dos opciones: o vos le das acceso manual (complicas tu vida) o tenés que ofrecer un formulario de cancelación dentro del sitio que se conecta a Stripe API, lo cual requiere código custom.
La recomendación: si cobrás suscripciones multi-año recurrentes, invertí un poco en un portal de cliente. Reduce fricciones y soporte manual.
Comparativa: Ciclos de Facturación Disponibles
| Ciclo | Período | Caso de uso | Config en Gravity Forms |
|---|---|---|---|
| Mensual | 30 días (aprox.) | SaaS, software, suscripción prueba | Preset directo |
| Trimestral | 3 meses | Servicios recurrentes moderados | Preset directo |
| Semestral | 6 meses | Licencias, membresías intermedio | Intervalo personalizado: 6 meses |
| Anual | 12 meses | Planes anuales, membresías premium | Preset directo |
| Bienal | 24 meses | Licencias largas, dominios, hosting | Intervalo personalizado: 2 años |
| Personalizado | X días/semanas/meses/años | Esquemas únicos, modelos híbridos | Campo numérico + unidad |

Errores Comunes y Cómo Evitarlos
1. Webhooks no configurados o con endpoint equivocado
Es el más común. El usuario paga, Stripe registra, pero tu sitio sigue sin saber. El cliente ve «pendiente» en tu panel, no recibe email de confirmación, qué se yo.
La solución: ingresá a Stripe Dashboard, revisá la URL exacta del webhook (copiala de Gravity Forms), pegala en Stripe, y testealá. Stripe te muestra si llegó correctamente. Si ves status 200, está OK. Si ves 4XX o 5XX, hay un problema de conectividad o la ruta está mala.
2. Caché agresivo bloqueando los scripts de Stripe
Si tu sitio usa caché de HTTP (LiteSpeed, WP Rocket, W3 Total Cache) configurado de forma muy agresiva, a veces cachea los scripts de Stripe.js, que es crítico. Sin ese script, el formulario no valida tarjeta, no habla con Stripe.
Fix: en tu plugin de caché, excluye los scripts de stripe.com de la cachización. Hay opciones específicas en cada plugin. Lo explicamos a fondo en asegurar tus credenciales en deployment.
3. Autenticación 3D Secure rechazando pagos válidos
Algunos bancos (especialmente internacionales) requieren 3D Secure (verificación adicional). Si tu formulario no maneja 3D Secure bien, falla el pago aunque la tarjeta sea válida.
Gravity Forms soporta 3D Secure, pero hay que asegurarse que el webhook de confirmación esté bien configurado. Si ves transacciones falladas en Stripe Dashboard pero en tu sitio no figura nada, es probable que sea esto. Checkea el log de Stripe para ver el motivo exacto del fallo.
Preguntas Frecuentes
¿Cuánto cuesta la licencia Developer de Gravity Forms?
$199 USD por año. Incluye todos los Add-ons (Stripe, PayPal, Zapier, etc.), actualizaciones y soporte por email. Es por sitio, no por instalación global, así que si tenés 3 sitios, pagás 3 licencias.
¿Puedo configurar un período de prueba gratuita con suscripción multi-año?
Sí. Cuando creás el Feed, habilitás «Free Trial», indicás días (ejemplo: 14), e indicás también el ciclo de facturación (ejemplo: 2 años). El resultado: usuario rellena formulario, no se cobra nada los primeros 14 días, luego se cobra cada 2 años automáticamente.
¿Qué datos guarda Gravity Forms de la suscripción?
Gravity Forms guarda el ID de la suscripción en Stripe, el estado (activa, cancelada, pausada), la fecha de próximo pago, y los datos del formulario que completó el usuario. Pero no guarda el token de tarjeta ni datos sensibles: todo eso lo maneja Stripe de forma PCI-compliant.
¿Qué sucede si la tarjeta vence y no se puede cobrar?
Stripe reintentar cobrar automáticamente cada 3 días, durante 4 intentos. Si todos fallan, marca la suscripción como «past_due» (vencida). Vos podés ver esto en el webhook y avisar al cliente que actualice su tarjeta. Si lo hace dentro de cierto período, Stripe reintenta. Si no, la suscripción se cancela automáticamente.
¿Hay restricciones de países o tipos de tarjeta?
Stripe opera en la mayoría del mundo, pero tiene restricciones por país, industria y tipo de tarjeta. Argentina está soportada (mediante SP Plus, asociado local). Tarjetas Visa, Mastercard y AMEX funcionan. Algunas tarjetas internacionales pueden tener restricciones por reglamentaciones locales o bancos específicos, pero en general si la tarjeta es válida internacionalmente, Stripe la toma.
Conclusión
Las suscripciones multi-año con Gravity Forms y Stripe son viables, configurables, y relativamente straightforward si sabés qué hacés. No es magia: es conectar un formulario a Stripe, decirle qué ciclo querés, y manejar los webhooks para estar sincronizado.
La inversión es clara: $199/año en licencia Developer, tiempo en configurar webhooks (20 minutos), y eventualmente un complemento de portal si querés que los clientes autogestionen. El retorno: cobrar subscripciones sin fricción, con reintentos automáticos, y sin que vos tengas que tocar nada una vez que la suscripción empieza.
El único punto flojo es que Gravity Forms es bastante «medio que» en la gestión de suscripciones por defecto. Los usuarios no tienen un portal bueno de forma nativa. Por eso casi siempre terminas usando complementos como GravityStripe o similar. Pero eso es un extra, no un bloqueador.
Fuentes
- Documentación oficial de Gravity Forms Stripe Add-on — guía técnica completa de configuración e integración
- Blog de Gravity Forms: How to Take Subscriptions with Stripe — tutorial paso a paso de suscripciones
- Documentación de Stripe sobre Subscriptions — especificaciones técnicas de ciclos de facturación y webhooks
- Página de producto del Add-on de Stripe — características, precios y compatibilidad