Que PayPal deje de cobrar en una tienda WooCommerce es de los fallos que más caros salen: cada hora sin pasarela es una hora sin ventas. La buena noticia es que casi siempre es una de cuatro o cinco causas concretas, y ninguna requiere rehacer la tienda.
Empieza por comprobar qué extensión tienes
Hoy la integración oficial se llama WooCommerce PayPal Payments y es la que WooCommerce mantiene. Si en tu tienda hay algún plugin antiguo del tipo «PayPal Standard», «PayPal Express Checkout» o alguno de terceros que lleve años sin actualizarse, ese es probablemente el problema de fondo y lo demás son síntomas.
Migrar tiene un orden que conviene respetar: instalar la extensión oficial, conectarla, probar en el entorno de pruebas y solo entonces desactivar la anterior. Nunca al revés.

1. «The payee does not have a PayPal account»
Es el mensaje que más asusta y el que más rápido se arregla. Quiere decir que las credenciales con las que la tienda habla con PayPal no son válidas, o que la cuenta de comercio todavía no está verificada.
Qué hacer: desconecta la extensión y vuelve a conectarla con el asistente de vinculación, que es lo que regenera las credenciales correctamente. Si después de reconectar sigue igual, el problema está en la cuenta y hay que hablar con el soporte de comercios de PayPal; suele pedir documentación del negocio.
2. DUPLICATE_INVOICE_ID
PayPal bloquea por diseño dos cobros con el mismo identificador de factura, para que un cliente no acabe pagando dos veces. El error aparece cuando dos tiendas distintas usan la misma cuenta de PayPal con el mismo prefijo de factura.
El escenario clásico: restauras una copia de la tienda en un dominio de pruebas y ambos empiezan a emitir facturas con la misma numeración.
Qué hacer: asigna un prefijo de factura distinto a cada sitio en los ajustes de la extensión. Existe la opción de permitir varios pagos con el mismo identificador desde las preferencias de tu cuenta PayPal, pero desactiva justamente la protección contra cobros duplicados: no es lo recomendable.
3. «Something went wrong. Please try again or choose another payment source»
Este mensaje no dice nada por sí mismo, y por eso desespera. Es el cajón donde caen varias causas distintas:
- Moneda no admitida. No todas las monedas funcionan con todas las cuentas. Comprueba que la moneda de la tienda esté entre las que acepta la tuya.
- Caracteres no válidos en el nombre del producto o en los datos del pedido. Los símbolos poco comunes pueden hacer que PayPal rechace la petición.
- La API REST de WordPress está bloqueada. La extensión la necesita. Algunos plugins de seguridad la cierran por completo.
- Conflicto con otro plugin o con el tema.
Cómo aislarlo: abre https://tudominio.com/wp-json/ en el navegador. Si no devuelve una respuesta con datos, ahí está el problema. Si responde bien, desactiva los demás plugins y vuelve a activarlos de uno en uno hasta que el error reaparezca.
4. Las validaciones de tu formulario no se aplican
Un fallo más silencioso, y por eso más peligroso: añades campos obligatorios al formulario de pago y, cuando el cliente paga con el botón de PayPal, esos campos se saltan sin avisar.
La causa es de orden: el botón de PayPal crea el pedido antes de que se dispare woocommerce_checkout_process, que es donde la mayoría de los desarrollos ponen sus validaciones.
La solución es mover esa lógica al enganche woocommerce_after_checkout_validation, que sí se ejecuta a tiempo.
5. Publicar sin haber probado
PayPal ofrece un entorno de pruebas —el sandbox— con cuentas ficticias de comprador y vendedor. Saltárselo es lo que convierte un fallo de configuración en un fallo con clientes reales delante.
Antes de abrir los pagos, prueba al menos: un pago con saldo de PayPal, un pago con tarjeta sin cuenta, un reembolso, y un pedido que el comprador cancela a mitad. Los cuatro se comportan distinto.
6. Requisitos del servidor que casi nadie revisa
- Certificado de seguridad válido y en toda la tienda. Un certificado vencido corta la comunicación con PayPal sin dar un mensaje claro.
- Enlaces permanentes activados. Si están en la opción «simple», la API REST no funciona y con ella tampoco la extensión.
- Versión de PHP con soporte. Las versiones antiguas fallan al negociar el cifrado con PayPal.
- Que las notificaciones de PayPal lleguen. Si tu servidor las rechaza, hay pedidos que se pagan y se quedan marcados como pendientes para siempre.
7. El orden correcto para diagnosticar
- ¿Qué extensión hay instalada? Si no es la oficial, empieza por ahí.
- ¿La conexión aparece como activa en los ajustes?
- ¿Responde
/wp-json/? - ¿La moneda de la tienda está admitida?
- ¿El error se repite con todos los plugins desactivados menos WooCommerce?
- ¿Ocurre también en el entorno de pruebas, o solo en producción? Si solo en producción, la causa está en la cuenta, no en el código.
Seguir este orden ahorra horas, porque cada paso descarta un bloque entero de causas posibles en lugar de probar soluciones al azar.
Preguntas frecuentes
¿Por qué no aparece el botón de PayPal en mi tienda?
Las causas habituales son tres: la conexión con PayPal no llegó a completarse, la moneda de la tienda no está admitida por la cuenta, o hay un conflicto con otro plugin o con el tema. Empieza revisando que el estado de la conexión aparezca como activo en los ajustes de la extensión.
¿Qué significa “The payee does not have a PayPal account”?
Que las credenciales que está usando la tienda no son válidas, o que la cuenta de comercio no está verificada. La solución oficial es desconectar y volver a conectar con el asistente de vinculación; si persiste, hay que verificar la cuenta con el soporte de comercios de PayPal.
¿Qué es el error DUPLICATE_INVOICE_ID?
Es una protección de PayPal contra cobros duplicados. Salta cuando dos tiendas usan la misma cuenta de PayPal con el mismo prefijo de factura, algo típico después de restaurar una copia de seguridad en otro dominio. Se resuelve poniendo un prefijo de factura distinto en cada sitio.
¿Sirven todavía los códigos de error como 10002 o 10486?
No para la extensión oficial actual. Esos códigos pertenecen a la API antigua NVP / Express Checkout. Si una guía te habla de ellos, está desactualizada o se refiere a un plugin obsoleto.
¿Puedo probar los pagos sin dinero real?
Sí. PayPal ofrece un entorno de pruebas llamado sandbox, con cuentas ficticias de comprador y de vendedor. Conviene pasar por ahí antes de abrir los pagos reales, y probar más de un método: tarjeta, saldo de PayPal y, si los usas, pagos recurrentes.
¿Por qué mis validaciones de campos personalizados no se aplican al pagar con PayPal?
Porque el botón de PayPal crea el pedido antes de que se dispare el punto de enganche habitual de WooCommerce. Hay que mover esa validación al enganche woocommerce_after_checkout_validation, que sí se ejecuta a tiempo.
