api.painelsms.tech • UPTIME 99.98% • REST API v1/v2/v3

API de SMS Virtual & Ativações Ultra Rápida

Integre compra automatizada de números temporários, verificação SMS e Voice OTP em seu sistema. Três motores independentes com alta taxa de entrega e estorno 100% automático.

< 1.2s Latência Média
+180 Países Globais
+2.000 Serviços Online
100% Estorno Automático
POST /v1/api/buy (API REST Moderna)
# Compra de número no padrão REST moderno curl -X POST https://api.painelsms.tech/v1/api/buy \ -H "Content-Type: application/json" \ -d '{ "token": "SUA_CHAVE_API", "service": "go", "version": "v2", "operator": "vivo" }' # Resposta instantânea na raiz do JSON: { "status": "success", "aid": "24722162", "number": "5519976210608", "price": 0.60, "saldo_restante": 150.15, "provider": "diamond" }

Duas Formas Oficiais de Integração

Escolha o padrão ideal para o seu ecossistema. Ambas as conexões operam com saldo unificado.

Multi-Protocolo Ativo
Forma 1 (Recomendada) JSON / REST

API REST Moderna (v1)

Respostas diretas na raiz do JSON, 4 variantes de motores (Gold, Diamond, Voice OTP e Operadoras) e suporte nativo a Long-Polling em tempo real (/wait) via push push instantâneo.

  • POST /v1/api/buy: Compra com fallback automático
  • POST /v1/api/wait: Long-Polling com latência < 5ms
  • POST /v1/api/cancel: Cancelamento seguro com estorno
Ver Endpoints da API REST
Forma 2 (Universal) handler_api.php

Protocolo Universal de Mercado

Compatibilidade plug-and-play estrita com softwares prontos, bots comerciais, extensões e ferramentas que utilizam o protocolo padrão de mercado (SMS-Activate / 5SIM / SMSHub).

  • action=getNumber: Alocação automática de número
  • action=getStatus: STATUS_WAIT_CODE / STATUS_OK
  • action=setStatus: Ciclos de status (1, 3, 6 e 8)
Ver Protocolo Universal
Endpoint Base https://api.painelsms.tech
Visitar painelsms.tech
Multi-Rotas de Alta Disponibilidade

Os Motores de Ativação do Painel SMS

Escolha a rota ideal para a sua aplicação via parâmetro version. Máxima flexibilidade de custo, estabilidade e formato de recebimento.

version: "v2"

Phantom Diamond

Motor SmsCode Premium

A rota mais estável e recomendada para serviços de alta exigência como WhatsApp, Telegram, bancos e aplicativos financeiros.

  • Números físicos e virtuais de alta qualidade
  • Suporte a reenvio de novo SMS (/resend)
  • Filtragem por Operadoras reais do Brasil
  • Webhook em tempo real e entrega imediata
Parâmetro na API: "version": "v2"
version: "v1"

Phantom GOLD

Motor Phantom GOLD Volume

O campeão de volume com o melhor custo-benefício do mercado. Ideal para criação de contas em massa e automações contínuas.

  • Menor preço por ativação da plataforma
  • 4 tiers de estoque (Platinum, Gold, Silver, Bronze)
  • Enorme disponibilidade global em +180 países
  • Estorno automático garantido se não receber SMS
Parâmetro na API: "version": "v1"
version: "v3"

Phantom Voice OTP

Motor Hero SMS Voice

Ativação por ligação de voz com encaminhamento e gravação de código. A solução definitiva para quando o SMS tradicional é bloqueado.

  • Recebimento do código OTP por chamada de voz
  • Transcrição e extração automática dos dígitos
  • Desbloqueia serviços onde SMS não chega
  • Alta taxa de aprovação em apps restritos
Parâmetro na API: "version": "v3"
version: "v4"

Phantom Operadoras

Filtragem por Operadora

