Como automatizar o recebimento do código SMS pela API
Na API do Flash SMS, o código é recebido por consulta: o seu sistema chama getStatus com o id da ativação a cada 5 a 10 segundos até receber STATUS_OK com o código ou STATUS_CANCEL. A documentação não descreve aviso automático do servidor, então a automação é um laço de consulta bem feito.
- Intervalo recomendado: de 5 a 10 segundos entre consultas.
- Pare ao receber STATUS_OK (código chegou) ou STATUS_CANCEL (acabou sem SMS).
- O número dura 20 minutos; um laço de 240 consultas de 5 segundos cobre esse tempo.
- Depois do código, finalize com setStatus status=6.
Os estados que getStatus devolve
- STATUS_WAIT_CODE: ainda esperando o SMS. Continue consultando.
- STATUS_OK:482913: o código chegou; o que vem depois dos dois-pontos é o código.
- STATUS_WAIT_RETRY:482913: você pediu outro SMS com status=3; o número depois dos dois-pontos é o código anterior, e o novo ainda não chegou.
- STATUS_CANCEL: a ativação acabou sem SMS e o valor já voltou para o seu saldo.
- NO_ACTIVATION: o id não existe na sua conta, normalmente id errado ou de outra chave.
Como montar o laço
Depois de getNumber, guarde o id e a hora da compra. Em seguida, repita: espere 5 segundos, chame getStatus, olhe o começo da resposta. Se começar com STATUS_OK, separe o código pelo caractere de dois-pontos, entregue ao usuário e chame setStatus com status=6. Se for STATUS_CANCEL, encerre e devolva o crédito ao seu cliente, se for uma revenda.
Consultar mais rápido do que a cada 5 segundos não faz o SMS chegar antes. Só aumenta o número de chamadas.
Rodar em segundo plano
Em vez de prender a requisição do usuário enquanto espera, coloque cada ativação aberta numa fila ou tabela e deixe um processo em segundo plano fazer as consultas. A tela do usuário só lê do seu banco de dados. Assim, se a pessoa fechar a página, o código continua sendo buscado e fica salvo.
Esse processo também deve ter um limite: passados os 20 minutos, a ativação já foi encerrada pelo Flash SMS. Uma última consulta confirma o STATUS_CANCEL e fecha o registro.
Quando o usuário precisa de outro código
Se o aplicativo pedir um novo código, chame setStatus status=3. A resposta ACCESS_RETRY_GET confirma; volte ao laço até aparecer um STATUS_OK diferente do anterior. Isso só funciona depois do primeiro código e dentro dos 20 minutos. Se vier BAD_STATUS, a operadora não liberou.
Dúvidas
Perguntas frequentes
Existe webhook para receber o código?
A documentação da API descreve apenas a consulta com getStatus. Monte a automação com consultas a cada 5 a 10 segundos.
Posso finalizar antes de o código chegar?
Não. status=6 sem SMS devolve BAD_STATUS. Para encerrar sem código, use status=8 a partir de 2 minutos.
Se eu esquecer de finalizar, perco algo?
Não perde dinheiro: o número expira ao fim dos 20 minutos. Finalizar só encerra a ativação antes e mantém os registros organizados.
Quantos números posso acompanhar ao mesmo tempo?
A documentação não fixa um número. Na prática, cada ativação aberta é uma consulta a mais por ciclo, então use um processo que percorra todas em vez de um laço por número.
API e integrações
Continue lendo
Erros comuns da API do Flash SMS e como resolver
Cada resposta de erro da documentação, com a causa e a correção.
API de SMS em Python: comprar número e ler o código
Um script curto com requests, do getNumber ao código na tela.
API de SMS em Node.js: exemplo com fetch
fetch nativo, URLSearchParams e um laço com await.
API de SMS em PHP: comprar número e receber o código
http_build_query, file_get_contents e um laço com sleep.
Saldo para revendedores: como funciona o saldo usado pela API
Um saldo só para painel e API, debitado por número comprado.
Número virtual para agências de marketing: como organizar as contas dos clientes
Verificação sem o chip da equipe, contas em nome do cliente e acesso documentado.
Receba seu primeiro código hoje
Cadastro em menos de um minuto, recarga por Pix, cartão ou cripto e o SMS no painel. Se não chegar, o valor volta.
Criar conta grátis