¿Cómo acepto pagos en USDT en mi tienda WooCommerce?
Puntos clave
- Un plugin, pocos ajustes y cero código. Subes el zip del release y en WooCommerce → Ajustes → Pagos → Payzum pegas la API key y el secreto del webhook, eliges producción o staging y copias la URL IPN en tu panel de Payzum.
- Decide el webhook, nunca el navegador. Un pedido pasa a Procesando solo con una notificación firmada con HMAC-SHA-512 cuyo monto y moneda coinciden con el pedido. Los pagos incompletos y los que no cuadran quedan En espera.
- Hecho para el WooCommerce de hoy: el gateway registra soporte para los bloques de Carrito y Checkout y declara compatibilidad con HPOS, los valores por defecto de las tiendas nuevas desde WooCommerce 8.3 y 8.2.
- El dinero nunca pasa por Payzum. El comprador paga USDT o USDC desde su wallet a la tuya. Qué monedas y redes aceptas se define en tu panel de Payzum.
- Conoce los límites: el plugin cobra pedidos puntuales. No se ofrece para altas de WooCommerce Subscriptions, y los reembolsos se envían desde tu wallet, no desde la pantalla del pedido.
Payzum es un procesador de pagos cripto sin custodia y enfocado en stablecoins: los pagos se liquidan directo en wallets que controla el comercio. Su gateway para WooCommerce, payzum-crypto-payments, es open source con licencia GPL-2.0 y vive en github.com/payzum-dev/woocommerce-payzum. Esta guía recorre la versión 1.5.1, publicada el 28 de septiembre de 2026, pantalla por pantalla: qué instalar, qué pegar dónde y qué estado de pedido verás en cada paso de un pago en USDT o USDC.
Por qué las tiendas WooCommerce suman USDT y USDC al checkout
WooCommerce es el carrito por defecto de la web abierta. W3Techs lo detecta en el 8,0% de todos los sitios web y en el 47,7% de los sistemas de e-commerce que logra identificar (30 de septiembre de 2026). Con ese alcance, una tienda WooCommerce en Bogotá, Monterrey o Madrid le vende a compradores de cualquier país, y muchos de ellos ya guardan sus dólares en stablecoins.
Cobrar con tarjeta tiene un costo conocido. Como referencia, WooPayments, el procesador de tarjetas del propio WooCommerce, publica para cuentas de EE. UU. 2,9% + 0,30 USD por transacción con tarjeta estadounidense, 1,5% adicional si la tarjeta es de otro país, otro 1% si hay conversión de moneda y 15 USD por disputa (documentación de comisiones de WooPayments, consultada el 30 de septiembre de 2026). Una venta internacional con conversión paga 5,4% + 0,30 USD antes de despachar nada. Las pasarelas locales de LATAM tienen sus propias tarifas, pero la lógica del cobro internacional con tarjeta es la misma.
Para una tienda que vende afuera con márgenes finos, eso es el margen. Y la comisión es solo la mitad: el pago con tarjeta sigue siendo reversible durante meses, con disputas posibles hasta unos 120 días después de la venta, y el dinero tarda días en llegar a tu cuenta.
Además están los compradores que directamente no quieren pagar con tarjeta: freelancers que cobran en USDT, clientes cuya tarjeta rebota en comercios del exterior o cuyo banco limita las compras internacionales, comunidades cripto. Para ellos, un checkout sin opción en stablecoins es un carrito abandonado.
Lo que le cuesta a una tienda WooCommerce un gateway cripto mal hecho
Sumar cripto también tiene riesgos. Los plugins de pago fallan de formas muy propias de WooCommerce, y cada falla cuesta plata:
- Pedidos marcados como pagados por la URL de retorno. Si el plugin confía en que el comprador llegó a tu página de "gracias", cualquiera puede abrir esa página sin pagar. La confirmación cripto es asíncrona: el navegador es el testigo equivocado.
- Pedidos pagados que se pierden por una pestaña cerrada. El problema inverso: el comprador paga, cierra la pestaña antes de volver y el pedido queda en Pendiente de pago mientras el dinero ya está en tu wallet.
- Pagos incompletos despachados como completos. Alguien envía 180 USDT por un pedido de 200, o paga una factura emitida para otro pedido. Un plugin que solo lee "estado: finished" completa el pedido igual.
- Doble despacho. Los proveedores de pago reintentan los webhooks. Un handler sin deduplicación manda dos correos de confirmación y descuenta el stock dos veces.
- Pedidos pagados que se cancelan después. Puede llegar un aviso tardío de "expirado" de una factura que sí se pagó. En WooCommerce, Cancelado no es cosmético: repone el stock y puede escribirle al cliente.
- Un gateway que desaparece del checkout. Desde WooCommerce 8.3 (16 de noviembre de 2023), las tiendas nuevas usan por defecto los bloques de Carrito y Checkout, y un gateway que nunca registró soporte para bloques no aparece ahí. Desde WooCommerce 8.2 (octubre de 2023), las instalaciones nuevas usan High-Performance Order Storage (HPOS), y los plugins que no declararon compatibilidad disparan advertencias.
- Fondos estacionados en un saldo que no controlas. Los gateways cripto custodiales juntan tus ventas en su wallet y te pagan después, con su calendario de retiros, sus mínimos y su política de congelamiento.
Por qué las pasarelas de tarjeta y los plugins cripto custodiales se quedan cortos en WooCommerce
Los plugins de tarjeta están maduros, pero el riel pone las reglas. El adquirente retiene los fondos, decide cuándo liquida y puede quitártelos con una disputa que tienes que pelear. Ningún ajuste de WooCommerce cambia eso.
Los plugins cripto custodiales resuelven la aceptación, no la custodia. El comprador paga a una dirección del gateway, el gateway te acredita un saldo y tú retiras cuando él lo permite. Ese saldo es justo lo que un proveedor puede congelar, o perder si cierra.
La vía casera conserva la custodia y pierde todo lo demás. Pegar una dirección de wallet en las instrucciones del checkout no te da un monto único por pedido, ni detección de pagos incompletos, ni cambio de estado automático, ni stock ni correos. Alguien termina cruzando transacciones de la blockchain con pedidos a mano.
Lo que necesita una tienda WooCommerce es un gateway que en el admin se comporte como un plugin de tarjeta (pantalla de ajustes, estados de pedido reales, logs) pero que liquide como cripto: final, en segundos y en una wallet que tú controlas.
Cómo resuelve los pagos en USDT el plugin de Payzum para WooCommerce
El plugin es un gateway de pago estándar de WooCommerce con una sola tarea: convertir un pedido en un pago de Payzum y dejar que un webhook firmado, y nada más, decida el resultado.
En el checkout: una página alojada y la moneda que elige el comprador
Cuando el comprador elige Payzum (por defecto aparece como "Crypto / Stablecoins (Payzum)" y puedes cambiarle el nombre), el plugin le envía a Payzum el total del pedido, la moneda, una referencia del pedido y tus URLs de retorno. Ningún dato personal del cliente sale de tu tienda. El comprador llega a un checkout alojado con código QR y dirección de depósito, elige moneda y red, y paga desde cualquier wallet. No necesita crear una cuenta.
Las monedas que aparecen se configuran en tu panel de Payzum, en Merchants → Settings → Accepted tokens, y se validan del lado del servidor. Para la mayoría de las tiendas eso significa USDT y USDC en redes rápidas y baratas: Solana confirma en unos 0,4 segundos; Base y Polygon, en unos dos. Si además aceptas otras criptomonedas, la conversión automática opcional a USDC o USDT está disponible en la mayoría de las redes soportadas. Las diferencias entre ambas stablecoins están en USDT vs USDC para cobrar.
Después del pago: la IPN firmada es la única fuente de verdad
Payzum llama a la URL IPN de tu tienda de servidor a servidor. Antes de leer un solo campo, el plugin verifica una firma HMAC-SHA-512 sobre los bytes crudos de la petición con tu secreto de webhook, la compara en tiempo constante y rechaza las repeticiones fuera de una ventana de tiempo. Una petición sin firma, o mal firmada, recibe un 401 y el pedido no se toca.
Desde la versión 1.5.0 también comprueba que el monto y la moneda pagados coincidan con el pedido antes de completarlo. Lo que no cuadra queda En espera con una nota para que lo revises. Los reenvíos se deduplican por ID de evento y el paso a pagado corre bajo un bloqueo por pedido en la base de datos, así que dos entregas simultáneas no pueden despachar el mismo pedido dos veces. Si quieres la ingeniería detrás de este patrón, lee webhooks firmados para pagos cripto.
El cliente HTTP y la verificación de firma vienen del SDK oficial payzum/payzum-php, que va incluido en la carpeta vendor/ del plugin: no hay que correr Composer.
Adónde va el dinero
Lejos de Payzum. El pago va de la wallet del comprador directo a la wallet que configuraste en tu panel, y el código del plugin no contiene ninguna dirección de wallet. No hay saldo en Payzum que retirar, congelar o esperar. El modelo completo está en qué es un procesador de pagos cripto sin custodia.
Cómo aceptar pagos en USDT en WooCommerce, paso a paso
Necesitas WordPress 5.6 o superior, WooCommerce 5.0 o superior (el plugin está probado hasta WooCommerce 11.0) y PHP 8.1 o superior. Casi todo el tiempo se va en la prueba en staging, que es el paso que vale la pena hacer bien.
- Configura tu cuenta de comercio en Payzum. Regístrate en merchant.payzum.com, agrega la wallet donde quieres cobrar y elige tus monedas aceptadas: por ejemplo USDT y USDC en Base, Solana y Polygon. Crea una API key y anota tu secreto de webhook (IPN).
- Instala el plugin desde el zip del release. Descarga
payzum-crypto-payments-1.5.1.zipdesde la página Releases del repositorio. En WordPress entra a Plugins → Añadir nuevo → Subir plugin, elige el archivo y actívalo. No uses el botón verde "Download ZIP" de GitHub: descomprime en una carpetawoocommerce-payzum-main, y WordPress identifica el plugin por el nombre de su carpeta,payzum-crypto-payments. - Configura el gateway. Abre WooCommerce → Ajustes → Pagos → Payzum, marca Enable, pega la API key y el secreto del webhook, y deja Environment en Staging por ahora. Staging tiene sus propias API keys; una key de producción no funciona ahí.
- Conecta el webhook. La pantalla de ajustes muestra tu URL IPN,
https://tu-tienda.com/wc-api/wc_gateway_payzum. Pégala en la configuración de webhooks de tu panel de Payzum. La cabecera de la firma es fija, así que no hay nada más que hacer coincidir. - Elige cómo se ve el checkout. En Render mode, Redirect (el valor por defecto) lleva al comprador a la página alojada de Payzum, Modal la abre en una ventana superpuesta sobre tu tienda e Inline la incrusta en la página del pedido. Para Modal e Inline, si tu sitio envía una cabecera Content-Security-Policy, permite
merchant.payzum.comenscript-src,frame-srcyconnect-src. - Prueba en staging. Activa Debug log (los registros aparecen en WooCommerce → Estado → Registros, origen
payzum). Haz un pedido, págalo y comprueba que pasa a Procesando solo cuando llega el webhook. Después paga de menos un pedido a propósito y confirma que queda En espera. - Sal a producción. Cambia Environment a Production, pega la API key y el secreto de producción, configura la misma URL IPN en tu panel de producción y haz un pedido real pequeño.
La pantalla de ajustes, de un vistazo
| Ajuste | Qué poner |
|---|---|
| Enable/Disable | Márcalo para mostrar Payzum como método de pago en el checkout. |
| Title y Description | Lo que ve el comprador. Los textos por defecto mencionan USDC/USDT y el checkout alojado; puedes traducirlos. |
| API key | Tu key de 64 caracteres del panel de Payzum (Merchants → API key). |
| Webhook secret | El secreto con el que se firma la IPN; sirve para verificar cada firma HMAC-SHA-512. |
| Environment | Production (merchant.payzum.com) o Staging (staging.payzum.com, con keys propias). |
| Currency mode | Fiat (por defecto): tus precios siguen en la moneda de la tienda y el comprador paga el equivalente en la moneda que elija. Crypto: tus precios ya están en una moneda, indicada como símbolo más red (por ejemplo usdt + polygon), y el comprador paga ese monto exacto. |
| Fiat price currency | Solo en modo Fiat. Déjalo en la moneda de tu tienda: el total se envía tal cual, sin convertir. |
| Render mode | Redirect, Modal o Inline. |
| Debug log | Escribe los eventos del gateway en WooCommerce → Estado → Registros, origen payzum. |
A propósito, el plugin no tiene selector de monedas. Tus monedas aceptadas viven en el panel de Payzum, así que la lista que ve el comprador nunca se desincroniza de lo que tu cuenta acepta de verdad.
Qué estado de pedido verás en WooCommerce
| Qué pasó | Estado del pedido en WooCommerce |
|---|---|
| Pedido creado, modo Redirect | En espera, con la nota "Awaiting Payzum crypto payment" |
| Pedido creado, modo Modal o Inline | Pendiente de pago (WooCommerce solo muestra su página de pago para pedidos pagables) |
| Pago finalizado, monto y moneda coinciden | Procesando, o Completado si el pedido es virtual y descargable |
| Pago finalizado, pero el monto o la moneda no coinciden | En espera, "held for review, NOT completed" |
| Pago parcial | En espera, a la espera del resto |
| Factura expirada | Cancelado (WooCommerce repone el stock) |
| Pago fallido | Fallido |
| Cualquier aviso que llegue con el pedido ya pagado | Se ignora y queda como nota del pedido |
| Pedido con total cero | Completado al instante, sin crear factura |
El stock se descuenta en cuanto se crea el pedido, así que un producto no se vende dos veces mientras alguien está pagando. Nada de esta tabla lo dispara el navegador del comprador: una pestaña cerrada nunca pierde un pedido pagado y una visita a la página de "gracias" nunca marca como pagado uno que no lo está.
Casos de uso: tiendas WooCommerce que cobran en USDT y USDC
La configuración es la misma para todas. Lo que cambia es qué parte se paga sola en cada caso.
- Productos digitales para todo el mundo. Una tienda de presets y plantillas en Buenos Aires vende licencias de 49 USD a compradores de decenas de países. Sus pedidos son virtuales y descargables, así que un pago en USDT que cuadra los lleva directo a Completado y el correo de descarga sale cuando llega el webhook. Nadie abre una disputa meses después teniendo ya los archivos.
- Productos físicos con envío internacional. Un tostador de café de especialidad en Colombia vende bolsas a clientes en EE. UU. y Europa. Cada venta con tarjeta extranjera arrastra recargos internacionales y de conversión. El cliente que paga en USDC en Base se salta esos recargos, y el tostador recibe dólares digitales en su propia wallet segundos después.
- Tickets altos. Una tienda de electrónica en México con un ticket promedio de 2.500 USD pagaría 72,80 USD por venta con la tarifa de referencia de 2,9% + 0,30 USD, y un pedido con tarjeta robada puede volver semanas después como disputa. Un pago en USDT es final una vez confirmado, y el control de monto garantiza que el pedido se despacha solo cuando llegaron los 2.500 completos.
- Pedidos mayoristas y B2B. Una distribuidora en España recibe por WooCommerce pedidos de clientes en Latinoamérica que prefieren liquidar montos grandes en USDT. Si el cliente envía solo una parte, el pedido queda En espera como pago parcial y avanza recién cuando llega el resto.
Payzum en WooCommerce vs una pasarela de tarjeta y un plugin cripto custodial
Comparados con criterios neutros. Las cifras de tarjeta son las tarifas publicadas de WooPayments para EE. UU., consultadas el 30 de septiembre de 2026.
| Criterio | Pasarela de tarjeta (WooPayments) | Plugin cripto custodial | Payzum para WooCommerce |
|---|---|---|---|
| Dónde se liquidan los fondos | En el adquirente, que luego paga a tu banco | En la wallet del gateway, y luego retiras | En tu propia wallet, directo |
| Cuándo tienes el dinero | Días | Según el calendario de retiros del proveedor | Segundos tras la confirmación on-chain (Solana ~0,4 s; Base y Polygon ~2 s) |
| Contracargos | Sí, durante meses; 15 USD por disputa | No on-chain | No: los pagos son finales |
| Costo por pedido | 2,9% + 0,30 USD (tarjetas de EE. UU.), +1,5% internacional, +1% conversión | Varía según el proveedor | Costo de red de centavos en Base, Polygon o Solana |
| Quién puede congelar el dinero | El adquirente | El gateway | Nadie en Payzum: no hay saldo en Payzum |
| Quién marca el pedido como pagado | El webhook del gateway | El webhook del gateway | Una IPN firmada con HMAC-SHA-512, con monto y moneda verificados |
| Código del plugin | Consulta al proveedor | Varía | Público en GitHub, GPL-2.0 |
Nada te impide usar ambos. La mayoría de las tiendas mantiene su pasarela de tarjeta y suma Payzum como segundo método de pago, para que el comprador elija el riel.
Objeciones frecuentes, respondidas
"Mis clientes no tienen cripto."
La mayoría no necesita tenerla. Payzum es un método de pago más junto a tus tarjetas, no un reemplazo. Quienes lo eligen son justo los que de otro modo abandonarían el carrito o te dejarían los recargos de tarjeta más altos.
"¿Y la volatilidad?"
Deja Currency mode en Fiat y tus precios siguen en la moneda de tu tienda; el comprador paga el equivalente en el checkout. Si aceptas solo USDT y USDC, recibes dólares digitales. Si también aceptas otras criptomonedas, la conversión automática opcional a USDC o USDT está disponible en la mayoría de las redes soportadas.
"¿Es seguro instalar un plugin cripto en mi tienda?"
Tu desarrollador puede comprobarlo en lugar de confiar. El código es público con licencia GPL-2.0 y el handler del webhook está en includes/class-wc-gateway-payzum.php, método handle_ipn(). No hay ninguna dirección de wallet en el código, y lo único que se envía es el total, la moneda, la referencia del pedido y las URLs de retorno. Nuestra guía de plugins de pago cripto open source incluye un checklist de auditoría de 15 minutos.
"¿Cómo hago reembolsos si los pagos son finales?"
El gateway no emite reembolsos desde la pantalla del pedido en WooCommerce. Registra un reembolso manual en el pedido y devuelve los USDT desde tu wallet según la política de reembolsos que publicas en el checkout. Tú decides cuándo vuelve el dinero; no lo decide una red de tarjetas por ti.
Preguntas frecuentes
¿Cómo acepto pagos en USDT en mi tienda WooCommerce?
Instala el plugin open source de Payzum para WooCommerce desde el zip del release en GitHub, actívalo en WooCommerce → Ajustes → Pagos → Payzum, pega tu API key y tu secreto de webhook, y copia en tu panel de Payzum la URL IPN que aparece ahí. Agrega USDT y sus redes a tus monedas aceptadas en el panel. El comprador paga en un checkout alojado y un webhook firmado marca el pedido como pagado.
¿Cómo acepto pagos en USDC en WooCommerce?
Igual que con USDT: suma USDC, en las redes que quieras, a tus monedas aceptadas en el panel de Payzum. El plugin de WooCommerce no tiene un ajuste de monedas propio, así que el comprador simplemente ve USDC como opción en el checkout alojado. Los pagos se liquidan sin custodia en tu propia wallet.
¿El plugin de Payzum funciona con el checkout por bloques de WooCommerce y con HPOS?
Sí. El gateway registra soporte para los bloques de Carrito y Checkout de WooCommerce, el checkout por defecto de las tiendas nuevas desde WooCommerce 8.3, y declara compatibilidad con High-Performance Order Storage (HPOS), el valor por defecto desde la 8.2. También funciona con el checkout clásico por shortcode.
¿Qué estado de pedido pone WooCommerce cuando llega un pago en USDT?
Cuando un webhook firmado informa el pago como finalizado y el monto y la moneda coinciden con el pedido, este pasa a Procesando, o a Completado si es virtual y descargable. Los pagos parciales y los que no cuadran quedan En espera, las facturas expiradas pasan a Cancelado y los pagos fallidos a Fallido.
¿El plugin de Payzum para WooCommerce está en WordPress.org?
No, al 30 de septiembre de 2026. El plugin es público en GitHub, en payzum-dev/woocommerce-payzum, con licencia GPL-2.0. Descarga payzum-crypto-payments-1.5.1.zip desde la página Releases e instálalo en Plugins → Añadir nuevo → Subir plugin.
¿Funciona con WooCommerce Subscriptions?
No. El gateway declara soporte solo para pedidos puntuales de productos, así que WooCommerce no lo ofrece en las altas de suscripciones, en lugar de cobrar el primer pago y perder todas las renovaciones. Si necesitas cobros recurrentes en stablecoins, consúltanos por las suscripciones recurrentes de Payzum.
Agenda 20 minutos y dejamos USDT funcionando en tu tienda WooCommerce
Cada tienda WooCommerce está armada distinto: tema, checkout por bloques o por shortcode, plugins de envío, mercados. Agenda 20 minutos con nuestro equipo y diseñamos cómo cobrarías en USDT y USDC en tu tienda: monedas y redes aceptadas, modo de visualización, cómo encajan los estados de pedido en tu logística y un pedido de prueba en staging antes de salir en vivo. Sin custodia, en una wallet que tú controlas. Para cobros recurrentes, mira suscripciones cripto sin contracargos; para otros carritos, la guía del plugin de pagos cripto para tu tienda online.
Si el calendario no carga, agenda directo aquí · [email protected]
Este artículo es información general, no asesoría legal, fiscal ni financiera. El plugin se distribuye con la licencia GPL-2.0 de su repositorio; pruébalo en staging antes de usarlo en producción. Las reglas de reembolso, el tratamiento contable y las obligaciones fiscales de los pagos en stablecoins varían según la jurisdicción: confírmalos con tus propios asesores.