Seleção granular de chips reais das principais operadoras nacionais (Vivo, TIM, Claro, Surf, Arqia, Links Field e Correios).

  • Escolha exata da operadora no momento da compra
  • Preços e estoque discriminados por operadora
  • Ideal para contornar bloqueios regionais ou por carrier
  • Estorno automático garantido se não receber SMS
Parâmetro na API: "version": "v4"
Phantom Operadoras Brasileiras
Precisa de uma operadora de telefonia específica no Brasil para passar nos filtros do seu app? Nosso motor Diamond permite selecionar diretamente o chip desejado:
Vivo S.A. Claro Americas TIM Brasil Surf Telecom Correios Celular Arqia Links Field
Ver na API

Autenticação

Todas as requisições autenticadas para https://api.painelsms.tech exigem o cabeçalho HTTP Authorization no padrão Bearer <TOKEN>.

Você pode gerar ou consultar seu token de API diretamente no menu do seu usuário no site oficial painelsms.tech.

Headers Obrigatórios
Authorization: Bearer SUA_CHAVE_API
Content-Type: application/json
Accept: application/json

Consultar Saldo da Conta

Retorna o saldo atual disponível para compra de números virtuais na moeda BRL (Reais).

GET /v1/user/balance Consulta de Saldo
Exemplo de Resposta (200 OK)
{
  "success": true,
  "user_id": 8322591222,
  "balance": 150.75,
  "currency": "BRL"
}
Categorias:
Nome do Serviço Código da API Categoria Ação
Nubank Cartão e Conta Digital Nu
aaa Bancos & Finanças
Mercado Pago Conta Digital e Pagamentos
abf Bancos & Finanças
PagBank PagSeguro e Maquininhas
abg Bancos & Finanças
C6 Bank Banco Digital C6
aff Bancos & Finanças
PicPay Carteira Digital PicPay
ev Bancos & Finanças
Banco Inter Conta Digital e Investimentos
bci Bancos & Finanças
Caixa Econômica Caixa Tem e FGTS
cx Bancos & Finanças
Bradesco Conta Bradesco e Cartões
brd Bancos & Finanças
Banco Santander Conta Santander Way
std Bancos & Finanças
Banco Itaú Itaú e Cartões Itaucard
itu Bancos & Finanças
Banco do Brasil App BB e Ourocard
bb Bancos & Finanças
Agibank Conta Corrente e Empréstimos
sa Bancos & Finanças
InfinitePay Maquininha e Pix PJ
anx Bancos & Finanças
RecargaPay Recargas e Boletos
xu Bancos & Finanças
BanQi Conta Digital Casas Bahia
vc Bancos & Finanças
Claro Pay Carteira Digital Claro
anv Bancos & Finanças
Will Bank Cartão de Crédito Amarelinho
wb Bancos & Finanças
Nomad Global Conta Internacional em Dólar
nmd Bancos & Finanças
Wise (TransferWise) Transferências Internacionais
acp Bancos & Finanças
PayPal Pagamentos Globais
ts Bancos & Finanças
Payoneer Recebimentos em Moeda Estrangeira
nc Bancos & Finanças
AstroPay Cartão Virtual Internacional
gr Bancos & Finanças
Binance Criptoativos e Exchange
akc Bancos & Finanças
WhatsApp Mensagens e Chamadas
wa Redes & Mensageiros
WhatsApp Business Conta Comercial WhatsApp
wb Redes & Mensageiros
Telegram Mensageiro em Nuvem
tg Redes & Mensageiros
Google / Gmail / YouTube Conta Google e Serviços
go Redes & Mensageiros
Instagram Fotos, Reels e Direct
ig Redes & Mensageiros
TikTok Vídeos Curtos e Lives
lf Redes & Mensageiros
Facebook Rede Social e Meta
fb Redes & Mensageiros
Twitter / X Rede Social X
tw Redes & Mensageiros
Discord Comunidades e Voz
ds Redes & Mensageiros
LinkedIn Rede Profissional
ms Redes & Mensageiros
Kwai Vídeos Curtos
kw Redes & Mensageiros
OpenAI (ChatGPT) Inteligência Artificial
dr Redes & Mensageiros
Microsoft / Outlook Hotmail, Windows e Teams
mm Redes & Mensageiros
Apple ID iCloud e Dispositivos Apple
wx Redes & Mensageiros
Tinder App de Encontros
oi Redes & Mensageiros
Badoo Relacionamentos
fd Redes & Mensageiros
iFood Delivery de Refeições e Mercado
if Delivery & Transporte
Uber / Uber Eats Corridas e Entregas
ub Delivery & Transporte
99 / 99App Corridas 99Pop e 99Pay
nn Delivery & Transporte
Rappi SuperApp de Entregas
qp Delivery & Transporte
Zé Delivery Bebidas em Casa
zd Delivery & Transporte
Mercado Livre Maior Marketplace do Brasil
me Compras & E-commerce
Shopee Compras Online e Cupons
ka Compras & E-commerce
Amazon Varejo e Prime
am Compras & E-commerce
AliExpress Importações e Eletrônicos
hx Compras & E-commerce
Shein Moda e Roupas
aez Compras & E-commerce
OLX Compra e Venda de Usados
ol Compras & E-commerce
Magazine Luiza Magalu Varejo
ml Compras & E-commerce
Netflix Filmes e Séries
nf Streaming & Games
Spotify Músicas e Podcasts
so Streaming & Games
Steam Jogos Digitais
mt Streaming & Games
Roblox Jogos e Metaverso
rb Streaming & Games

