Primeira requisição
Este passo a passo leva você até o primeiro envio de SMS, usando o endpoint
POST /sms/v3/send com uma única mensagem como exemplo.
Pré-requisitos
1
Credenciais
Ter suas credenciais de aplicação (Client ID e Secret).
Monte o corpo do envio
O endpoint recebe uma lista de mensagens em arraySms e as
configurações de recebimento de status e respostas:
| Campo | Obrigatório | Descrição |
|---|---|---|
can_receive_status |
sim | Define se a aplicação deseja receber os status dos SMS. |
can_receive_answer |
sim | Define se a aplicação deseja receber as respostas dos destinatários. |
webhook_status_url |
condicional | URL que receberá os status quando can_receive_status for true. |
webhook_answer_url |
condicional | URL que receberá as respostas quando can_receive_answer for true. |
route_type |
não | Tipo de rota (1, 2 ou 5). Se omitido, usa a rota Exclusivo. |
arraySms |
sim | Lista de mensagens (até 1.000 por requisição). |
Os valores abaixo são fictícios, apenas para ilustração. Use
dados reais só em produção e evite incluir dados sensíveis no conteúdo da
mensagem.
Faça a chamada
POST /sms/v3/send
curl -X POST \ "https://api.assertivasolucoes.com.br/sms/v3/send" \ -H "Authorization: Bearer SEU_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "can_receive_status": true, "can_receive_answer": true, "webhook_status_url": "https://suaempresa.com.br/webhooks/sms/status", "webhook_answer_url": "https://suaempresa.com.br/webhooks/sms/resposta", "route_type": 1, "arraySms": [ { "number": "11912345678", "message": "Olá! Esta é uma mensagem de teste.", "filter_value": "pedido-12345" } ] }'
// Node 18+ possui fetch nativo. const accessToken = process.env.ASSERTIVA_ACCESS_TOKEN; const corpo = { can_receive_status: true, can_receive_answer: true, webhook_status_url: "https://suaempresa.com.br/webhooks/sms/status", webhook_answer_url: "https://suaempresa.com.br/webhooks/sms/resposta", route_type: 1, arraySms: [ { number: "11912345678", message: "Olá! Esta é uma mensagem de teste.", filter_value: "pedido-12345" } ] }; const resposta = await fetch("https://api.assertivasolucoes.com.br/sms/v3/send", { method: "POST", headers: { Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json" }, body: JSON.stringify(corpo) }); if (!resposta.ok) throw new Error(`Envio falhou: ${resposta.status}`); const enviados = await resposta.json(); enviados.forEach((sms) => console.log(sms.id_sms, sms.number));
import os import requests access_token = os.environ["ASSERTIVA_ACCESS_TOKEN"] corpo = { "can_receive_status": True, "can_receive_answer": True, "webhook_status_url": "https://suaempresa.com.br/webhooks/sms/status", "webhook_answer_url": "https://suaempresa.com.br/webhooks/sms/resposta", "route_type": 1, "arraySms": [ { "number": "11912345678", "message": "Olá! Esta é uma mensagem de teste.", "filter_value": "pedido-12345", } ], } resposta = requests.post( "https://api.assertivasolucoes.com.br/sms/v3/send", headers={"Authorization": f"Bearer {access_token}"}, json=corpo, ) resposta.raise_for_status() for sms in resposta.json(): print(sms["id_sms"], sms["number"])
Entenda a resposta
A API retorna uma lista com os identificadores das mensagens enviadas. Guarde
cada id_sms — ele é usado para consultar o status e a resposta de
cada SMS.
Exemplo de resposta (dados fictícios)
[
{
"id_sms": "ID_DA_MENSAGEM",
"number": "11912345678",
"filter_value": "pedido-12345"
}
]
Valide antes de enviar
Antes do envio, conforme a documentação, verifique:
- Se a lista
arraySmsnão está vazia; - Se não ultrapassa 1.000 mensagens;
- Se todas as mensagens possuem número e conteúdo;
- Se os números estão no formato correto (11 dígitos com DDD, só números);
- Se as mensagens possuem até 600 caracteres.
Principais respostas de erro
| Código | Significado | Tratamento recomendado |
|---|---|---|
400 |
Parâmetros inválidos. | Validar o corpo, os números, as mensagens e os campos obrigatórios. |
401 |
Não autenticado. | Gerar ou enviar um token válido. |
403 |
Acesso não autorizado. | Confirmar a permissão para realizar envios de SMS. |
500 |
Erro interno. | Tentar novamente e registrar a ocorrência para análise. |
Entre as causas comuns de
400 estão: arraySms não
informado ou vazio, mais de 1.000 SMS, can_receive_status ou
can_receive_answer ausentes, URL de webhook não informada quando
necessária, mensagens ou números ausentes e mensagens acima de 600 caracteres.
Próximo passo
Veja como receber status e respostas por webhook e como consultá-los nos casos de uso.