Saltar al contenido
Wbiztool

API de mensajería

API de cancelación de mensajes

Cancela un mensaje de WhatsApp que aún no se ha enviado. Úsala para detener un recordatorio programado cuando se cancela una cita, o para retirar un mensaje en cola que se envió por error.

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

Cuerpo: JSON o campos de formulario

Puedes cancelar cualquier mensaje que siga esperando a enviarse (estado 0, Created): mensajes programados y mensajes puestos en cola por Enviar mensaje, Enviar a un grupo o Enviar a varios números. Un mensaje que ya se envió no se puede recuperar. Si un bot ya está enviando el mensaje en ese momento, puede que igualmente salga, así que para cancelaciones críticas confírmalo con Estado del mensaje.

Ejemplo 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
  }'

Sustituye 12345 y YOUR_API_KEY por tus propios valores, y 9817263 por el msg_id que recibiste al enviar o programar el mensaje.

Parámetros de la solicitud#

client_idintegerobligatorio

Tu ID de cliente de la API, de Configuración → Claves API.

api_keystringobligatorio

Tu clave API, de esa misma página.

msg_idintegerobligatorio

El msg_id que devolvió la solicitud de envío o de programación. Debe pertenecer al espacio de trabajo de tu clave API.

Este endpoint no necesita whatsapp_client.

Usar los clientes oficiales#

Los clientes de Python y Node.js llaman a este endpoint por ti.

from wbiztool_client import WbizToolClient

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

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

Ambos clientes lanzan una excepción ante errores de autenticación (HTTP 400/403): Python lanza requests.HTTPError y Node.js lanza API error: 400 - {…}. Una respuesta Msg has been … llega como un resultado normal con status: 0.

Respuesta#

Una solicitud correcta devuelve HTTP 200:

{
  "message": "Cancelled",
  "status": 1
}
CampoTipoDescripción
statusinteger1 si el mensaje se canceló, 0 si no.
messagestringCancelled si todo va bien; en caso contrario, el motivo.

Tras la cancelación, Estado del mensaje indica el mensaje como 3 (Cancelled). Un mensaje cancelado no se envía, no activa su webhook y deja de contar contra tus créditos restantes.

Errores#

La mayoría de los errores devuelven HTTP 200 con status con valor 0, así que revisa siempre status en el cuerpo:

{ "message": "Msg has been Sent", "status": 0 }
MensajeCómo solucionarlo
Msg has been SentEl mensaje ya se envió. No se puede cancelar.
Msg has been FailedEl mensaje ya falló, así que no hay nada que cancelar.
Msg has been CancelledEl mensaje ya se había cancelado antes.
Msg has been ExpiredEl mensaje caducó antes de enviarse, así que no hay nada que cancelar.
No msg found for given msg_idRevisa el msg_id. Debe ser un número y pertenecer al mismo espacio de trabajo que tu clave API.
Msg_id cant be nullAñade msg_id.
Auth ErrorEnvía client_id y api_key.
Invalid Client IdEnvía client_id como número. Se devuelve con HTTP 403.
Auth Error: invalid api keyComprueba que la clave existe, que no se ha eliminado y que pertenece a este client_id. Se devuelve con HTTP 400.
Invalid JSON format: …El cuerpo JSON no es válido, a menudo por una coma final, o enviaste campos de formulario sin client_id.
Objeto vacío {}Se envió un cuerpo JSON con un método distinto de POST.

Consejos#

  • Guarda cada msg_id: lo necesitas para cancelar. En Enviar a varios números, cancela por separado cada msg_id de la respuesta.
  • Cancela pronto: una vez enviado, un mensaje no se puede deshacer, así que cancela los mensajes programados en cuanto sepas que ya no hacen falta.
  • Reprogramar: no hay ningún endpoint para cambiar la hora programada. Cancela el mensaje y programa uno nuevo.
  • Da por terminados los mensajes que ya tienen un estado final: una respuesta Msg has been … significa que el mensaje ya no está en la cola, así que no necesitas reintentar.