Listar Serviços e Menor Preço

Retorna todos os serviços disponíveis com seus nomes traduzidos, código de identificação, código do país e sempre o menor preço (mais barato) encontrado em estoque no momento.

GET /v1/catalog/services Catálogo Completo com Preço Mais Barato

Endpoints equivalentes: /api/v1/services ou /api/v1?action=getServicesList

Parâmetro Tipo Descrição
countryOpcional string | int Código numérico do país (padrão: 73 Brasil).
serviceOpcional string Filtrar por serviço específico (ex: wa WhatsApp, tg Telegram). Retorna o serviço e suas 10 opções de preços.
versionOpcional string Motor: v2 (Diamond), v1 (Gold), v4 (Operadoras) ou v3 (Voice).
Exemplo de Requisição (cURL)
curl -s "https://api.painelsms.tech/v1/catalog/services?country=73"   -H "Authorization: Bearer SEU_TOKEN"
Exemplo de Resposta (JSON) — Menor Preço por Serviço
{
  "success": true,
  "country": "73",
  "currency": "BRL",
  "services": [
    {
      "code": "wa",
      "name": "WhatsApp",
      "country": "73",
      "price": 8.38,
      "min_price": 8.38,
      "available": 100,
      "provider": "Phantom Gold"
    },
    {
      "code": "tg",
      "name": "Telegram",
      "country": "73",
      "price": 5.40,
      "min_price": 5.40,
      "available": 420,
      "provider": "Phantom Diamond"
    }
  ]
}

Opções de Provedores e Preços (1 a 10)

Para dar controle total aos seus scripts, este endpoint lista as 10 opções mais baratas em tempo real para o serviço solicitado, organizadas e numeradas de 1 a 10 por ordem crescente de preço:

  • Provedor Gold (V1): Exibe os números originais de identificação dos provedores (ex: 2953, 3182) e índice 1..10.
  • Provedor Diamond (V2): Numerado de forma limpa como Opção 1, Opção 2, Opção 3, Opção 4, Opção 5... para configuração facilitada em robôs.
  • Provedor Operadoras (V4): Numerado por operadora como Opção 1 - Vivo, Opção 2 - TIM, Opção 3 - Algar Telecom, Opção 4 - Surf...
  • Provedor Voice OTP (V3): Numerado como Opção 1 - Voice OTP.
GET /v1/catalog/providers Top 10 Opções de Preço por Provedor

Endpoints equivalentes: /api/v2/providers?service_code=wa ou /api/v1?action=getProvidersList&service=wa

