Passar para o conteúdo principal

API Assertiva SMS

Escrito por Alex Bruno Machado

A API Assertiva SMS permite enviar mensagens de texto para números de celular e acompanhar automaticamente o status de entrega e as respostas dos destinatários.

Por meio da API, é possível:

  • Enviar até 1.000 SMS por requisição;

  • Consultar o status de uma mensagem;

  • Receber atualizações por meio de webhook;

  • Receber respostas dos destinatários;

  • Identificar cada envio por um valor de referência;

  • Escolher diferentes tipos de rota de envio.

A API utiliza o padrão REST e recebe requisições no formato JSON.


1. URL base

A URL base da API é:

https://api.assertivasolucoes.com.br/sms

O endpoint principal de envio é:

https://api.assertivasolucoes.com.br/sms/v3/send

A documentação completa está disponível na https://integracao.assertivasolucoes.com.br/v3/portal


2. Autenticação

Para utilizar a API SMS, é necessário gerar um token temporário de acesso utilizando as credenciais da aplicação.

São necessários:

  • Client ID;

  • Secret.

A geração do token utiliza o fluxo OAuth 2.0 client_credentials.

2.1 Endpoint para geração do token

Método: POST

URL:

https://api.assertivasolucoes.com.br/oauth2/v3/token

2.2 Configuração da requisição

Configure a requisição com:

  • Authorization: Basic Auth;

  • Username: Client ID;

  • Password: Secret;

  • Content-Type: application/x-www-form-urlencoded;

  • Parâmetro: grant_type=client_credentials.

Exemplo do corpo:

grant_type=client_credentials

2.3 Resposta do token

A resposta contém o token que deverá ser utilizado no envio dos SMS:

{ "access_token": "SEU_TOKEN_DE_ACESSO", "token_type": "bearer", "expires_in": 60, "scope": "ALL" }

O campo expires_in informa o tempo de validade do token em segundos. A aplicação deve considerar o valor retornado pelo serviço como referência para renovação do token.

2.4 Cabeçalho das requisições

Após gerar o token, envie-o no cabeçalho:

Authorization: Bearer SEU_TOKEN_DE_ACESSO

Também é recomendado utilizar:

Content-Type: application/json

Nunca exponha o Client ID, o Secret ou o token em aplicações front-end, repositórios públicos ou logs.


3. Envio de SMS

3.1 Endpoint

Método: POST

URL:

https://api.assertivasolucoes.com.br/sms/v3/send

O endpoint recebe uma lista de mensagens e permite configurar o recebimento de status e respostas dos destinatários.

3.2 Estrutura da requisição

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

Define o tipo de rota de envio.

arraySms

Sim

Lista de mensagens que serão enviadas.

3.3 Tipos de rota

O campo route_type aceita os seguintes valores:

Código

Tipo

Utilização

1

Exclusivo

Ideal para campanhas que precisam acompanhar as respostas.

2

Básico

Ideal para campanhas que não precisam acompanhar respostas.

5

Bet

Ideal para campanhas sem necessidade de acompanhamento de respostas e sem necessidade de envio rápido.

Quando o campo não é informado, a documentação indica que será utilizada a rota Exclusivo.

3.4 Estrutura de cada SMS

Cada item do campo arraySms deve conter:

Campo

Obrigatório

Descrição

number

Sim

Número de destino com 11 dígitos, incluindo o DDD.

message

Sim

Texto da mensagem, limitado a 600 caracteres.

filter_value

Não

Valor livre utilizado como referência no sistema integrado.

O número deve ser informado somente com dígitos, no formato:

11912345678

A mensagem pode conter até 600 caracteres. A documentação informa que:

  • Até 160 caracteres correspondem a 1 SMS;

  • Após 160 caracteres, a cobrança considera blocos de 152 caracteres.

3.5 Exemplo de requisição

POST https://api.assertivasolucoes.com.br/sms/v3/send

{ "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" } ] }

3.6 Limite de envio

O campo arraySms pode conter até 1.000 mensagens por requisição.

Antes do envio, valide:

  • Se a lista não está vazia;

  • Se não ultrapassa o limite permitido;

  • Se todas as mensagens possuem número;

  • Se todas as mensagens possuem conteúdo;

  • Se os números estão no formato correto;

  • Se as mensagens possuem até 600 caracteres.

