API de SMS em PHP: comprar número e receber o código
Em PHP, a API do Flash SMS funciona com funções nativas: http_build_query monta os parâmetros e file_get_contents faz a chamada. Muitos painéis de revenda já são em PHP e no padrão sms-activate, e nesse caso a integração é só trocar o endereço e a chave.
- Defina endereço e chave.
- Crie a função flash.
- Compre o número.
- Separe id e número.
- Espere e finalize.
Passo a passo
API de SMS em PHP: comprar número e receber o código
Defina endereço e chave
Guarde o endereço handler_api.php da documentação em $api e a chave em $key, de preferência lida com getenv('FLASH_KEY').
Crie a função flash
Ela recebe um array $params e retorna trim(file_get_contents($api . '?' . http_build_query(['api_key' => $key] + $params))).
Compre o número
Chame flash(['action' => 'getNumber', 'service' => 'wa', 'country' => 73]). Se strpos($r, 'ACCESS_NUMBER') !== 0, pare com a mensagem de erro.
Separe id e número
Use [, $id, $numero] = explode(':', $r) para obter o id da ativação e o número.
Espere e finalize
Num for de até 240 voltas, sleep(5) e getStatus. Em STATUS_OK, pegue o código com explode(':', $st)[1] e chame setStatus com status 6.
Laço com sleep só em linha de comando
O exemplo com sleep funciona bem num script rodado no terminal ou num cron. Numa página web, o PHP ficaria preso por até 20 minutos e o servidor derrubaria a requisição antes. Em sites, separe as etapas: a página de compra chama getNumber e grava a ativação no banco; um cron a cada minuto, ou um worker, consulta getStatus das ativações abertas; a tela do cliente lê o banco por AJAX a cada poucos segundos.
cURL em vez de file_get_contents
Algumas hospedagens desativam allow_url_fopen, e aí file_get_contents não acessa URLs externas. Nesse caso, use cURL com CURLOPT_RETURNTRANSFER ativado e um CURLOPT_TIMEOUT definido. A lógica de resposta não muda: a API devolve o mesmo texto, como ACCESS_NUMBER ou STATUS_OK.
Painéis prontos no padrão sms-activate
- Procure no código onde fica o endereço handler_api.php do fornecedor antigo e troque pelo do Flash SMS.
- Troque a chave pela gerada em Minha conta, API de revenda.
- Confira se o painel usa country=73 para o Brasil e os códigos de serviço como wa e tg.
- Teste com getBalance e uma compra pequena antes de liberar para clientes.
Cuidados de segurança
Não deixe a chave num arquivo dentro da pasta pública do site. Prefira variáveis de ambiente ou um arquivo de configuração fora do diretório público. Se suspeitar de vazamento, gere uma nova chave: a anterior para de funcionar na hora.
Dúvidas
Perguntas frequentes
A API funciona com PHP 7?
Sim. O exemplo da documentação usa sintaxe de desestruturação de array que existe desde o PHP 7.1.
Como leio respostas em JSON?
Em getPrices e getNumberV2, use json_decode($r, true) para ter um array associativo.
Onde está o exemplo completo?
Na página da API de revenda, na aba PHP, no arquivo exemplo.php.
API e integrações
Continue lendo
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.
Google Play Console: como verificar o telefone da conta de desenvolvedor
O número de contato do desenvolvedor é confirmado por código e precisa continuar seu.
API de revenda de números virtuais: como começar a revender
Padrão sms-activate, preços em reais e saldo por Pix.
API de SMS para desenvolvedores: receba códigos por HTTP
Compre números e leia o SMS com chamadas HTTP simples.
Como integrar a API de números virtuais no seu sistema
O fluxo completo, do pedido do número ao código na tela.
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