Integración de pagos cripto en tres pasos
Una llamada desde tu servidor, una línea en tu página. Sin infraestructura de wallets que levantar, porque el dinero liquida directo a direcciones que ya controlas.
API REST · Sin SDK obligatorio · Redirect, modal o inline · Webhooks firmados
Lo esencial
- Tres campos obligatorios.
price_amount,price_currencyypay_currency. Todo lo demás es opcional. - Deja elegir al comprador. Envía
pay_currency: "all"y el checkout muestra un selector con búsqueda, limitado a los tokens que permitas. - Tres superficies, un checkout. Redirect, capa modal o incrustado inline — la misma página alojada por debajo.
- El webhook manda. Los callbacks del widget mueven al comprador; el IPN firmado libera la mercancía.
- 29 integraciones de plataforma. WooCommerce, PrestaShop, Magento 2, Shopify, OpenCart, Shopware 6, WHMCS y más — ocho ya públicas y el resto a petición.
Construye la petición, lee la respuesta, renderiza el checkout
El panel trae un playground de integración que recorre estos tres pasos contra tu cuenta real, para que veas la respuesta antes de escribir una línea de código.
Tu servidor crea el pago
Un solo POST autenticado. price_amount, price_currency y
pay_currency son obligatorios; añade order_id,
success_url, cancel_url e ipn_callback_url cuando los
quieras. El precio es fiat por defecto: cotizas en USD, EUR o tu moneda y Payzum convierte.
Solo necesitas dos campos
Recibes un payment_id (con prefijo pzi_) y una
invoice_url. Cuando pay_currency es "all" no hay
todavía pay_address ni pay_amount a propósito: el comprador elige
su token en el checkout y la dirección se deriva en ese momento.
Guarda el payment_id junto a tu pedido. Es el identificador con el que casarás
el webhook después.
Redirige, o quédate en tu página
La versión más simple es una línea: manda al comprador a invoice_url. Aterriza
en el checkout alojado con el importe, la dirección de depósito, un QR, una cuenta atrás y
el estado en vivo, y vuelve a tu success_url.
Elige la superficie que encaje con tu carrito
Las tres renderizan el mismo checkout alojado. Lo que cambia es dónde aparece y quién controla el ciclo de vida.
Nada que incrustar
Manda al comprador a invoice_url. Funciona desde cualquier stack, carrito o
lenguaje: si puedes hacer una petición HTTP y una redirección, ya está.
No salen de tu página
Una capa a pantalla completa sobre tu checkout. Se cierra sola poco después de un estado
terminal y te entrega onSuccess, onCancel, onExpired y
onPartial.
Incrustado en tu maqueta
Monta el checkout dentro de un contenedor que tú aportas: sin capa, sin autocierre y con el ciclo de vida en tus manos. Lo natural para un checkout de una sola página.
El widget, completo
Una etiqueta de script y una llamada. Cárgalo con async y el objeto global
Payzum te da open() para el modal, openInline() para el
incrustado y openLink() para crear una factura nueva desde un payment link.
El checkout, dentro de tu propia página
Importe, referencia del pedido, cuenta atrás y selector de token se renderizan dentro de tu
contenedor. Tu CSP necesita el host de Payzum en script-src,
frame-src y connect-src — esa es toda la nota de infraestructura.
- Estados que retransmite: pending, partial, paid, overpaid, expired, cancelled
- Hay un host de widget de staging para sandbox
-
rescan()detecta los links añadidos al DOM más tarde
Entrega con el webhook, no con el callback
El onSuccess del widget se dispara cuando la página de checkout envía un mensaje de
estado a la tuya. Es perfecto para llevar al comprador a una pantalla de gracias.
No es lo que debe liberar una licencia o marcar un pedido como pagado: un
callback de navegador se puede perder, repetir o falsear.
El webhook IPN firmado que llega a tu ipn_callback_url es la
fuente de verdad. También hay un endpoint de estado sin autenticación —
GET /v1/invoices/{payment_id}/status, con límite por IP — cuando hacer polling te
resulte más sencillo que recibir.
¿Reintentas una creación? Manda una cabecera Idempotency-Key y la petición repetida devuelve la factura original en vez de cobrarle dos veces a tu comprador.
¿Quieres que miremos tu stack antes de que construyas?
Cuéntanos sobre qué corre tu checkout y te trazamos el camino más corto: redirect alojado, widget, o esperar al plugin del carrito que ya está en revisión.
Sin compromiso · Si con el redirect te basta, te lo decimos
29 integraciones, y subiendo
Veintinueve integraciones de plataforma están escritas y corriendo contra la misma API — ocho se instalan directo desde los registries de paquetes y el resto sigue avanzando por las revisiones de los marketplaces, pero ya son públicas en GitHub. Cada plugin propio, cada SDK y el contrato OpenAPI del que se generan viven en un solo lugar: github.com/payzum-dev. Aquí no hay ningún binario cerrado en el que tengas que confiar — lee el código antes de instalarlo.
Disponibles ya
| Plataforma | Instalación | Repositorio |
|---|---|---|
| Sylius 2.x | composer require payzum/sylius-payzum-pluginSobre el flujo PaymentRequest |
sylius-payzum-plugin |
| Vendure | npm i @payzum/vendure-plugin-payzum |
vendure-plugin-payzum |
| Saleor | App de pago sobre la Transactions API — despliégala desde el repo | saleor-app-payment-payzum |
| pretix | pip install pretix-payzumEntradas y eventos |
pretix-payzum |
| Django (django-payments) | pip install django-payments-payzum |
django-payments-payzum |
| Frappe / ERPNext | Instala la app desde el repo con bench get-app |
frappe-payzum |
| Akaunting | App de pagos — instálala desde el repo | akaunting-payzum |
| Omnipay (cualquier carrito PHP encima) | composer require payzum/omnipay-payzum |
omnipay-payzum |
Construidos y en despliegue
Hay veintiuna integraciones más ya escritas y probadas contra una instancia real de cada plataforma, esperando turno en las colas de revisión de los marketplaces — WordPress.org, PrestaShop Addons y las tiendas de Magento y Shopify tienen cada una su propio ciclo. El código ya es público. Cada nombre de abajo enlaza a su repositorio: clónalo e instálalo desde el código fuente hoy mismo, o pídenoslo y te mandamos el paquete y hacemos la instalación contigo.
Carritos de e-commerce
- WooCommerceWordPress
- OpenCart3.x
- PrestaShop1.7 / 8
- Magento 22.4
- Shopware 6
- Zen Cart
- Ecwidapp alojada
- Medusav2
- nopCommerce4.70
Plataformas hosted
- Shopifyapp self-hosted
- Wixapp self-hosted
- BigCommerceapp self-hosted
Ecosistema WordPress
- Easy Digital Downloads
- GiveWPdonaciones
- Paid Memberships Promembresías
- Fluent Formspagos en formularios
- Tutor LMScheckout de cursos
Facturación y hosting
¿Quieres uno de estos antes de que llegue al marketplace?
Dinos tu plataforma y te enviamos el plugin y hacemos la instalación contigo. Sin esperar a ninguna cola de revisión.
SDKs oficiales
Si prefieres no escribir a mano la llamada HTTP y la verificación de la firma del webhook, coge un SDK. Se generan contra un mismo contrato, así que no se desincronizan entre ellos.
| Lenguaje | Instalación | Repositorio |
|---|---|---|
| Python | pip install payzum | payzum-python |
| Node.js / TypeScript | npm i payzum | payzum-node |
| PHP | composer require payzum/payzum-php | payzum-php |
| Rust | cargo add payzum | payzum-rust |
| Contrato OpenAPI | La especificación con la que se construyen los SDKs, más vectores de prueba de firma de webhook | payzum-openapi |
¿No está tu plataforma? No estás bloqueado. Cualquier carrito que te deje llamar a un endpoint HTTP y redirigir al comprador puede cobrar en cripto hoy con el checkout alojado — los plugins solo te ahorran las últimas líneas. Dinos cuál necesitas y entra en la lista; así empezaron casi todos.
Deja que tu asistente de IA escriba la integración
Toda la referencia de Payzum está publicada en un archivo legible por máquina. Pega el enlace en Claude, ChatGPT o Cursor y el asistente tiene la API, los webhooks, los SDKs, los pagos masivos y la exportación contable — suficiente para construir la integración contra tu propio código.
Es la misma referencia con la que se construye nuestra propia documentación, así que un agente que trabaje con ella no se inventará endpoints que no existen.
Las objeciones que más nos hacen
«No quiero mantener una integración cripto.»
En tu código no hay nada específico de ninguna cadena. Envías un importe y recibes una URL; añadir una red nueva más adelante es un ajuste de nuestro lado, no un despliegue del tuyo.
«Mi carrito aún no tiene plugin.»
El checkout alojado necesita una llamada HTTP y una redirección: eso está al alcance de cualquier carrito que merezca la pena. Los plugins son una comodidad, no un requisito.
«¿Y los reembolsos y las disputas?»
Los pagos on-chain son finales, así que no hay contracargos que defender. Un reembolso es una transferencia que decides hacer desde tu propia wallet, en tus términos.
«¿Dónde acaba el dinero?»
En direcciones que tú controlas. Payzum es no-custodial en los pagos: la liquidación y el pago son el mismo evento, así que no hay saldo con nosotros ni calendario de payouts que esperar.
Integración: preguntas frecuentes
¿Cuánto se tarda en integrar Payzum?
Una llamada desde tu servidor y una línea en el front. Haces POST a /v1/payment,
sacas invoice_url de la respuesta y o bien rediriges al comprador o montas el
widget. Para el flujo de redirect no hay SDK que instalar ni infraestructura de wallets que
levantar, porque los pagos liquidan directo a direcciones que tú controlas.
¿Cuál es la diferencia entre redirect, modal e inline?
El redirect manda al comprador a la página de checkout alojada: no hay nada que incrustar. El modal lo mantiene en tu página y abre el checkout en una capa a pantalla completa que se cierra sola tras un estado terminal. El inline monta el mismo checkout dentro de un contenedor que tú aportas, sin capa y con el ciclo de vida en tus manos. Los tres renderizan el mismo checkout alojado.
¿Tengo que elegir yo la criptomoneda por el comprador?
No. Envía pay_currency como "all" y el checkout muestra un selector
de moneda con búsqueda, agrupado por cadena y limitado a los tokens que permitas en Ajustes.
Si prefieres fijarla, pasa una moneda concreta — y una network cuando el símbolo
exista en más de una cadena.
¿Cómo sé que un pago se completó de verdad?
Entrega el producto con el webhook IPN firmado que llega a tu ipn_callback_url.
Los callbacks del widget como onSuccess son pistas de interfaz que se disparan
cuando el checkout envía un estado a la página padre: sirven para mover al comprador, no para
liberar mercancía. También hay un endpoint de estado sin autenticación para hacer polling.
¿Hay plugin para mi carrito?
Es muy probable. Hay veintinueve integraciones construidas: WooCommerce, PrestaShop, Magento 2, OpenCart, Zen Cart, Shopware 6, Shopify, Wix, BigCommerce, Ecwid, Medusa, nopCommerce, Easy Digital Downloads, GiveWP, Paid Memberships Pro, Fluent Forms, Tutor LMS, WHMCS, Blesta, HostBill y ClientExec, más las ocho que ya se instalan desde los registries de paquetes — Sylius, Vendure, Saleor, pretix, Django, Frappe/ERPNext, Akaunting y Omnipay. Todas ellas, junto con los SDKs de Python, Node, PHP y Rust, son open source en github.com/payzum-dev: instálalas desde el código fuente hoy mismo y los listados en los marketplaces van saliendo a medida que cada revisión se aprueba. Y cualquier carrito que te deje llamar a una API puede usar el checkout alojado hoy mismo.
¿Puede un agente de IA construirme la integración?
Sí. Pega https://merchant.payzum.com/llms.txt en Claude, ChatGPT o Cursor y el
asistente recibe la referencia completa legible por máquina — API, webhooks, SDKs, pagos
masivos y exportación contable — para escribir la integración contra tu propio stack.
¿Puedo probar antes de cobrar dinero real?
Sí. El panel trae un playground de integración donde construyes la petición, inspeccionas la respuesta real y pruebas el pago resultante en las tres superficies. También hay un host de widget de staging para trabajar en sandbox.
Empieza por el playground
Construye una petición real, mira la respuesta real y prueba el pago en las tres superficies antes de tocar tu código. Y si prefieres una segunda opinión, miramos tu checkout contigo encantados.
No-custodial · Solo cripto · Los fondos liquidan a wallets que tú controlas