Parâmetro Tipo Descrição
service_codeObrigatório string Código do serviço (ex: wa, tg, go, ig).
countryOpcional string | int Código do país (padrão: 73 Brasil).
versionOpcional string Motor desejado: v2 (Diamond - padrão), v1 (Gold), v4 (Operadoras) ou v3 (Voice).
Exemplo de Resposta (JSON) — Diamond (1 a 10)
{
  "success": true,
  "service_code": "wa",
  "country": "73",
  "currency": "BRL",
  "provider": "Phantom Diamond",
  "providers": [
    { "index": 1, "option": 1, "name": "Opção 1", "price": 16.04, "available": 99 },
    { "index": 2, "option": 2, "name": "Opção 2", "price": 27.64, "available": 26 },
    { "index": 3, "option": 3, "name": "Opção 3", "price": 28.13, "available": 2 },
    { "index": 4, "option": 4, "name": "Opção 4", "price": 28.21, "available": 16 },
    { "index": 5, "option": 5, "name": "Opção 5", "price": 30.50, "available": 45 }
  ]
}

Listar Países Disponíveis

Retorna todos os países globais suportados com seus respectivos IDs numéricos e nomes oficiais.

GET /v1/catalog/countries Catálogo de Países Globais
Exemplo de Resposta (JSON)
{
  "success": true,
  "countries": [
    { "id": "73", "name": "Brasil" },
    { "id": "187", "name": "Estados Unidos" },
    { "id": "117", "name": "Portugal" },
    { "id": "39", "name": "Argentina" },
    { "id": "78", "name": "Reino Unido" }
  ]
}
REST API v1

Alta Concorrência & Long-Polling

Estruturada para máxima performance, respostas diretas na raiz do JSON e suporte nativo a Long-Polling em tempo real (< 5ms).

v1 Phantom Gold

Volume global, menor preço (+180 países).

v2 Phantom Diamond
Padrão

Alta entrega, suporte a reenvio (/retry).

v3 Phantom Voice OTP

Ligação de voz com transcrição de áudio.

v4 Phantom Operadoras

Filtro granular (Vivo, Claro, TIM, etc.).

Comprar Número — POST /v1/api/buy

Aloca imediatamente um número virtual ativo. Roteia internamente entre os provedores parceiros (Opção 1 e Opção 2), selecionando dinamicamente o menor custo e a maior taxa de entrega, com fallback automático instantâneo se um dos provedores estiver sem estoque.

POST /v1/api/buy Comprar Número Virtual
Campo JSONTipoDescrição
tokenObrigatório string Sua chave de API (ou passe no header Authorization: Bearer <TOKEN>).
serviceObrigatório string Código do serviço desejado (ex: go Google, wa WhatsApp, tg Telegram).
versionOpcional string Motor: v1, v2 (padrão se omitido), v3 ou v4.
operatorOpcional string Operadora desejada (ex: vivo, claro, tim - usado com version v4).
Exemplo de Resposta (200 OK)
{
  "status": "success",
  "aid": "24722162",
  "number": "5519976210608",
  "price": 0.60,
  "saldo_restante": 149.40,
  "provider": "diamond"
}

Consultar Status do SMS — POST /v1/api/status

Consulta tradicional para checar o status atual do número pelo ID curto aid.

POST /v1/api/status Polling de Status
Campo JSONTipoDescrição
tokenObrigatóriostringSua chave de API.
aidObrigatóriostringIdentificador da ativação recebido no /buy.
Respostas Possíveis
// 1. Aguardando SMS:
{ "status": "waiting", "sms": [] }

// 2. Código Recebido:
{ "status": "received", "sms": ["480594"] }

// 3. Cancelado ou Estornado:
{ "status": "canceled", "sms": [] }

Aguardar SMS em Tempo Real (Long-Polling) — POST /v1/api/wait

Conexão assíncrona persistente (recomendado): Mantém a requisição HTTP aberta e utiliza PostgreSQL LISTEN/NOTIFY para disparar o código OTP no exato milissegundo em que for detectado, sem necessidade de fazer requisições repetidas.

