Pular para o conteúdo
Wbiztool

API de mensagens

API de cancelamento de mensagens

Cancele uma mensagem de WhatsApp que ainda não foi enviada. Use-a para interromper um lembrete agendado depois que uma consulta for cancelada, ou para retirar da fila uma mensagem enviada por engano.

POSThttps://wbiztool.com/api/v1/cancel_msg/

Corpo: JSON ou campos de formulário

Você pode cancelar qualquer mensagem que ainda esteja aguardando envio (status 0, Criada): mensagens agendadas e mensagens colocadas na fila por Enviar mensagem, Enviar para um grupo ou Enviar para vários números. Uma mensagem que já foi enviada não pode ser recuperada. Se um bot já estiver enviando a mensagem nesse momento, ela ainda pode sair; por isso, em cancelamentos críticos, confirme com Status da mensagem.

Exemplo rápido#

curl -X POST https://wbiztool.com/api/v1/cancel_msg/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "msg_id": 9817263
  }'

Substitua 12345 e YOUR_API_KEY pelos seus próprios valores, e 9817263 pelo msg_id que você recebeu ao enviar ou agendar a mensagem.

Parâmetros da requisição#

client_idintegerobrigatório

Seu ID do Cliente da API, em Configurações → Chaves API.

api_keystringobrigatório

Sua chave de API, na mesma página.

msg_idintegerobrigatório

O msg_id retornado pela requisição de envio ou agendamento. Ele precisa pertencer ao espaço de trabalho da sua chave de API.

Este endpoint não precisa de whatsapp_client.

Usar os clientes oficiais#

Os clientes para Python e Node.js chamam este endpoint para você.

from wbiztool_client import WbizToolClient

client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)

result = client.cancel_message(msg_id=9817263)
print(result)

Os dois clientes lançam uma exceção em erros de autenticação (HTTP 400/403): o Python lança requests.HTTPError, e o Node.js lança API error: 400 - {…}. Uma resposta Msg has been … volta como um resultado normal, com status: 0.

Resposta#

Uma requisição bem-sucedida retorna HTTP 200:

{
  "message": "Cancelled",
  "status": 1
}
CampoTipoDescrição
statusinteger1 se a mensagem foi cancelada, 0 se não foi.
messagestringCancelled em caso de sucesso; caso contrário, o motivo.

Depois do cancelamento, Status da mensagem informa a mensagem como 3 (Cancelada). Uma mensagem cancelada não é enviada, não dispara seu webhook e deixa de contar contra seus créditos restantes.

Erros#

A maioria dos erros retorna HTTP 200 com status igual a 0, então sempre verifique status no corpo:

{ "message": "Msg has been Sent", "status": 0 }
MensagemComo corrigir
Msg has been SentA mensagem já foi enviada. Ela não pode ser cancelada.
Msg has been FailedA mensagem já falhou, então não há nada para cancelar.
Msg has been CancelledA mensagem já foi cancelada antes.
Msg has been ExpiredA mensagem expirou antes de ser enviada, então não há nada para cancelar.
No msg found for given msg_idVerifique o msg_id. Ele precisa ser um número e pertencer ao mesmo espaço de trabalho da sua chave de API.
Msg_id cant be nullAdicione msg_id.
Auth ErrorEnvie client_id e api_key.
Invalid Client IdEnvie client_id como número. Retornado com HTTP 403.
Auth Error: invalid api keyVerifique se a chave existe, não foi excluída e pertence a este client_id. Retornado com HTTP 400.
Invalid JSON format: …O corpo JSON não é válido, geralmente por causa de uma vírgula sobrando no final, ou você enviou campos de formulário sem client_id.
Objeto vazio {}Um corpo JSON foi enviado com um método diferente de POST.

Dicas#

  • Guarde cada msg_id: você precisa dele para cancelar. Em Enviar para vários números, cancele cada msg_id da resposta separadamente.
  • Cancele cedo: depois que uma mensagem é enviada, ela continua enviada, então cancele as mensagens agendadas assim que souber que não são mais necessárias.
  • Reagendamento: não há endpoint para alterar um horário agendado. Cancele a mensagem e agende uma nova.
  • Considere concluídas as mensagens já finalizadas: uma resposta Msg has been … significa que a mensagem não está mais na fila, então não é preciso tentar novamente.