Uma requisição HTTP e a mensagem sai
Sem SDK obrigatório, sem homologação de meses, sem projeto de TI. Conecte o seu ERP, CRM, e-commerce ou sistema próprio e deixe o disparo acontecer no evento certo.
Do token ao primeiro envio
Três passos. O primeiro SMS costuma sair antes do café esfriar.
- 1Solicite o token de acesso pelo painel ou com o seu consultor.
- 2Faça um POST para /v1/sms com número e mensagem.
- 3Aponte um webhook para receber o status de entrega e as respostas.
curl -X POST https://api.enviarbrasil.com/v1/sms \
-H "Authorization: Bearer $ENVIAR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"numero": "5565999217864",
"mensagem": "Seu pedido 88421 saiu para entrega.",
"referencia": "pedido-88421",
"webhook": "https://sualoja.com.br/callbacks/dlr"
}'Milhares de mensagens em uma chamada só
A mesma autenticação, uma rota diferente. Com agendamento opcional, respeitando fuso e janela comercial.
POST /v1/sms/lote HTTP/1.1
Host: api.enviarbrasil.com
Authorization: Bearer $ENVIAR_TOKEN
Content-Type: application/json
{
"agendar_para": "2026-10-01T09:00:00-03:00",
"mensagens": [
{ "numero": "5511999990001", "mensagem": "Ana, sua parcela vence hoje." },
{ "numero": "5511999990002", "mensagem": "Bruno, sua parcela vence hoje." }
]
}Seu sistema fica sabendo no instante em que acontece
Dois eventos, dois endpoints seus. Ambos assinados com HMAC SHA-256 e com retentativa automática em caso de falha.
Status de entrega (DLR)
POST /callbacks/dlr HTTP/1.1
Content-Type: application/json
X-Enviar-Assinatura: sha256=...
{
"id": "msg_9f2c4a1b",
"referencia": "pedido-88421",
"numero": "5565999217864",
"status": "entregue",
"operadora": "vivo",
"ocorrido_em": "2026-09-21T14:03:11-03:00"
}Resposta do cliente
POST /callbacks/resposta HTTP/1.1
Content-Type: application/json
X-Enviar-Assinatura: sha256=...
{
"id_original": "msg_9f2c4a1b",
"numero": "5565999217864",
"texto": "SIM",
"recebido_em": "2026-09-21T14:05:47-03:00"
}Status possíveis
submetido— A plataforma aceitou a mensagem e ela entrou na fila.enviado— Repassada à operadora. Ainda sem confirmação do aparelho.entregue— A operadora confirmou o recebimento. É o status que vale.expirado— A operadora tentou pelo período de validade e desistiu.rejeitado— Recusada por filtro de conteúdo, bloqueio ou rota.invalido— Número inexistente ou fora do padrão.
O que o seu desenvolvedor vai perguntar
Não. A API é HTTP com JSON. Qualquer linguagem que faça uma requisição POST consegue integrar — inclusive ferramentas no-code que permitem chamada HTTP.
O envio simples costuma ficar pronto em menos de uma hora. O que leva mais tempo é o que vem depois: tratar o webhook de status e decidir o que o seu sistema faz com cada resposta.
Sim. Você recebe um token de sandbox que aceita as mesmas rotas e devolve as mesmas respostas, sem disparar mensagem real nem consumir crédito.
A entrega do webhook é repetida com intervalo crescente. Além disso, todo status fica disponível por consulta na API e no relatório do painel, então nada se perde.
Cada chamada traz o cabeçalho X-Enviar-Assinatura com um HMAC SHA-256 do corpo da requisição, calculado com a sua chave secreta. Confira a assinatura antes de processar.
A rota de lote aceita grandes volumes em uma única chamada. Para disparos muito grandes, recomendamos escalonar em blocos — isso melhora o tempo médio de entrega por operadora.
Os exemplos acima ilustram o formato da integração. A documentação completa, com todas as rotas, parâmetros e códigos de erro, é liberada junto com o token de acesso.