POST /v1/api/wait Long-Polling em Tempo Real
Campo JSONTipoDescrição
tokenObrigatóriostringSua chave de API.
aidObrigatóriostringIdentificador da ativação.
timeoutOpcionalintTempo máximo em segundos para manter a conexão aberta (padrão: 90).
Exemplo de Resposta de Sucesso (200 OK)
{
  "status": "received",
  "sms": ["480594"]
}

// Se atingir o timeout de 90s sem código:
{
  "timeout": true,
  "status": "waiting",
  "sms": []
}

Cancelar Número & Estorno — POST /v1/api/cancel

Cancela a ativação e estorna 100% do valor de volta para o saldo da conta de forma atômica.

Regra de Segurança Estrita: Para proteção do estoque de chips, o cancelamento possui uma trava de segurança de 2 minutos (120 segundos) após a compra. Tentativas antes desse prazo retornam HTTP 400. Ativações que já receberam SMS não podem ser canceladas.
POST /v1/api/cancel Cancelamento e Devolução
Resposta de Sucesso (200 OK)
{
  "status": "canceled",
  "saldo": 150.00
}

Pedir Reenvio de SMS — POST /v1/api/retry

Solicita um novo código SMS para o mesmo número de telefone. Disponível exclusivamente no motor v2 (Phantom Diamond). Limpa a captura de SMS anterior para reativação imediata do Long-Polling.

POST /v1/api/retry Reenvio de SMS
Resposta de Sucesso (200 OK)
{
  "status": "waiting",
  "message": "Reenvio solicitado com sucesso"
}

Comprar / Gerar Número Virtual

Aloca imediatamente um novo número temporário para recebimento de SMS ou Voice OTP. O saldo correspondente é debitado da sua conta.

POST /v1/order/create Compra de Número
Campo JSON Tipo Descrição
serviceObrigatório string Código do serviço (ex: wa WhatsApp, tg Telegram, go Google).
countryOpcional string | int ID do país (padrão: 73 Brasil).
versionOpcional string Motor: v2 (Diamond - padrão), v1 (GOLD) ou v3 (Voice OTP).
optionOpcional int (1 a 10) Escolha da opção desejada de 1 a 10 (padrão: 1 para a opção mais barata).
providerOpcional string | int Motor (ex: v2, v1) ou ID numérico direto no provedor Gold (ex: 2953).
operatorOpcional string Operadora desejada (ex: vivo, claro, tim no motor Operadoras).
Payload de Envio (JSON)
{
  "service": "wa",
  "country": "73",
  "version": "v2"
}

Consultar Status & Receber SMS

Consulte periodicamente (polling a cada 3~5 segundos) até que o status mude para received com o código OTP detectado.

GET /v1/order/{id} Polling de SMS
Exemplo com SMS Recebido (200 OK)
{
  "success": true,
  "order_id": "24722162",
  "status": "received",
  "code": "849201",
  "full_sms": "Seu codigo de confirmacao do WhatsApp e 849-201",
  "received_at": "2026-10-29T23:42:15Z"
}

Cancelar Pedido e Estornar Saldo

Cancela a ativação pendente. Se nenhum SMS tiver sido recebido, o valor cobrado é estornado imediatamente 100% para o seu saldo.

POST /v1/order/{id}/cancel Cancelamento e Estorno

Solicitar Reenvio de SMS (Resend)

Disponível no provedor Diamond (v2): permite aguardar um segundo código SMS no mesmo número de telefone sem custo adicional.

POST /v1/order/{id}/resend Segundo Código

Notificações Webhook (Opcional)

Em vez de realizar polling contínuo, configure uma URL de webhook no seu painel. Assim que o SMS chegar, nosso servidor enviará um HTTP POST com o código OTP.

Tabela de Respostas e Erros

