Saltar al contenido
WbizTool

API v2 (beta)

Bajas

Una baja es una persona que no quiere los mensajes de tu espacio de trabajo. A un número dado de baja nunca se le envía nada: un mensaje nuevo para él se rechaza, y los mensajes puestos en cola antes fallan con el error Opted out en lugar de salir. Funciona con todas las formas de enviar: la API (v1 y v2), el panel, las campañas, los mensajes de plantilla, los recordatorios, Google Sheets y Shopify.

La lista es la misma que la pestaña Dados de baja de Contactos en el panel.

OperaciónEndpointPermiso
Dar de baja un númeroPOST /api/v2/opt-outscontacts
Listar bajasGET /api/v2/opt-outscontacts
Obtener una bajaGET /api/v2/opt-outs/{phone}contacts
Reactivar un númeroDELETE /api/v2/opt-outs/{phone}contacts

Las respuestas STOP se añaden solas#

Cuando alguien responde a uno de tus números de bandeja de entrada con un mensaje que es solo una palabra de baja, queda dado de baja por sí mismo, con source reply y su mensaje como keyword. Un mensaje que es solo START (o Subscribe) lo reactiva.

  • Las palabras, en mayúsculas o minúsculas y con o sin signos de puntuación: STOP, Stop all, Unsubscribe, Opt out, Baja, Parar, Sair, Stopp, Abmelden, Arrêt, Désabonner, Basta, Disiscrivi, Стоп, Отписаться, Berhenti, Dur, توقف, إلغاء الاشتراك, עצור, הסר.
  • Solo cuenta un mensaje que sea únicamente la palabra: "por favor, deja de enviarme la lista de precios" no da de baja a nadie.
  • Hace falta la bandeja de entrada en el número al que responden, porque solo los números de bandeja de entrada leen los mensajes recibidos. Las respuestas de hace más de 7 días, como las que se leen al añadir un número de bandeja de entrada, no cuentan.
  • No se les envía nada de vuelta, y ninguna respuesta automática contesta al STOP.

Dar de baja un número#

POSThttps://wbiztool.com/api/v2/opt-outs

Cuerpo: JSON (application/json)

Cuerpo

phonestringobligatorio

El número en formato internacional con + (+919876543210). Los espacios, guiones y paréntesis se ignoran. También sirve un @username de Telegram.

notestringopcional

El motivo, para tu equipo, de hasta 200 caracteres. Se muestra en la pestaña Dados de baja.

curl -X POST https://wbiztool.com/api/v2/opt-outs \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+919876543210", "note": "Asked by email"}'

Respuesta: 201 con la baja. Un número que ya estaba dado de baja responde 200 con su entrada existente, sin cambios.

{
  "recipient": "+919876543210",
  "source": "api",
  "keyword": null,
  "note": "Asked by email",
  "created_at": "2026-10-26T09:12:03.120Z"
}

Errores#

HTTPCódigoCuándo
400validation_failednote no es texto o tiene más de 200 caracteres
422invalid_phoneFalta phone o no es un número de teléfono

Listar bajas#

GEThttps://wbiztool.com/api/v2/opt-outs

Todas las personas que se dieron de baja, de la más reciente a la más antigua, en páginas (limit de 1 a 100, predeterminado 25, y cursor). Añade phone para buscar un solo número.

curl "https://wbiztool.com/api/v2/opt-outs?limit=100" \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{
  "data": [
    { "recipient": "+919876543210", "source": "reply", "keyword": "STOP", "note": null, "created_at": "2026-10-26T09:12:03.120Z" }
  ],
  "next_cursor": null
}

Obtener una baja#

GEThttps://wbiztool.com/api/v2/opt-outs/{phone}

El número va en la dirección en formato internacional sin + (919876543210). Responde 404 opt_out_not_found cuando el número no se ha dado de baja, así que es una comprobación rápida antes de enviar.

curl https://wbiztool.com/api/v2/opt-outs/919876543210 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"

Reactivar un número#

DELETEhttps://wbiztool.com/api/v2/opt-outs/{phone}

A partir de ahora, los mensajes al número vuelven a salir. Los mensajes que ya fallaron como Opted out siguen fallidos. Hazlo solo cuando la persona haya vuelto a pedir tus mensajes.

curl -X DELETE https://wbiztool.com/api/v2/opt-outs/919876543210 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{ "recipient": "+919876543210", "deleted": true }

Un número que no estaba dado de baja responde 404 opt_out_not_found.

Enviar a un número dado de baja#

  • POST /messages responde 422 recipient_opted_out, y no se pone nada en cola. En un lote, se rechaza el lote entero y el field del error indica la entrada.
  • Un mensaje puesto en cola antes de que la persona se diera de baja falla con error Opted out cuando le toca, y un webhook recibe message.failed.
  • La API v1 pone el mensaje en cola y este falla con Opted out, como verás en el estado del mensaje.
  • Reintentar fallidos de las campañas omite estos mensajes.

El objeto Opt-out#

CampoTipoDescripción
recipientstring+ y el número, o un @username de Telegram
sourcestringreply: respondió STOP a un número de bandeja de entrada. dashboard: añadido en Contactos. import: desde un CSV en Contactos. api: esta API
keywordstring or nullLa respuesta que lo dio de baja, tal como la escribió
notestring or nullLa nota de tu equipo
created_atstringCuándo se dio de baja (ISO 8601, UTC)

Relacionado#