3.7 Resposta do envio

A API retorna uma lista com os identificadores das mensagens enviadas.

Exemplo:

[ { "id_sms": "ID_DA_MENSAGEM", "number": "11912345678", "filter_value": "pedido-12345" } ]

O campo id_sms deve ser armazenado pela aplicação. Ele será utilizado para consultar o status e a resposta de cada SMS.


4. Recebimento de status por webhook

A API permite receber automaticamente as atualizações de entrega por meio de uma URL de callback.

Para ativar esse recurso:

  • Defina can_receive_status como true;

  • Informe a URL no campo webhook_status_url;

  • Certifique-se de que a URL aceite requisições POST.

4.1 Estrutura do status recebido

O webhook de status pode receber os seguintes campos:

Campo

Descrição

id_sms

Identificador da mensagem.

number

Número para o qual o SMS foi enviado.

filter_value

Valor de referência enviado na requisição.

status

Código numérico do status.

status_detail

Descrição detalhada do status.

Exemplo:

{ "id_sms": "ID_DA_MENSAGEM", "number": "11912345678", "filter_value": "pedido-12345", "status": 1, "status_detail": "Mensagem entregue no celular" }

4.2 Boas práticas para o webhook

O endpoint de callback deve:

  • Utilizar HTTPS;

  • Aceitar o método POST;

  • Validar o formato do JSON recebido;

  • Armazenar o id_sms;

  • Atualizar o status da mensagem de forma idempotente;

  • Responder rapidamente à API;

  • Evitar processar o mesmo evento mais de uma vez;

  • Registrar falhas para posterior reprocessamento.


5. Recebimento de respostas

Também é possível receber respostas enviadas pelos destinatários.

Para ativar o recurso:

  • Defina can_receive_answer como true;

  • Informe uma URL no campo webhook_answer_url;

  • Certifique-se de que a URL aceite requisições POST.

5.1 Estrutura da resposta recebida

Campo

Descrição

id_sms

Identificador do SMS original.

number

Número que enviou a resposta.

filter_value

Valor de referência informado no envio.

reply

Texto enviado pelo destinatário.

Exemplo:

{ "id_sms": "ID_DA_MENSAGEM", "number": "11912345678", "filter_value": "pedido-12345", "reply": "SIM" }

A aplicação pode utilizar o campo filter_value para relacionar a resposta ao pedido, cliente ou processo correspondente.


6. Consulta de status

A API disponibiliza um endpoint para consultar o status de um SMS já enviado.

Método: GET

Endpoint documentado:

/v3/status

URL base:

https://api.assertivasolucoes.com.br/sms/v3/status

A consulta utiliza o identificador id_sms da mensagem enviada.

A especificação disponibilizada descreve o parâmetro id_sms como identificador da mensagem. Confirme na documentação oficial o formato final da URL utilizado pelo ambiente, pois o arquivo de especificação apresenta o parâmetro associado ao endpoint sem explicitá-lo no caminho.

A resposta segue o modelo:

{ "id_sms": "ID_DA_MENSAGEM", "number": "11912345678", "filter_value": "pedido-12345", "status": 1, "status_detail": "Mensagem entregue no celular" }


7. Consulta de respostas

Também é possível consultar a resposta de um SMS utilizando seu identificador.

Método: GET

Endpoint documentado:

/v3/answer

URL base:

https://api.assertivasolucoes.com.br/sms/v3/answer

A consulta utiliza o id_sms da mensagem.

A resposta segue o modelo:

{ "id_sms": "ID_DA_MENSAGEM", "number": "11912345678", "filter_value": "pedido-12345", "reply": "SIM" }

Quando a mensagem ainda não recebeu uma resposta, a API poderá informar que nenhuma resposta foi encontrada.


8. Tabela de status

Código

Status

Detalhamento

Descrição

1

Enviado

Com confirmação

A operadora confirmou a chegada do SMS ao dispositivo do destinatário.

2

Enviado

Sem confirmação

A operadora não confirmou a chegada do SMS. O aparelho pode estar desligado ou fora de área.

3

Não enviado

Blacklist

O número está cadastrado em uma lista de bloqueio.

7

Não enviado

Com erro