Código HTTP Significado Causa e Ação Recomendada
200 OK Sucesso Requisição processada com êxito.
400 Bad Request Parâmetros Inválidos Verifique se os campos enviados estão corretos.
401 Unauthorized Token Inválido ou Ausente Verifique o header Authorization: Bearer <TOKEN>.
402 Payment Required Saldo Insuficiente Recarregue sua conta via Pix em painelsms.tech.
503 Unavailable Sem Estoque Temporário Sem números ativos no momento para aquele serviço. Tente outra versão (v1 ou v2).

API Padrão Universal (handler_api.php)

100% Compatível com Softwares & Bots

Nossa API disponibiliza compatibilidade nativa com o protocolo consagrado no mercado internacional de números virtuais (compatível com os principais bots e softwares de automação de SMS). Você pode plugar qualquer bot, script ou biblioteca sem modificar uma linha de código.

Endereço Base Universal: O endpoint aceita requisições GET e POST (form-urlencoded ou JSON) através do arquivo /stubs/handler_api.php ou seus aliases diretos: /handler_api.php, /api/v1 e /api.
GET / POST https://api.painelsms.tech/stubs/handler_api.php URL Base do Protocolo Padrão
Parâmetro Tipo Descrição
api_keyObrigatório string Sua chave de API do Painel SMS. Também aceita no parâmetro key ou no cabeçalho Authorization: Bearer.
actionObrigatório string Ação a ser executada (ex: getBalance, getNumber, getStatus, setStatus, etc.).
formatOpcional string Por padrão, as respostas são em Texto Puro (como exige o padrão). Envie format=json para obter JSON estruturado.

1. Consultar Saldo (action=getBalance)

Retorna o saldo disponível na sua conta em formato de texto simples ACCESS_BALANCE:$valor ou JSON.

GET /stubs/handler_api.php?api_key=SUA_KEY&action=getBalance
Exemplo de Resposta (Texto Puro Padrão)
ACCESS_BALANCE:15.50

2. Obter Número Virtual (action=getNumber / getNumberV2)

Aloca um número virtual temporário para o serviço e país solicitados. A rota seleciona automaticamente a melhor operadora e opção disponível.

GET / POST /stubs/handler_api.php?api_key=SUA_KEY&action=getNumber&service=wa&country=73
Parâmetro Tipo Descrição
serviceObrigatório string Código curto do serviço (ex: wa WhatsApp, tg Telegram, go Google, kt KakaoTalk).
countryOpcional int | string ID numérico do país (ex: 73 Brasil [padrão], 187 EUA, etc.).
maxPriceOpcional float Preço máximo que aceita pagar em BRL (evita compra se o valor subir repentinamente).
optionOpcional int (1 a 10) Índice da opção do provedor (1 a 10). Padrão é 1 (mais barata).
versionOpcional string Motor preferencial: v2 (Diamond), v1 (Gold), v4 (Operadoras) ou v3 (Voice).
Resposta action=getNumber (Texto Puro Padrão: ACCESS_NUMBER:$id:$numero)
ACCESS_NUMBER:24722162:5519976210608
Resposta action=getNumberV2 (JSON Estruturado)
{
  "status": "SUCCESS",
  "activationId": "24722162",
  "phoneNumber": "5519976210608",
  "activationCost": 1.18,
  "currency": "BRL",
  "countryCode": "73",
  "canGetAnotherSms": true
}

3. Obter SMS Recebido (action=getStatus)

Efetue polling na URL a cada 3 a 5 segundos enviando o ID da ativação (id=$id) recebido na compra.

GET /stubs/handler_api.php?api_key=SUA_KEY&action=getStatus&id=24722162
Retorno da API Significado Ação do seu Script
STATUS_WAIT_CODE Aguardando SMS O número está ativo e aguardando a chegada da mensagem. Continue o polling.
STATUS_WAIT_RESEND Aguardando Reenvio Você solicitou reenvio de SMS (status=3). Aguardando o novo código.
STATUS_OK:$codigo SMS Recebido com Sucesso! Código OTP extraído (ex: STATUS_OK:849201). Pode finalizar com status=6.
STATUS_CANCEL Ativação Cancelada O pedido foi cancelado e o saldo estornado para a conta.

