Pular para o conteúdo principal

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

  1. Acesse portal.zenvia.com
  2. Clique em Criar conta
  3. Preencha:
    • Nome completo
    • Email corporativo
    • CNPJ da empresa (obrigatório para produção)
    • Telefone
  4. Confirme o email

💡 Dica: Zenvia oferece créditos gratuitos para testes após validação de conta.


Passo 2: Obter API Token

  1. Faça login no Portal Zenvia
  2. Vá em API → Credenciais (ou Configurações → API)
  3. Clique em Gerar novo token
  4. Dê um nome: "Notifica Integration"
  5. 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

TipoDescriçãoAprovação
NuméricoNúmero de telefone curtoAutomática
AlfanuméricoNome da empresa (ex: "Zenvia")Até 24h
Whitelabel11 dígitos dedicadoContrato especial

Solicitar Sender ID

  1. No Portal Zenvia, vá em SMS → Sender IDs
  2. Clique em Novo Sender ID
  3. Escolha o tipo
  4. Para alfanumérico: informe nome da empresa e descrição do uso
  5. 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

  1. Acesse Canais → SMS → Adicionar Provedor
  2. Selecione Zenvia
  3. Preencha:
Nome: Zenvia Brasil
API Token: abcdef1234567890abcdef1234567890
Sender ID (opcional): SuaEmpresa
  1. 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

  1. Acesse SMS → Configurações → Webhooks
  2. Em Callback de entrega, adicione a URL:
    https://app.usenotifica.com.br/webhooks/sms/zenvia/seu_tenant_id
  3. Selecione eventos:
    • ✅ Entregue (DELIVERED)
    • ✅ Não entregue (NOT_DELIVERED)
    • ✅ Enviado para operadora (SENT)
  4. 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

StatusSignificadoAção
SENTEnviado para operadoraAguardar
DELIVEREDEntregue no celularSucesso
NOT_DELIVEREDNão entregueVerificar número
EXPIREDExpirou na operadoraRetry
REJECTEDRejeitado pela operadoraVerificar Sender ID
UNDEFINEDStatus desconhecidoInvestigar

Preços Zenvia

TipoPreç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

AspectoZenviaTwilio
FocoBrasil/LATAMGlobal
SuportePortuguês nativoInglês/português limitado
Preço BrasilCompetitivoAcima da média
Entrega localExcelenteBoa
Sender IDFácil aprovaçãoLimitado no BR
APISimplesMais recursos

Próximo passo

Configure o Compliance SMS para garantir conformidade com LGPD e boas práticas.

Para outras opções de provedor, veja: