Cómo integrar Stripe en WordPress: guía técnica real
Si estás pensando en aceptar pagos online en tu web, integrar Stripe en WordPress es probablemente la decisión más sólida que puedes tomar. Stripe es hoy el procesador de pagos más usado por empresas europeas que venden a través de internet —y por buenas razones: su API es robusta, su documentación excelente y su tasa de conversión en checkout supera a PayPal en la mayoría de mercados. Pero cómo integrar Stripe en WordPress correctamente no es tan trivial como instalar un plugin y listo. Hay métodos, contextos y errores que vale la pena entender antes de empezar.
Esta guía cubre los tres métodos principales de integración, cuándo usar cada uno, qué configuración es realmente necesaria y cuáles son los fallos más frecuentes que hacen que los pagos fallen o que el checkout pierda conversiones.
Por qué Stripe y no otro procesador de pagos
Antes de entrar en la integración, un contexto rápido. Stripe no es solo un pasarela de pago: es una plataforma financiera que cubre desde el cobro puntual hasta suscripciones recurrentes, pagos en múltiples monedas, facturación automatizada y gestión de reembolsos. Para una pyme europea, esto es relevante porque cubre prácticamente todos los escenarios de negocio sin necesidad de contratar terceros adicionales.
Algunos datos que ayudan a decidir: Stripe está disponible en más de 40 países, acepta más de 135 monedas y tiene una comisión estándar del 1,5% + 0,25€ para tarjetas europeas (en su plan básico). No hay cuota mensual obligatoria, lo que lo hace accesible para negocios en fase de crecimiento. Su tasa de aprobación de pagos es sistemáticamente superior a la de PayPal en mercados europeos, según datos publicados por proveedores de e-commerce como WooCommerce.
Dicho esto, Stripe no es ideal para todos los casos. Si tu cliente objetivo es mayor de 55 años y prefiere PayPal por confianza de marca, o si vendes en mercados donde Stripe no opera (algunos países de Latinoamérica o Asia), esa ecuación cambia. Pero para webs corporativas y tiendas WooCommerce orientadas al mercado europeo, Stripe es casi siempre la opción más eficiente.
Los tres métodos reales para integrar Stripe en WordPress
No existe una sola forma de conectar Stripe con WordPress. La elección correcta depende de si tienes WooCommerce, si usas un constructor de formularios, o si necesitas algo completamente a medida.
Método 1: Stripe con WooCommerce (el más común)
Si tu tienda usa WooCommerce, la integración más directa es a través del plugin oficial «WooCommerce Stripe Payment Gateway», mantenido por WooCommerce y disponible de forma gratuita en el repositorio de WordPress. Este plugin cubre tarjeta de crédito/débito, Apple Pay, Google Pay y SEPA para débito directo —este último, especialmente relevante para clientes alemanes, holandeses o españoles que prefieren domiciliaciones bancarias sobre tarjeta.
El proceso de configuración sigue estos pasos:
- Instalar y activar el plugin desde Plugins > Añadir nuevo, buscando «WooCommerce Stripe».
- Ir a WooCommerce > Ajustes > Pagos y activar Stripe.
- Introducir las claves API de tu cuenta Stripe (clave publicable y clave secreta), disponibles en tu dashboard de Stripe bajo Desarrolladores > Claves API.
- Configurar el modo de prueba (test) antes de activar el modo live. Stripe ofrece tarjetas de prueba para simular pagos sin dinero real.
- Activar Stripe Elements para que el formulario de pago se renderice directamente en el checkout, sin redireccionar al usuario a una URL externa —esto mejora la conversión de forma significativa.
Un punto que muchos omiten: asegúrate de que tu sitio tiene SSL activo (HTTPS). Sin certificado SSL, Stripe bloquea los pagos en modo live. No es opcional.
Método 2: WP Simple Pay (sin WooCommerce)
Si no tienes una tienda WooCommerce pero necesitas cobrar —por ejemplo, por servicios, donaciones, suscripciones o registros de eventos— el plugin WP Simple Pay es la alternativa más usada. Permite crear formularios de pago de Stripe independientes, sin necesidad de un carrito de compra ni catálogo de productos.
Su versión gratuita cubre cobros únicos. La versión Pro añade suscripciones, cupones, pago en cuotas y gestión de clientes. Para muchas pymes que venden servicios o membresías, es una solución más limpia que montar un WooCommerce completo solo para aceptar pagos.