4. Alterar Status & Lógica Cronológica (action=setStatus)

Para a integração ser perfeita e respeitar as regras do mercado internacional, o seu script deve seguir a ordem cronológica exata descrita abaixo:

GET / POST /stubs/handler_api.php?api_key=SUA_KEY&action=setStatus&status=$status&id=$id
Status Ação Cronológica Retorno Regras & Limites
status=1 Informar envio de SMS (Opcional) ACCESS_READY Notifica o gateway que o SMS foi disparado pelo app e o número está pronto.
status=3 Solicitar Reenvio de SMS (Gratuito) ACCESS_RETRY_GET Se o primeiro código falhou ou você precisa de um segundo SMS no mesmo número.
status=6 Confirmar & Finalizar Ativação ACCESS_ACTIVATION Execute após receber o código e concluir o cadastro no serviço com êxito.
status=8 Cancelar & Estornar Saldo ACCESS_CANCEL Cancela o número e estorna 100% do saldo. Regra de 2 minutos: se o número acabou de ser comprado, aguarde a janela mínima de tentativa antes de cancelar. Se já tiver recebido SMS, o cancelamento é bloqueado.
Aviso sobre status=8 (Cancelamento Prematuro): Cancelar imediatamente após comprar sem aguardar o envio do SMS gera a resposta EARLY_CANCEL_DENIED. Respeite sempre a janela de carência para que a operadora conclua a entrega.

5. Lista de Serviços (action=getServicesList)

Retorna a listagem completa dos serviços com códigos universais e nomes oficiais formatados em JSON estruturado no padrão internacional de alta performance.

GET /stubs/handler_api.php?api_key=SUA_KEY&action=getServicesList&country=73

Exemplo dos códigos curtos mais utilizados no mercado:

Código Nome do Serviço Exemplo de Uso
wa WhatsApp Messenger / Business action=getNumber&service=wa&country=73
tg Telegram Messenger action=getNumber&service=tg&country=73
go Google / Gmail / YouTube action=getNumber&service=go&country=73
kt KakaoTalk action=getNumber&service=kt&country=73
ig Instagram action=getNumber&service=ig&country=73
ni Mercado Livre action=getNumber&service=ni&country=73
Estrutura do Retorno JSON (action=getServicesList)
{
  "status": "success",
  "services": [
    { "code": "wa", "name": "WhatsApp" },
    { "code": "tg", "name": "Telegram" },
    { "code": "go", "name": "Google" },
    { "code": "kt", "name": "KakaoTalk" }
  ]
}

6. Códigos de Países Multilíngue (action=getCountries)

Cada país possui um ID numérico universal fixo. O endpoint action=getCountries retorna a lista completa em padrão multi-idioma (Russo, Inglês, Chinês e Português):

GET /stubs/handler_api.php?api_key=SUA_KEY&action=getCountries
Estrutura do Retorno Multi-idioma JSON (action=getCountries)
[
  { "id": 73, "rus": "Бразилия", "eng": "Brazil", "chn": "巴西", "pt": "Brasil" },
  { "id": 187, "rus": "США", "eng": "USA", "chn": "美国", "pt": "Estados Unidos" },
  { "id": 1003, "rus": "Бермуды", "eng": "Bermuda", "chn": "百慕大", "pt": "Bermudas" }
]

7. Top Países por Serviço (action=getTopCountriesByService)

Permite ao seu bot descobrir rapidamente quais países possuem o maior estoque disponível e o menor custo para um serviço específico:

GET /stubs/handler_api.php?api_key=SUA_KEY&action=getTopCountriesByService&service=wa
Exemplo de Resposta JSON (action=getTopCountriesByService)
[
  { "country": 73, "count": 250, "price": 8.38 },
  { "country": 187, "count": 120, "price": 12.50 }
]

8. Consulta de Preços & Estoque (getPrices V1, V2 e V3)

Consulte a matriz completa de preços indexada por país e código de serviço:

