Pagos cripto para 3x-ui
Un pequeño servicio autoalojado que permite a tu panel 3x-ui aceptar pagos cripto a través de SnapEX Pay. Tu bot de Telegram o sitio web le pide un enlace de pago, el cliente paga en USDT en la página de SnapEX Pay, y cuando la factura está pagada el servicio añade un cliente a tu inbound, o renueva el existente, y devuelve el enlace de suscripción. 3x-ui no tiene facturación propia, así que esta es la capa de pago entre tu tienda y el panel.
Gratis. Versión 1.1.0.
Qué hace
- Cada pedido recibe su propia factura de SnapEX Pay y su
pay_url. Los clientes pagan en USDT en TRC20, ERC20 o BEP20; otras monedas pueden aparecer en la página de pago cuando SnapEX Pay puede ofrecerlas. - Un nombre de usuario nuevo se convierte en un cliente nuevo en
XUI_INBOUND_ID. Uno existente se renueva: el vencimiento se aplaza (o se cuenta desde ahora si ya había vencido; un cliente sin vencimiento sigue ilimitado), el cliente se reactiva y el tráfico se reinicia en los planes con cuota. El UUID y elsubIdno cambian, así que la configuración del cliente sigue funcionando. - Funciona con 3x-ui 2.x y 3.x: usa la nueva API
/panel/api/clientssi el panel la tiene y, si no, la antiguainbounds/addClient. - Webhooks seguros: firmas HMAC-SHA256 con una ventana de 5 minutos, el estado de la factura siempre se vuelve a leer desde la API de SnapEX Pay, y cada factura se da de alta solo una vez.
- Planes (días, precio en USD, cuota de tráfico) en una sola variable de entorno. Un solo contenedor: FastAPI y SQLite.
Instalación
- En el panel del comercio de SnapEX Pay crea una clave API con los permisos
invoices.readeinvoices.write. - Descarga y descomprime el archivo, y en su carpeta ejecuta
cp .env.example .envy rellenaSNAPEX_API_KEY,API_TOKEN,XUI_URL(con la ruta base web),XUI_USERNAMEyXUI_PASSWORD,XUI_INBOUND_IDyXUI_SUB_URL. - Arráncalo:
docker compose up -d, y luego compruebacurl http://localhost:8080/health. - Pon el servicio detrás de HTTPS (nginx, Caddy, Traefik). En el panel → Developers configura la URL del webhook como
https://<your service>/webhook, pon el secretowhsec_…(se muestra una sola vez, al guardar la URL por primera vez) enSNAPEX_WEBHOOK_SECRETy vuelve a ejecutardocker compose up -d. - Desde tu bot o backend llama a
POST /v1/checkoutconAuthorization: Bearer <API_TOKEN>, envíapay_urlal cliente y consultaGET /v1/orders/{invoice_id}para obtener el enlace de suscripción.
Ajustes
| SNAPEX_API_KEY, SNAPEX_WEBHOOK_SECRET | Clave API de comercio (invoices.read, invoices.write) y el secreto de firma del webhook (whsec_…). |
|---|---|
| SNAPEX_ENVIRONMENT, SNAPEX_FEE_ON | Facturas live o test; quién paga la comisión del servicio: merchant o customer. |
| API_TOKEN | Token Bearer para /v1/checkout y /v1/orders. |
| XUI_URL | URL del panel incluida la ruta base web, por ejemplo https://xui.example.com:2053/secretpath. |
| XUI_API_TOKEN | Solo 3x-ui 3.x: un token API del panel que se usa en lugar de usuario y contraseña (para paneles con inicio de sesión en dos pasos). |
| XUI_INBOUND_ID, XUI_SUB_URL | Inbound para los clientes nuevos (VLESS, VMess, Trojan, Shadowsocks o Hysteria) y el prefijo de suscripción. |
| PLANS | id:days:usd:traffic_bytes separados por comas, 0 bytes = ilimitado. |
| SNAPEX_PARTNER_ID | Opcional: el Partner ID del integrador que configuró el módulo (programa de referidos de SnapEX Pay). Déjalo vacío si lo instalas tú mismo. |
Preguntas
¿Qué versiones de 3x-ui son compatibles?
3x-ui 2.x y 3.x: tanto la nueva API /panel/api/clients como la antigua API inbounds/addClient.
¿Qué pasa cuando un cliente renueva?
Envía de nuevo el mismo nombre de usuario. El cliente conserva su UUID y su subId, el vencimiento se aplaza, el cliente se reactiva y el tráfico se reinicia en los planes con cuota.
Mi panel tiene inicio de sesión en dos pasos. ¿Funcionará?
En 3x-ui 3.x, sí: define XUI_API_TOKEN (un token API del panel) en lugar de usuario y contraseña.
¿Se puede dar de alta un mismo pago dos veces?
No. Cada factura se da de alta solo una vez, aunque el webhook llegue dos veces o lleguen dos copias al mismo tiempo.
¿Hay un bot de Telegram listo?
Sí, un bot de Telegram de SnapEX Pay aparte para Marzban, 3x-ui y Remnawave. Este servicio encaja cuando ya tienes tu propio bot o sitio.
Otras integraciones
¿Listo para aceptar cripto?
Crea una cuenta de comercio, obtén una clave API y conecta el módulo. 1% por pago, sin cuota mensual.