API para Desenvolvedores
Integre o SMSPulse diretamente no seu sistema. Compre numeros e receba codigos SMS via API.
Autenticacao
A API do SMSPulse utiliza autenticacao via JWT (JSON Web Token). Para obter seu token, faca uma requisicao de login com suas credenciais de conta.
Apos o login, use o campo accessToken retornado no header Authorization: Bearer TOKEN em todas as requisicoes subsequentes.
POST /auth/login
Content-Type: application/json
Body: { "identifier": "seu@email.com", "password": "suasenha" }
Response: {
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4...",
"user": {
"id": 1,
"name": "Seu Nome",
"email": "seu@email.com",
"role": "customer"
}
}Importante
Guarde seu accessToken de forma segura. Ele expira apos um periodo, e voce pode usar o refreshToken para obter um novo token sem precisar fazer login novamente.
Endpoints
Listar Servicos Disponiveis
/store/servicesRetorna a lista de todos os servicos disponiveis para compra, incluindo nome, codigo e preco de cada um.
GET /store/services
Authorization: Bearer TOKEN
Response: [
{ "code": "wa", "name": "WhatsApp", "price": 3.50 },
{ "code": "tg", "name": "Telegram", "price": 2.00 },
{ "code": "ig", "name": "Instagram", "price": 4.00 },
...
]Comprar Numero
/store/purchaseCompra um numero virtual para o servico especificado. O valor e debitado automaticamente do seu saldo.
POST /store/purchase
Authorization: Bearer TOKEN
Content-Type: application/json
Body: { "service": "wa" }
Response: {
"id": 1,
"service": "wa",
"phoneNumber": "5514982332147",
"status": "pending",
"price": 3.50
}Verificar Status (Polling)
/store/purchase/:id/statusVerifica o status atual de uma compra. Use polling a cada 5 segundos ate o status mudar para 'completed' com o codigo SMS.
GET /store/purchase/:id/status
Authorization: Bearer TOKEN
// Aguardando SMS
Response: { "status": "waiting" }
// SMS recebido com sucesso
Response: { "status": "completed", "code": "847291" }
// Compra cancelada
Response: { "status": "cancelled" }Faca polling a cada 5 segundos ate receber o codigo. Nao faca requests com intervalo menor que 3 segundos.
Cancelar Compra
/store/purchase/:id/cancelCancela uma compra ativa e devolve o valor ao seu saldo. So e possivel cancelar compras com status 'pending' ou 'active'.
POST /store/purchase/:id/cancel
Authorization: Bearer TOKEN
Response: { "success": true }Cancele para receber o reembolso no saldo. Compras com status 'completed' ou 'expired' nao podem ser canceladas.
Ver Saldo
/store/balanceRetorna o saldo atual da conta e o historico de transacoes (creditos e debitos).
GET /store/balance
Authorization: Bearer TOKEN
Response: {
"balance": 47.50,
"transactions": [
{
"id": 1,
"type": "credit",
"amount": 50.00,
"description": "Deposito via PIX",
"createdAt": "2025-01-15T10:30:00Z"
},
{
"id": 2,
"type": "debit",
"amount": 3.50,
"description": "Compra WhatsApp",
"createdAt": "2025-01-15T10:35:00Z"
}
]
}Historico de Compras
/store/purchases?page=1Lista todas as suas compras com paginacao. Retorna os dados e o total de registros.
GET /store/purchases?page=1
Authorization: Bearer TOKEN
Response: {
"data": [
{
"id": 1,
"service": "wa",
"phoneNumber": "5514982332147",
"status": "completed",
"code": "847291",
"price": 3.50,
"createdAt": "2025-01-15T10:35:00Z"
}
],
"total": 15
}Codigos de Status
Cada compra passa por diferentes estados durante seu ciclo de vida. Utilize esses valores para controlar o fluxo da sua integracao.
| Status | Descricao |
|---|---|
pending | Compra criada, aguardando ativacao do numero. |
active | Numero ativo e aguardando o SMS de verificacao. |
completed | SMS recebido com sucesso. O codigo esta disponivel no campo code. |
cancelled | Compra cancelada pelo usuario. O valor foi devolvido ao saldo. |
expired | Tempo esgotado sem receber o SMS. O valor foi devolvido automaticamente. |
Exemplo Completo
Exemplo completo em JavaScript/Node.js mostrando o fluxo de login, compra de numero e aguardando o codigo SMS via polling.
// 1. Login
const login = await fetch('https://api.smspulse.com/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ identifier: 'seu@email.com', password: 'senha123' })
});
const { accessToken } = await login.json();
// 2. Comprar numero WhatsApp
const purchase = await fetch('https://api.smspulse.com/store/purchase', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${accessToken}`
},
body: JSON.stringify({ service: 'wa' })
});
const { id, phoneNumber } = await purchase.json();
console.log(`Numero: ${phoneNumber}`);
// 3. Aguardar codigo (polling)
let code = null;
while (!code) {
await new Promise(r => setTimeout(r, 5000));
const status = await fetch(`https://api.smspulse.com/store/purchase/${id}/status`, {
headers: { 'Authorization': `Bearer ${accessToken}` }
});
const result = await status.json();
if (result.status === 'completed') {
code = result.code;
console.log(`Codigo recebido: ${code}`);
}
}Limites
Rate Limit
100
requests por minuto
Polling
5s
intervalo minimo recomendado
Uso Justo
A API do SMSPulse segue uma politica de uso justo. Requisicoes excessivas ou abusivas podem resultar em bloqueio temporario da conta. Se voce precisa de limites maiores, entre em contato com nosso suporte.
Pronto para integrar?
Crie sua conta, adicione saldo via PIX e comece a usar a API em minutos.