Skip to content

Provider KambaSMS

Sobre

A KambaSMS é uma plataforma de comunicação angolana que utiliza autenticação via X-API-Key.

Status

🚧 Em desenvolvimento - Aguardando validação com API real

⚠️ Nota: Provider em desenvolvimento. Testes com API real pendentes.

Configuração

typescript
import { createSender } from "@jcsolutions/sender";

const sms = await createSender("kambasms", {
  token: process.env.KAMBASMS_TOKEN,
  baseUrl: "https://nexasms-api.onrender.com",
  timeout: 10000,
});

Com remetente (from)

typescript
const sms = await createSender("kambasms", {
  token: process.env.KAMBASMS_TOKEN,
  baseUrl: "https://nexasms-api.onrender.com",
  from: "LEVAJA",  // usado como sender_id quando obrigatório
});

Especificações

PropriedadeValor
Provider name"kambasms"
AutenticaçãoX-API-Key: {token}
Base URLhttps://nexasms-api.onrender.com
Campo mensagemtext
Formato do número+244XXXXXXXXX (internacional)
Limite mensagem160 caracteres
Limite batch1000 destinatários
Batch nativo✅ Suportado (/messages/bulk)
Agendamento✅ Suportado (/messages/schedule)

Envio simples

typescript
const result = await sms.send({
  to: "923000000",
  message: "Olá! Mensagem de teste.",
});

Envio com agendamento

typescript
const result = await sms.send({
  to: "923000000",
  message: "Lembrete: consulta amanhã",
  schedule: "2025-06-01T09:00:00.000Z",  // formato ISO 8601
});

Envio em lote (simples)

typescript
const result = await sms.sendBatch({
  to: ["923000001", "923000002", "923000003"],
  message: "Promoção especial!",
  campaignName: "Promoção Natal",  // ← obrigatório
});

Envio em lote com agendamento

typescript
const result = await sms.sendBatch({
  to: ["923000001", "923000002", "923000003"],
  message: "Promoção especial!",
  campaignName: "Promoção Natal",
  schedule: "2025-12-25T08:00:00.000Z",  // agenda todo o lote
});

Regras de negócio

Operaçãofrom obrigatóriocampaignName obrigatório
Envio simples❌ Não-
Envio com agendamento✅ Sim-
Envio em lote✅ Sim✅ Sim
Lote com agendamento✅ Sim✅ Sim

Limitações

ItemRegra
Links/URLs❌ Não permitidos
Tamanho máximo160 caracteres
Formato número+244XXXXXXXXX
Limite por hora50 SMS/hora

Exemplo com arquivo de configuração

typescript
// sender.config.ts
import { defineConfig } from "@jcsolutions/sender";

export default defineConfig({
  providers: {
    kambasms: {
      token: process.env.KAMBASMS_TOKEN,
      baseUrl: "https://nexasms-api.onrender.com",
      from: "LEVAJA",  // necessário para batch e agendamento
    },
  },
});

Resposta de sucesso (envio simples)

json
{
  "success": true,
  "provider": "kambasms",
  "messageId": "SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "raw": {
    "success": true,
    "message_id": "SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "status": "queued",
    "to": "+244912345678",
    "sender_id": "LEVAJA",
    "remaining_balance": 99,
    "segments": 1,
    "timestamp": "2025-01-01T12:00:00.000Z"
  }
}

Resposta de sucesso (envio em lote)

json
{
  "success": true,
  "provider": "kambasms",
  "successful": ["923000001", "923000002", "923000003"],
  "failed": [],
  "details": [
    { "to": "923000001", "messageId": "job_123" },
    { "to": "923000002", "messageId": "job_123" },
    { "to": "923000003", "messageId": "job_123" }
  ],
  "raw": {
    "success": true,
    "job_id": "uuid",
    "total": 3
  }
}

Próximos passos

Assim que os testes com API real forem concluídos, este provider será promovido para estável.

📝 Para mais detalhes, consulte o site oficial da KambaSMS

MIT License