Developers

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).

2

Token de acesso

Ter gerado um token de acesso — veja Autenticação.

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 arraySms nã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.

Referência técnica

Respostas e esquemas completos

Veja a Referência de SMS com todos os parâmetros, exemplos de requisição e os esquemas de resposta completos de cada endpoint.

Abrir a Referência técnica