Ocorreu uma falha no processo de envio.

10

Não enviado

Não me ligue

O número está cadastrado no serviço “Não me ligue” do Procon-SP.

11

Não enviado

Inválido

O número informado é inválido.

12

Andamento

Enviando

O SMS está em processo de envio.

13

Não enviado

Cancelado

O envio foi cancelado automaticamente por ausência de saldo.

14

Não enviado

Link inválido

O envio foi bloqueado devido à utilização de um link não validado previamente.


9. Detalhamento dos status

Entre os detalhamentos que podem ser retornados estão:

  • Mensagem entregue no celular;

  • Mensagem enviada para a operadora;

  • Mensagem recusada pela operadora;

  • Celular fora da área de cobertura;

  • Mensagem bloqueada por conteúdo proibido ou possível fraude;

  • Finalizadas as tentativas de entrega;

  • Bloqueado por lista de bloqueio;

  • Erro de processamento;

  • Bloqueado por “Não me ligue” do Procon;

  • Número do destinatário incorreto ou incompleto;

  • Enviando SMS;

  • Mensagem cancelada pelo sistema ou pelo usuário;

  • Bloqueado por link não validado previamente.


10. Tratamento de erros

A API pode retornar os seguintes erros:

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.

10.1 Mensagens relacionadas ao código 400

Entre os possíveis problemas estão:

  • arraySms não informado;

  • Lista de SMS vazia;

  • Mais de 1.000 SMS na mesma requisição;

  • can_receive_status não informado;

  • can_receive_answer não informado;

  • URL de webhook não informada quando necessária;

  • Mensagens não informadas;

  • Números não informados;

  • Mensagens com mais de 600 caracteres;

  • Parâmetros inválidos.

10.2 Problemas de autenticação

Em caso de erro 401:

  1. Confirme se o token foi gerado corretamente;

  2. Verifique se o cabeçalho utiliza o formato Bearer;

  3. Confira se o token não expirou;

  4. Gere um novo token;

  5. Valide se a aplicação possui permissão para utilizar a API SMS.

10.3 Problemas de permissão

O código 403 pode indicar:

  • Chave de acesso não informada;

  • A empresa não possui permissão para envio de SMS;

  • A aplicação não possui acesso ao produto.


11. Fluxo recomendado de integração

  1. Criar ou obter as credenciais de acesso.

  2. Gerar o token OAuth 2.0.

  3. Configurar os endpoints de webhook, se necessário.

  4. Validar os números e o conteúdo das mensagens.

  5. Enviar a lista de SMS.

  6. Armazenar cada id_sms.

  7. Acompanhar os status por webhook ou consulta.

  8. Processar as respostas dos destinatários.

  9. Atualizar o status no sistema interno.

  10. Implementar retentativas apenas para falhas temporárias.


12. Boas práticas

  • Armazene o id_sms de cada mensagem enviada.

  • Utilize o filter_value para relacionar o SMS a um pedido ou processo interno.

  • Não envie mensagens duplicadas sem validar o resultado da requisição anterior.

  • Valide se o número possui 11 dígitos e contém DDD.

  • Limite o texto a 600 caracteres.

  • Evite incluir dados sensíveis no conteúdo da mensagem.

  • Utilize HTTPS nos webhooks.

  • Responda rapidamente às notificações recebidas.

  • Implemente idempotência no processamento de status e respostas.

  • Registre o histórico de envio e entrega.

  • Não armazene tokens em logs.

  • Proteja as URLs de webhook e os dados recebidos.

  • Trate respostas de indisponibilidade e erro com retentativas controladas.

  • Consulte a documentação oficial para validar alterações de endpoint ou regras de rota.


13. Resumo dos endpoints

Funcionalidade

Método

Endpoint

Gerar token

POST

/oauth2/v3/token

Enviar SMS

POST

/sms/v3/send

Consultar status do SMS

GET

/sms/v3/status

Consultar resposta do SMS

GET

/sms/v3/answer


14. Documentação e suporte

Para consultar os modelos completos de requisição, respostas e regras de utilização, acesse a https://integracao.assertivasolucoes.com.br/v3/portal

Em caso de dúvidas ou dificuldades de integração, entre em contato com a Central da Assertiva:

Respondeu à sua pergunta?