Guia · Inteligência artificial
Integre a SMS Nexo com IA
Coloque um assistente para comprar números e ler os códigos por você, ou peça para uma IA escrever a integração do seu sistema em minutos. Tudo usa a mesma chave da API e o seu saldo.
Você vai precisar de
- Uma chave
nx_live_…, criada em Painel → API. - A especificação OpenAPI:
https://smsnexo.com/api/v1/openapi.json
Opção 1
Pedir para a IA escrever a integração
Cole este texto no ChatGPT, Claude, Gemini ou Cursor. A IA lê a especificação e entrega o código pronto, com webhook e tratamento de erros.
Quero integrar a API da SMS Nexo no meu sistema.
A especificação OpenAPI está em https://smsnexo.com/api/v1/openapi.json
e a documentação em https://smsnexo.com/docs/api.
Crie em [Node.js / Python / PHP] um módulo que:
1. compra um número com POST /orders (service e country);
2. espera o código com GET /orders/{id}?wait=30, repetindo até chegar ou expirar;
3. cancela com POST /orders/{id}/cancel se eu desistir;
4. recebe o webhook "sms.received" e valida o header X-Nexo-Signature
(HMAC-SHA256 do corpo com o meu segredo whsec_...).
A chave fica na variável de ambiente NEXO_KEY. Trate os erros 402, 409 e 429.Opção 2
GPT personalizado no ChatGPT
Um assistente seu dentro do ChatGPT: você escreve “quero um número para o Telegram” e ele compra, espera e mostra o código.
- No ChatGPT, abra Explorar GPTs → Criar → Configurar.
- Em Ações, clique em Criar nova ação → Importar de URL e cole
https://smsnexo.com/api/v1/openapi.json. - Em Autenticação, escolha Chave de API → Bearer e cole a sua chave.
- Nas instruções do GPT, cole o texto abaixo e salve como “Somente eu”.
Você compra números virtuais na SMS Nexo para receber códigos de verificação. - Para "número para X": use listServices (country 73 = Brasil) para achar o code do app e o preço, confirme o preço com o usuário e então chame createOrder. - Depois chame getOrder com wait=30 até o status ser "received" e mostre o código. - Se o usuário desistir antes do SMS, chame cancelOrder (o valor volta ao saldo). - Sempre informe o saldo com getBalance quando pedirem.
Deixe o GPT privado: quem tiver acesso a ele compra com o seu saldo.
Opção 3
Agentes com function calling
Para bots e agentes próprios (OpenAI Agents, LangChain, CrewAI, Claude, Gemini), registre estas funções como ferramentas. O docstring de cada uma já explica para a IA quando usar.
import os, requests
API = "https://smsnexo.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['NEXO_KEY']}"}
# Funções prontas para registrar como "tools" no seu agente
# (OpenAI Agents, LangChain, CrewAI, Claude, Gemini...).
def buscar_servicos(pais: int = 73) -> list:
"""Lista apps disponíveis no país, com preço em reais e estoque."""
return requests.get(f"{API}/services", params={"country": pais}, headers=H).json()["services"]
def comprar_numero(servico: str, pais: int = 73) -> dict:
"""Compra um número para o app (ex.: 'wa' WhatsApp, 'tg' Telegram)."""
return requests.post(f"{API}/orders", json={"service": servico, "country": pais}, headers=H).json()
def esperar_codigo(order_id: str) -> dict:
"""Espera até 30 s pelo SMS e devolve status e código."""
return requests.get(f"{API}/orders/{order_id}", params={"wait": 30}, headers=H, timeout=40).json()["order"]
def cancelar(order_id: str) -> dict:
"""Cancela antes de chegar SMS; o valor volta ao saldo."""
return requests.post(f"{API}/orders/{order_id}/cancel", headers=H).json()Opção 4
n8n, Make ou Zapier (sem programar)
- Crie um nó HTTP Request: método POST, URL
https://smsnexo.com/api/v1/orders, headerAuthorization: Bearer SUA_CHAVEe corpo JSON{"service":"wa","country":73}. - Para receber o código, crie um fluxo com gatilho Webhook, copie a URL dele e cole em Painel → API → Webhook. Cada SMS chega ali em segundos.
- Ou, sem webhook, use outro HTTP Request em GET /orders/{id}?wait=30: ele responde assim que o código chega.
Receber o SMS na hora (webhook)
Com o webhook configurado, enviamos um POST para a sua URL assim que o código chega, com o evento sms.received e a ativação completa. Valide a assinatura antes de confiar no conteúdo:
import crypto from "node:crypto";
import express from "express";
const app = express();
// Use o corpo cru: a assinatura é calculada sobre os bytes exatos.
app.post("/nexo-webhook", express.raw({ type: "application/json" }), (req, res) => {
const expected = "sha256=" + crypto.createHmac("sha256", process.env.NEXO_WEBHOOK_SECRET).update(req.body).digest("hex");
const got = req.get("X-Nexo-Signature") || "";
if (got.length !== expected.length || !crypto.timingSafeEqual(Buffer.from(got), Buffer.from(expected))) return res.sendStatus(401);
const { event, order } = JSON.parse(req.body);
if (event === "sms.received") console.log("Código", order.code, "para", order.phone);
res.sendStatus(200); // responda rápido (até 5 s)
});
app.listen(3000);Boas práticas
- Nunca coloque a chave no navegador, no app ou em prompt público. Ela fica no servidor ou no cofre da ferramenta.
- Peça para o agente confirmar o preço antes de comprar e defina um teto de gasto no seu código.
- Crie uma chave por integração e revogue no painel a que não usar mais.