GET /stubs/handler_api.php?api_key=SUA_KEY&action=getPrices&country=73&service=wa
Exemplo de Resposta (action=getPrices)
{
  "73": {
    "wa": {
      "8.38": 150,
      "16.04": 99
    }
  }
}

9. Pagamentos, Carteira Estática & Webhooks

Carteira Estática / Recarga: Obtenha o endereço fixo de recarga e chave Pix chamando action=getActualWalletAddress.

Webhooks Automáticos: O Painel SMS envia um POST JSON instantâneo para o endereço cadastrado nas configurações da sua conta assim que a mensagem for recebida pela operadora, com até 5 retentativas exponenciais em caso de timeout.

Payload Enviado pelo Webhook (POST JSON)
{
  "event": "sms_received",
  "activationId": "24722162",
  "phone": "5519976210608",
  "code": "849201",
  "fullSms": "Seu codigo de confirmacao do WhatsApp e 849-201",
  "timestamp": "2026-10-31T03:00:00Z"
}

10. Tabela de Erros do Protocolo Universal

Código de Erro Causa Ação Corretiva
BAD_KEY Chave de API inválida ou expirada Verifique o parâmetro api_key gerado no site.
BAD_ACTION Ação solicitada não reconhecida Verifique o parâmetro action (ex: getBalance, getNumber).
BAD_SERVICE Código de serviço inválido Consulte a tabela oficial de serviços (ex: wa, tg, go).
BAD_COUNTRY Código de país inválido Utilize o ID numérico correto (ex: 73 para Brasil).
NO_NUMBERS Sem estoque no momento Tente outra versão de provedor (v1, v2) ou tente novamente em alguns segundos.
NO_BALANCE Saldo insuficiente na conta Efetue recarga via Pix ou criptomoeda no painel.
EARLY_CANCEL_DENIED Tentativa de cancelamento precoce Aguarde a janela mínima de 2 minutos para cancelamento de número recém-gerado.
Pronto para Copiar e Colar

Exemplos de Integração em Múltiplas Linguagens

Exemplos funcionais completos para você conectar a API no seu script em poucos minutos.

# Exemplo de Compra e Polling de SMS em Python
import time, requests

API_KEY = "SUA_CHAVE_API"
BASE_URL = "https://api.painelsms.tech/v1"
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# 1. Comprar número (versão v2 Diamond)
payload = {"service": "wa", "country": "73", "version": "v2"}
res = requests.post(f"{BASE_URL}/order/create", json=payload, headers=headers).json()

if res.get("success"):
    order_id = res["order_id"]
    print(f"Número alocado: +{res['number']} (Pedido: {order_id})")

    # 2. Aguardar SMS com polling
    for _ in range(60):
        time.sleep(3)
        check = requests.get(f"{BASE_URL}/order/{order_id}", headers=headers).json()
        if check.get("status") == "received":
            print(f"Código OTP recebido: {check['code']}")
            break
Dúvidas Frequentes

Perguntas Frequentes sobre a API

Qual é a URL oficial da API do Painel SMS?
A URL oficial para chamadas da API é https://api.painelsms.tech. O portal administrativo e painel web para usuários e recargas Pix fica em https://painelsms.tech.
Como gero e onde vejo meu Token de API?
Basta entrar com sua conta em painelsms.tech e acessar a seção "API / Chaves". Lá você pode criar, copiar ou rotacionar seu Token Bearer com 1 clique.
O que acontece se o código SMS não chegar?
Você não paga nada por números que não recebem SMS! Se o número expirar ou você solicitar o cancelamento via POST /v1/order/{id}/cancel, o valor integral pago é estornado de volta ao seu saldo instantaneamente.
Como escolho entre os provedores Diamond, GOLD e Voice OTP?
Basta passar o parâmetro version no corpo da requisição POST /v1/order/create:
  • "version": "v2": Phantom Diamond (SmsCode - alta estabilidade, reenvio e operadoras).
  • "version": "v1": Phantom GOLD (alto volume e menor preço).
  • "version": "v3": Phantom Voice OTP (Hero SMS - código via chamada de voz gravada).