Pagamentos em cripto para 3x-ui
Um pequeno serviço auto-hospedado que permite ao seu painel 3x-ui receber pagamentos em cripto pela SnapEX Pay. Seu bot do Telegram ou site pede a ele um link de pagamento, o cliente paga em USDT na página da SnapEX Pay e, quando a fatura é paga, o serviço adiciona um cliente ao seu inbound, ou renova o existente, e devolve o link da assinatura. O 3x-ui não tem sistema de faturamento próprio, então este serviço é a camada de pagamento entre a sua loja e o painel.
Grátis. Versão 1.1.0.
O que faz
- Cada pedido tem a sua própria fatura da SnapEX Pay e o seu
pay_url. Os clientes pagam em USDT nas redes TRC20, ERC20 ou BEP20; outras moedas podem aparecer na página de pagamento quando a SnapEX Pay puder oferecê-las. - Um nome de usuário novo vira um novo cliente em
XUI_INBOUND_ID. Um existente é renovado: o vencimento é estendido (ou contado a partir de agora, se já tiver vencido; um cliente sem vencimento continua ilimitado), o cliente é reativado e o tráfego é zerado nos planos com cota. O UUID e osubIdnão mudam, então a configuração do cliente continua funcionando. - Funciona com o 3x-ui 2.x e 3.x: usa a nova API
/panel/api/clientsquando o painel a tem e, se não, a API mais antigainbounds/addClient. - Webhooks seguros: assinaturas HMAC-SHA256 com janela de 5 minutos, o status da fatura é sempre relido na API da SnapEX Pay e cada fatura é provisionada uma única vez.
- Planos (dias, preço em USD, cota de tráfego) em uma única variável de ambiente. Um só contêiner: FastAPI e SQLite.
Instalação
- No painel do comerciante da SnapEX Pay, crie uma chave de API com os escopos
invoices.readeinvoices.write. - Baixe e descompacte o arquivo e, na pasta dele, execute
cp .env.example .enve preenchaSNAPEX_API_KEY,API_TOKEN,XUI_URL(com o caminho base da web),XUI_USERNAMEeXUI_PASSWORD,XUI_INBOUND_IDeXUI_SUB_URL. - Inicie o serviço:
docker compose up -de depois verifique comcurl http://localhost:8080/health. - Coloque o serviço atrás de HTTPS (nginx, Caddy, Traefik). No painel → Desenvolvedores, defina a URL do webhook como
https://<your service>/webhook, coloque a chave secreta de assinaturawhsec_…(exibida uma única vez, ao salvar a URL pela primeira vez) emSNAPEX_WEBHOOK_SECRETe executedocker compose up -dde novo. - No seu bot ou backend, chame
POST /v1/checkoutcomAuthorization: Bearer <API_TOKEN>, enviepay_urlao cliente e consulteGET /v1/orders/{invoice_id}para obter o link da assinatura.
Configurações
| SNAPEX_API_KEY, SNAPEX_WEBHOOK_SECRET | Chave de API do comerciante (invoices.read, invoices.write) e a chave secreta de assinatura do webhook (whsec_…). |
|---|---|
| SNAPEX_ENVIRONMENT, SNAPEX_FEE_ON | Faturas live ou test; quem paga a taxa de serviço — merchant ou customer. |
| API_TOKEN | Token Bearer para /v1/checkout e /v1/orders. |
| XUI_URL | URL do painel incluindo o caminho base da web, por exemplo https://xui.example.com:2053/secretpath. |
| XUI_API_TOKEN | Só no 3x-ui 3.x: um token de API do painel, usado no lugar de usuário e senha (para painéis com login em dois fatores). |
| XUI_INBOUND_ID, XUI_SUB_URL | Inbound para novos clientes (VLESS, VMess, Trojan, Shadowsocks ou Hysteria) e o prefixo da assinatura. |
| PLANS | id:days:usd:traffic_bytes separados por vírgula; 0 bytes = ilimitado. |
| SNAPEX_PARTNER_ID | Opcional: o Partner ID do integrador que configurou o módulo (programa de indicações da SnapEX Pay). Deixe em branco se você mesmo fez a configuração. |
Perguntas
Quais versões do 3x-ui são compatíveis?
3x-ui 2.x e 3.x: tanto a nova API /panel/api/clients quanto a API mais antiga inbounds/addClient.
O que acontece quando um cliente renova?
Envie o mesmo nome de usuário de novo. O cliente mantém o UUID e o subId, o vencimento é estendido, o cliente é reativado e o tráfego é zerado nos planos com cota.
Meu painel tem login em dois fatores. Vai funcionar?
No 3x-ui 3.x, sim: defina XUI_API_TOKEN (um token de API do painel) no lugar de usuário e senha.
Um pagamento pode ser provisionado duas vezes?
Não. Cada fatura é provisionada uma única vez, mesmo que o webhook chegue duas vezes ou que duas cópias cheguem ao mesmo tempo.
Existe um bot do Telegram pronto?
Sim, um bot do Telegram da SnapEX Pay à parte, para Marzban, 3x-ui e Remnawave. Este serviço é indicado quando você já tem seu próprio bot ou site.
Outras integrações
Pronto para receber em cripto?
Crie uma conta de comerciante, gere uma chave de API e conecte o módulo. 1% por pagamento, sem mensalidade.