El proceso de integración es similar: conectas tu cuenta Stripe desde el panel del plugin, defines el importe (fijo o libre) y el plugin genera un shortcode o bloque de Gutenberg que insertas en cualquier página. El formulario utiliza Stripe Elements, así que cumple con los estándares PCI DSS sin que tengas que gestionar datos de tarjeta en tu servidor.
Método 3: Integración directa con la API de Stripe
Esta opción está pensada para proyectos con lógica de negocio compleja que los plugins no pueden cubrir. Por ejemplo: un marketplace con pagos divididos entre vendedores, una plataforma SaaS con pricing dinámico según uso, o un flujo de checkout completamente personalizado.
La API de Stripe está bien documentada y ofrece librerías oficiales para PHP, que es el lenguaje nativo de WordPress. La integración directa implica llamadas al servidor de Stripe desde funciones PHP personalizadas, gestión de webhooks para confirmar eventos de pago, y lógica propia para actualizar el estado de pedidos en la base de datos.
Este método requiere un desarrollador con experiencia en APIs REST y en la arquitectura de WordPress (hooks, custom post types, REST API de WP). No es recomendable para equipos sin capacidad técnica interna, porque los errores en la gestión de webhooks pueden derivar en pagos que no se confirman correctamente o reembolsos que no se registran en el sistema.
Configuración técnica que marca la diferencia
Sea cual sea el método que uses, hay un conjunto de configuraciones que determinan si la integración funciona de verdad o solo «parece que funciona» hasta que un pago falla en producción.
Webhooks: el componente que más se ignora
Un webhook es una notificación que Stripe envía a tu web cuando ocurre un evento: un pago completado, una suscripción cancelada, un reembolso procesado. Si no configuras webhooks correctamente, tu WordPress no se entera de que un pago ha ocurrido a menos que el usuario complete manualmente el checkout.
El endpoint de webhooks para el plugin de WooCommerce Stripe suele ser algo como https://tudominio.com/?wc-api=wc_stripe. Debes registrar este endpoint en tu dashboard de Stripe bajo Desarrolladores > Webhooks y seleccionar los eventos relevantes: payment_intent.succeeded, charge.refunded, customer.subscription.deleted, entre otros según tu caso.
Un error frecuente es configurar el webhook solo en modo test y olvidarse de añadirlo también en modo live. El resultado: en producción, los pedidos quedan en estado «pendiente» aunque el cliente haya pagado.
Stripe Elements vs Stripe Checkout: qué diferencia hay
Stripe ofrece dos formas distintas de presentar el formulario de pago. Stripe Elements embebe el formulario directamente en tu página, con el diseño que tú controlas. Stripe Checkout redirige al usuario a una página alojada por Stripe.
Para la mayoría de tiendas WooCommerce, Stripe Elements es la mejor opción porque mantiene al usuario en tu dominio, lo que reduce la fricción y mejora la confianza. Stripe Checkout puede ser útil si quieres delegar completamente la gestión del formulario de pago a Stripe (menos trabajo de mantenimiento) o si operas en sectores donde la marca Stripe genera más confianza que una página propia.
Modo prueba vs modo live: el protocolo correcto
Siempre trabaja en modo test antes de activar pagos reales. Stripe proporciona tarjetas de prueba con números conocidos (por ejemplo, 4242 4242 4242 4242 para un pago exitoso, o 4000 0000 0000 0002 para simular un rechazo). Prueba al menos estos escenarios antes de ir a producción:
- Pago exitoso con tarjeta europea.
- Pago rechazado por fondos insuficientes.
- Autenticación 3D Secure (obligatoria en Europa por la directiva PSD2).
- Reembolso total y parcial.
- Recepción correcta del webhook en tu servidor.
Si saltas alguno de estos pasos, es probable que descubras el fallo cuando un cliente real lo experimente.
Cumplimiento normativo: PCI DSS y PSD2 en Europa
Este apartado lo omiten casi todos los tutoriales, pero es fundamental si operas en la Unión Europea. PCI DSS establece los estándares de seguridad para el manejo de datos de tarjetas. La buena noticia: si usas Stripe Elements o Stripe Checkout, Stripe gestiona la captura y almacenamiento de datos de tarjeta en sus servidores, lo que te coloca en el nivel de cumplimiento más bajo (SAQ A). No tienes que gestionar datos sensibles en tu servidor.
PSD2, la directiva europea de servicios de pago, exige autenticación fuerte del cliente (SCA) para la mayoría de pagos online en Europa. Stripe gestiona esto automáticamente a través de 3D Secure 2. Si no tienes activada la compatibilidad con SCA en tu plugin, algunos pagos europeos serán rechazados directamente por el banco emisor —sin que ni tú ni el cliente reciban un mensaje de error claro.
Verifica que tu versión del plugin de Stripe para WooCommerce es reciente (2024 o posterior) porque las versiones anteriores no implementan SCA de forma completa.
Errores frecuentes al integrar Stripe en WordPress
Estos son los problemas que aparecen con más frecuencia en proyectos reales, no en tutoriales:
- Claves API intercambiadas: usar la clave de test en producción o viceversa. El síntoma es que los pagos no se procesan y el log de errores muestra «No such customer» o «Invalid API key».
- Sin SSL en el dominio: Stripe bloquea el modo live si no detecta HTTPS. Muchos servidores compartidos incluyen SSL automático (Let’s Encrypt), pero hay que verificar que el certificado está activo y correctamente configurado.
- Conflictos con otros plugins de pago: si tienes PayPal y Stripe activos simultáneamente con diferentes versiones del SDK de JavaScript, pueden interferir. Revisa el log de consola del navegador si el formulario de pago no carga.
- Webhook no registrado en Stripe: como mencioné antes, esto hace que los pedidos queden en «pendiente» aunque el pago se complete.
- Caché agresiva que rompe el checkout: algunos plugins de caché (W3 Total Cache, WP Rocket) cachean páginas de checkout que no deberían cachearse. Asegúrate de excluir
/cart/,/checkout/y/mi-cuenta/de la caché.
Preguntas frecuentes sobre la integración de Stripe en WordPress
¿Necesito una cuenta de empresa en Stripe o sirve una cuenta personal?
Stripe permite crear cuentas tanto para personas físicas como para empresas. Para un negocio real, es recomendable registrarse como empresa (con NIF o CIF) porque el dashboard de Stripe diferencia los pagos por concepto fiscal y facilita la conciliación contable. Además, algunos métodos de pago como SEPA Direct Debit requieren una cuenta verificada como empresa.
¿Puedo usar Stripe en una web WordPress.com?
WordPress.com en sus planes de pago permite conectar Stripe directamente desde su panel, sin instalar plugins. Pero las opciones de personalización son muy limitadas comparadas con WordPress.org (autohospedado). Si necesitas un checkout personalizado o integración con WooCommerce avanzado, necesitas un hosting propio.
¿Stripe cobra comisión sobre todos los pagos?
Sí, Stripe cobra por cada transacción procesada. Para tarjetas europeas el estándar es 1,5% + 0,25€. Para tarjetas no europeas (emitidas fuera del EEE), la comisión sube a 2,5% + 0,25€. Los reembolsos no tienen coste adicional, aunque la comisión original no se devuelve. Para volúmenes altos, Stripe ofrece precios negociados mediante su plan «Custom».
¿Cómo sé si la integración está funcionando correctamente?
La forma más fiable es realizar al menos una transacción real de importe mínimo (por ejemplo, 1€) justo después de activar el modo live, y verificar que el pedido cambia a «Completado» en WooCommerce, que el webhook se registra en el log de Stripe, y que el dinero aparece en tu balance de Stripe. No confíes solo en el modo test.
¿Qué pasa si un pago falla por 3D Secure?
El banco del cliente solicita verificación adicional (normalmente un código SMS o confirmación en la app del banco). Si el plugin está correctamente configurado, el checkout de WooCommerce muestra una pantalla de verificación y redirige al cliente de vuelta si confirma. Si la verificación falla, el pedido queda como «Fallido» y el cliente recibe un email de error. Stripe registra el motivo exacto del fallo en su dashboard.
Cuándo tiene sentido una integración a medida frente a un plugin
La respuesta honesta es: para el 80% de los proyectos, un plugin bien configurado es suficiente. El plugin de WooCommerce Stripe cubre suscripciones, pagos múltiples, guardado de métodos de pago y 3D Secure. No hay razón para construir algo desde cero si un plugin maduro y mantenido activamente resuelve el caso de uso.
La integración a medida tiene sentido cuando el flujo de negocio es suficientemente complejo como para que un plugin genérico cree más fricción que solución: marketplaces con pagos divididos (Stripe Connect), plataformas con lógica de precios basada en uso real, o proyectos donde el checkout forma parte de una aplicación web más amplia con autenticación propia.
Si estás en ese escenario o simplemente quieres que alguien revise tu integración actual antes de lanzar, puedes consultarlo a través de nuestro formulario de contacto.
Opinión del redactor
Lo que más me llama la atención cuando reviso integraciones de Stripe ya en producción es que el 90% de los problemas no son técnicamente complejos: son configuraciones omitidas en el momento del lanzamiento. Webhooks sin registrar, certificados SSL caducados, caché que rompe el checkout. Nadie los detecta porque en modo test todo funciona, y en producción el primer pago fallido lo descubre un cliente real, no el equipo. Por eso insisto en que el protocolo de verificación antes del go-live no es un lujo técnico —es la diferencia entre un lanzamiento limpio y una semana apagando fuegos.