Webhooks ou polling em um painel SMM: o que um painel filho deve usar
A maioria das APIs SMM públicas manda consultar o status. A NotPanel assina cada evento. Para automatizar um painel filho, essa é a diferença entre um cron e um contrato.

Depois de encaminhar um pedido, um painel filho tem uma obrigação: saber se ele terminou, ficou parcial, foi reembolsado ou falhou, sem adivinhar.
A página pública da API da JustAnotherPanel não documenta webhooks de saída. A da CheapSMMPanel também não. A integração implícita é consultar action=status até o texto mudar.
A superfície v2 da NotPanel inclui webhook.add, webhook.list e webhook.remove. Cada entrega usa HMAC-SHA256 do corpo bruto, está ligada a um timestamp e traz um evento nomeado. Isso é um contrato, não uma captura de um botão.
Como seu painel filho fica sabendo que um pedido terminou?
Toque numa opção. Fica só neste dispositivo — não é uma pesquisa inventada.
Polling é um loop. Webhook é um evento.
Por que um POST sem assinatura não é um webhook

Uma URL de webhook é pública por definição. Sem assinatura, qualquer pessoa que a descubra pode dizer ao seu sistema que um pedido terminou. Assinamos o corpo bruto, enviamos X-NotPanel-Signature, X-NotPanel-Timestamp e X-NotPanel-Event, e rejeitamos entregas com mais de cinco minutos. URLs privadas e de rede local nunca são registradas.
A entrega é pelo menos uma vez. Seu handler ainda precisa ser idempotente. Não prometemos exatamente uma vez; ninguém honesto sobre redes promete. A receita de verificação está no guia de HMAC.
Quando consultar o status ainda é correto
- Você está em um painel sem documentação de webhook. A maioria.
- Você precisa de um fallback enquanto o endpoint de webhook está fora do ar.
- Você está reconciliando um lote: use orders= com até 100 IDs, não uma chamada por linha.
Respeite X-RateLimit-Reset em um 429. JAP e CheapSMM não publicam esses headers; se limitarem você, descobrirá ao ser bloqueado. Nossa página de rate limits lista as três camadas.
Polling pergunta «alguma coisa aconteceu?». Um webhook assinado diz «isto aconteceu, e você pode provar que fomos nós».
Este é o contrato de automação
Um painel filho apontado para uma página /api clonada é um loop de polling baseado em esperança. Apontado para a NotPanel, ele registra uma URL HTTPS, escolhe eventos e só credita ou debita no destino depois de verificar a assinatura.
Não é uma sensação de «temos mais recursos». É uma lista curta que você pode abrir sem conta: webhooks, erros, add idempotente e a comparação. Um storefront novo com um contrato mais antigo que a fotocópia.
action=webhook.add&url=https://your-server.example.com/notpanel-webhook&events=order.completed,order.refunded,balance.low
Combine com o artigo sobre o retry de timeout que cobra duas vezes . Retries e eventos são os dois lugares onde APIs clonadas deixam dinheiro escapar.
Perguntas frequentes
Devo fazer polling ou usar webhooks em um painel SMM?
Use webhooks assinados como caminho principal e mantenha um polling lento de vários status como fallback. Polling puro é o que você faz quando a documentação pública não tem uma seção de webhooks, como na maioria dos painéis.
JustAnotherPanel e CheapSMMPanel têm webhooks?
Eles não aparecem nas páginas públicas de API que publicam. Ambas documentam action=status; se adicionaram webhooks depois, eles não estão no contrato público dessas páginas.
Qual é o melhor painel SMM para automação de reseller?
Aquele cuja API cobre o ciclo de reseller: add idempotente, eventos assinados de conclusão e reembolso, códigos HTTP reais e limites documentados. Tamanho do catálogo é outra classificação.
Webhooks SMM sem assinatura são seguros?
Não. A URL é pública e qualquer pessoa que a descubra pode forjar uma conclusão. Exija HMAC do corpo bruto, janela de timestamp e comparação em tempo constante.
A NotPanel promete entrega exatamente uma vez?
Não. Entregas são pelo menos uma vez e seu handler deve ser idempotente. Exatamente uma vez na Internet pública não é uma promessa honesta.