Configurar SMS com Zenvia
🇧🇷 Zenvia: Líder em comunicação no Brasil. Infraestrutura local, preços competitivos e suporte em português.
Este guia mostra como conectar sua conta Zenvia à Notifica. Ideal para empresas focadas no mercado brasileiro.
O que você precisa
- Conta Zenvia (gratuita para testes)
- API Token
- Sender ID (para alguns casos)
Passo 1: Criar conta Zenvia
- Acesse portal.zenvia.com
- Clique em Criar conta
- Preencha:
- Nome completo
- Email corporativo
- CNPJ da empresa (obrigatório para produção)
- Telefone
- Confirme o email
💡 Dica: Zenvia oferece créditos gratuitos para testes após validação de conta.
Passo 2: Obter API Token
- Faça login no Portal Zenvia
- Vá em API → Credenciais (ou Configurações → API)
- Clique em Gerar novo token
- Dê um nome: "Notifica Integration"
- Copie o token (aparece apenas uma vez!)
Exemplo de token: abcdef1234567890abcdef1234567890
⚠️ Segurança: Guarde em local seguro. Se perder, gere um novo.
Passo 3: Configurar Sender ID (opcional)
O Sender ID é o nome que aparece como remetente do SMS:
Tipos suportados
| Tipo | Descrição | Aprovação |
|---|---|---|
| Numérico | Número de telefone curto | Automática |
| Alfanumérico | Nome da empresa (ex: "Zenvia") | Até 24h |
| Whitelabel | 11 dígitos dedicado | Contrato especial |
Solicitar Sender ID
- No Portal Zenvia, vá em SMS → Sender IDs
- Clique em Novo Sender ID
- Escolha o tipo
- Para alfanumérico: informe nome da empresa e descrição do uso
- Aguarde aprovação (se necessário)
💡 Padrão: Se não configurar, usa número curto da Zenvia (ex: 28501)
Passo 4: Conectar à Notifica
Via Dashboard
- Acesse Canais → SMS → Adicionar Provedor
- Selecione Zenvia
- Preencha:
Nome: Zenvia Brasil
API Token: abcdef1234567890abcdef1234567890
Sender ID (opcional): SuaEmpresa
- Clique em Validar e Salvar
Via API
curl -X POST https://app.usenotifica.com.br/v1/channels/sms/providers \
-H "Authorization: Bearer nk_live_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"name": "Zenvia Brasil",
"provider": "zenvia",
"credentials": {
"api_token": "abcdef1234567890abcdef1234567890"
},
"settings": {
"sender_id": "SuaEmpresa",
"flash_sms": false,
"callback_option": "ALL"
}
}'
Resposta:
{
"id": "sms_prov_zenvia_001",
"name": "Zenvia Brasil",
"provider": "zenvia",
"status": "pending_validation",
"sender_id": "SuaEmpresa",
"created_at": "2024-01-15T10:00:00Z"
}
Passo 5: Validar configuração
curl -X POST https://app.usenotifica.com.br/v1/channels/sms/providers/validate \
-H "Authorization: Bearer nk_live_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"provider": "zenvia",
"credentials": {
"api_token": "abcdef1234567890abcdef1234567890"
}
}'
Resposta:
{
"valid": true,
"account": {
"name": "Sua Empresa LTDA",
"status": "active",
"balance": "150.00",
"currency": "BRL"
}
}
Passo 6: Testar envio
Via Dashboard
Vá em Canais → SMS → Zenvia → Testar
Via API
curl -X POST https://app.usenotifica.com.br/v1/channels/sms/providers/sms_prov_zenvia_001/test \
-H "Authorization: Bearer nk_live_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"to": "+5511987654321",
"message": "Teste de integração Notifica + Zenvia! Funcionou! 🚀"
}'
Resposta:
{
"success": true,
"provider_message_id": "1234567890abcdef",
"segments": 1,
"price": "0.045",
"currency": "BRL"
}
Passo 7: Ativar provedor
curl -X POST https://app.usenotifica.com.br/v1/channels/sms/providers/sms_prov_zenvia_001/activate \
-H "Authorization: Bearer nk_live_sua_chave"
Configurar Webhooks (status de entrega)
URL de Webhook Zenvia
https://app.usenotifica.com.br/webhooks/sms/zenvia/:tenant_id
Configurar no Portal Zenvia
- Acesse SMS → Configurações → Webhooks
- Em Callback de entrega, adicione a URL:
https://app.usenotifica.com.br/webhooks/sms/zenvia/seu_tenant_id - Selecione eventos:
- ✅ Entregue (DELIVERED)
- ✅ Não entregue (NOT_DELIVERED)
- ✅ Enviado para operadora (SENT)
- Formato: JSON
Enviando SMS via API
curl -X POST https://app.usenotifica.com.br/v1/notifications \
-H "Authorization: Bearer nk_live_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"to": {
"phone": "+5511987654321"
},
"channel": "sms",
"content": "Seu código de verificação é: 583921"
}'
Node.js
async function sendSMS(phone, message) {
const response = await fetch('https://app.usenotifica.com.br/v1/notifications', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.NOTIFICA_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
to: { phone },
channel: 'sms',
content: message.slice(0, 160)
})
});
return response.json();
}
// Exemplos
await sendSMS('+5511987654321', 'Seu pedido foi enviado! 🚚');
await sendSMS('+5511998765432', 'Sua consulta é amanhã às 14h. Não falte!');
Python
def send_sms(phone: str, message: str):
response = requests.post(
'https://app.usenotifica.com.br/v1/notifications',
headers={'Authorization': f'Bearer {API_KEY}'},
json={
'to': {'phone': phone},
'channel': 'sms',
'content': message[:160]
}
)
return response.json()
# Enviar para múltiplos números
def broadcast_sms(phones: list, message: str):
results = []
for phone in phones:
result = send_sms(phone, message)
results.append(result)
return results
Códigos de status Zenvia
| Status | Significado | Ação |
|---|---|---|
| SENT | Enviado para operadora | Aguardar |
| DELIVERED | Entregue no celular | Sucesso |
| NOT_DELIVERED | Não entregue | Verificar número |
| EXPIRED | Expirou na operadora | Retry |
| REJECTED | Rejeitado pela operadora | Verificar Sender ID |
| UNDEFINED | Status desconhecido | Investigar |
Preços Zenvia
| Tipo | Preço aprox. (BRL) |
|---|---|
| SMS MT (envio) | R$ 0,04 - R$ 0,08 |
| SMS MO (recebimento) | R$ 0,02 - R$ 0,04 |
💡 Consulte seu contrato Zenvia ou fale com um representante para volumes altos (acima de 100k/mês).
Vantagens Zenvia vs Twilio
| Aspecto | Zenvia | Twilio |
|---|---|---|
| Foco | Brasil/LATAM | Global |
| Suporte | Português nativo | Inglês/português limitado |
| Preço Brasil | Competitivo | Acima da média |
| Entrega local | Excelente | Boa |
| Sender ID | Fácil aprovação | Limitado no BR |
| API | Simples | Mais recursos |
Próximo passo
Configure o Compliance SMS para garantir conformidade com LGPD e boas práticas.
Para outras opções de provedor, veja: