
Xboard y V2Board son paneles populares para vender suscripciones de VPN y proxy. De serie, el cliente paga con tarjeta o a través de una pasarela que alojas tú. Esta guía muestra cómo añadir cripto: el cliente paga en USDT en TRC20, ERC20 o BEP20 o con otra moneda, y el panel activa el pedido solo. No necesitas monedero, nodo ni pasarela propia: el dinero llega a tu saldo de comercio en SnapEX Pay.
Cómo va un pago
cliente → checkout del panel → página SnapEX Pay
SnapEX Pay → webhook firmado → panel
plugin → factura desde la API → ¿paid?
panel → pedido activado
- En el checkout, el plugin crea una factura de SnapEX Pay para el pedido (el
trade_nodel panel es elexternal_idde la factura) y envía al cliente a la página de pago. - El cliente elige una moneda y paga. Cuando la factura está pagada, SnapEX Pay envía un webhook firmado al panel.
- El plugin comprueba la firma, pide la factura a la API de SnapEX Pay y marca el pedido como pagado solo si allí el estado es
paid.
Qué necesitas
- Xboard con sistema de plugins (PHP 8.2+), o V2Board / un Xboard antiguo que carga pasarelas desde
app/Payments(PHP 7.3+). - La extensión cURL de PHP.
- El panel accesible desde internet por HTTPS: SnapEX Pay solo entrega webhooks a direcciones HTTPS públicas.
- Una cuenta de comercio en SnapEX Pay: regístrate en pay.snapex.pro.
Paso 1. Instala el plugin
Descarga el archivo snapexpay-xboard-1.2.0.zip (MIT, gratis).
Xboard. Admin → Plugins → sube el ZIP → Install → Enable «SnapEX Pay». O descomprime el archivo en la carpeta del panel:
cd /path/to/Xboard
curl -fsSLO https://pay.snapex.pro/downloads/xboard/snapexpay-xboard-1.2.0.zip
unzip snapexpay-xboard-1.2.0.zip
mv snapexpay-xboard-1.2.0 plugins/Snapexpay
La carpeta debe llamarse exactamente plugins/Snapexpay: en Linux importan las mayúsculas. Luego Plugins → Install → Enable.
V2Board y Xboard antiguo. Copia un solo archivo del ZIP al panel:
unzip -p snapexpay-xboard-1.2.0.zip \
snapexpay-xboard-1.2.0/app/Payments/SnapexPay.php \
> /path/to/v2board/app/Payments/SnapexPay.php
Si usas OPcache u Octane, reinicia PHP-FPM u Octane. Comprueba que la URL del sitio (app_url) esté puesta en los ajustes de V2Board: sin ella el plugin no puede devolver al cliente a la página del pedido después de pagar.
Paso 2. Obtén una clave API
En el panel de comercio de SnapEX Pay abre Developers y emite una clave API. Se muestra una sola vez: cópiala enseguida. Una clave emitida en el panel recibe todos los permisos de la Merchant API, incluidos invoices.read e invoices.write, que el plugin necesita. Reemitir la clave revoca la anterior al instante, así que actualízala en el panel al mismo tiempo.
Paso 3. Añade el método de pago
Admin del panel → Payment configuration → Add payment method → pasarela SnapexPay. Los campos:
- API key: la clave del paso 2.
- Webhook secret: se rellena en el paso 4.
- Network fee paid by:
merchant(por defecto), el cliente paga exactamente el total del pedido;customer, la comisión de red se suma encima. Más: Quién paga la comisión de una factura cripto. - Payment window, minutes: cuántos minutos se puede pagar la factura. Xboard: 60 por defecto, máximo 120; V2Board: 20 por defecto, máximo 30. El tope queda por debajo del plazo del propio panel para pedidos sin pagar, así el cliente no puede pagar un pedido que el panel ya canceló.
- USD per 1 shop currency:
1si los precios están en USD. Los paneles guardan los totales en céntimos y el plugin envíatotal / 100 × usd_rate. Para una tienda en CNY es aproximadamente0.14. La tasa es fija: actualízala tú cuando cambie el tipo de cambio. - Environment:
liveotest(ver paso 5). - Partner ID: déjalo vacío si lo configuras tú; aquí pone su ID el integrador que te conectó.
- API URL: deja el valor por defecto
https://snapex.pro/api/v1/merchant.
La factura mínima es de 0.50 USD: un pedido menor, tras la conversión, da error en el checkout.
Paso 4. Configura el webhook
Cada método de pago del panel tiene su propia URL de notificación:
https://your-panel.example/api/v1/guest/payment/notify/SnapexPay/{uuid}
Xboard muestra la dirección completa en la lista de métodos de pago. En el panel de comercio, en la página Developers, pégala como URL del webhook y guarda. El secreto de firma whsec_… se muestra una sola vez, justo después de guardar por primera vez: cópialo en Webhook secret del método de pago.
El panel de comercio tiene una URL de webhook por cuenta y a ella llegan todos los eventos. El plugin activa un pedido solo con una factura pagada; ante otros eventos el panel responde con error (422 en Xboard, 500 en V2Board). En el registro de entregas aparece como entrega fallida: es lo esperado.
Cómo comprueba el plugin una notificación:
- la cabecera
Webhook-Signature: HMAC-SHA256 de{Webhook-Timestamp}.{cuerpo crudo de la petición}con tu secreto; Webhook-Timestampdentro de 5 minutos respecto al reloj del servidor: mantén NTP activo;- la propia factura, leída de nuevo en la API de SnapEX Pay con tu clave: el pedido se paga solo si allí el estado es
paid.
Más sobre firmas y reintentos: Webhooks de pagos cripto.
Paso 5. Un pedido de prueba sin dinero real
- Pon Environment en
testy guarda. - Crea un pedido en el panel y ve al pago.
- La página de SnapEX Pay muestra la etiqueta Test. Elige cualquier moneda y red: la página muestra una dirección de prueba y unos 10 segundos después el pago se confirma solo. No hay que enviar nada.
- El pedido debería pasar a pagado en segundos. Si no, revisa el registro de entregas en la página Developers y el log del panel (
storage/logs). - Vuelve a poner Environment en
live.
Mientras el método está en test, cualquier pedido pagado con él se activa sin dinero, así que haz la prueba rápido. Con el método otra vez en live, el plugin rechaza las facturas de prueba y un pago de prueba no puede activar un pedido real. Más: Cómo probar pagos cripto sin dinero real.
Qué ve el cliente
La página de SnapEX Pay con la elección de moneda: USDT en TRC20, ERC20 y BEP20 y otras monedas (más de 50 en total) cuando SnapEX Pay las ofrece para el importe de la factura. Si el cliente vuelve a pulsar «Pagar», se abre la misma factura mientras siga vigente; si ya venció, se crea una nueva para el mismo pedido (external_id {trade_no}-1, -2, etc.).
Si el cliente envía menos del total, el pedido no se activa: lo recibido llega a tu saldo de SnapEX Pay y el resto lo resuelves con el cliente. Cómo funcionan los pagos incompletos: El cliente envió menos que la factura.
Si algo no funciona
- SnapexPay no aparece en la lista de pasarelas (Xboard). La carpeta debe ser exactamente
plugins/Snapexpayy el plugin debe estar instalado y activado. - «A valid merchant API key is required» o «This source IP is not allowed» en el checkout. La clave es incorrecta o está revocada, o su lista de IP permitidas no incluye la IP de salida del servidor del panel.
- «Amount is below the … USD minimum». Tras la conversión el pedido queda por debajo de 0.50 USD: revisa USD per 1 shop currency.
- El cliente pagó y el pedido sigue sin pagar. Mira el registro de entregas del panel de comercio. Lo habitual: el webhook secret no coincide, el reloj del servidor va desfasado más de 5 minutos, la URL apunta al UUID de otro método, un proxy inverso modifica el cuerpo de la petición o el panel no llega a la API de SnapEX Pay. Una entrega fallida se puede repetir desde el registro.
Cuánto cuesta
1% por pago, sin cuota de alta ni cuota mensual. El plugin es gratis.
Página del plugin: Xboard / V2Board. Panorama para servicios VPN: Pagos cripto para servicios VPN. Registro: pay.snapex.pro.