Guia · API e integrações

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.

Atualizado em 04/11/2026 · Leitura de 3 min

Em resumo
  • 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

  1. 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').

  2. Crie a função flash

    Ela recebe um array $params e retorna trim(file_get_contents($api . '?' . http_build_query(['api_key' => $key] + $params))).

  3. Compre o número

    Chame flash(['action' => 'getNumber', 'service' => 'wa', 'country' => 73]). Se strpos($r, 'ACCESS_NUMBER') !== 0, pare com a mensagem de erro.

  4. Separe id e número

    Use [, $id, $numero] = explode(':', $r) para obter o id da ativação e o número.

  5. 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.

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