Saltar al contenido
WbizTool

Envía recordatorios de WhatsApp recurrentes con la API

Envía el mismo mensaje de WhatsApp según una programación (el alquiler mensual, un horario semanal, un aviso diario) desde tu propio número. Crea el recordatorio una vez con una expresión cron y una zona horaria, y WbizTool pone el mensaje en cola cada vez que coincide. Los recordatorios están en todos los planes de pago, desde $25 al mes en EE. UU. (tu precio aparece en Precios).

Los recordatorios requieren un plan de pago: desde $25 al mes en EE. UU.

Cómo funciona

  1. Obtén tu clave API y vincula tu número

    Vincula tu número de WhatsApp en la página Números de WhatsApp con un código QR o un código de vinculación, y crea una clave en Configuración → Claves API. Los recordatorios requieren un plan de pago (Lite, Standard, Advanced o Enterprise).

  2. Elige la programación

    Escríbela como una expresión cron de cinco campos: 0 10 1 * * son las 10:00 del día 1 de cada mes, 0 9 * * 1-5 las 9:00 de lunes a viernes. Añade una zona horaria IANA como Asia/Kolkata.

  3. Crea el recordatorio

    Haz un POST a /api/v1/reminder/create/ con reminder_name, phone, message, cron_expression y timezone. Guarda el reminder_id de la respuesta.

  4. Lístalo o cancélalo más tarde

    /api/v1/reminder/list/ devuelve tus recordatorios, 50 por página. /api/v1/reminder/cancel/ con el reminder_id detiene uno para siempre, por ejemplo cuando el cliente paga.

Ejemplos de código en API de recordatorios

Crear un recordatorio mensual
curl -X POST https://wbiztool.com/api/v1/reminder/create/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "reminder_name": "Monthly rent reminder",
    "phone": "919876543210",
    "message": "Hi Aman, a reminder that your rent is due on {current_date_formatted}.",
    "cron_expression": "0 10 1 * *",
    "timezone": "Asia/Kolkata"
  }'
Crear un recordatorio en Python
import requests

response = requests.post(
    "https://wbiztool.com/api/v1/reminder/create/",
    json={
        "client_id": 12345,
        "api_key": "YOUR_API_KEY",
        "whatsapp_client": 678,
        "reminder_name": "Monthly rent reminder",
        "phone": "919876543210",
        "message": "Hi Aman, a reminder that your rent is due on {current_date_formatted}.",
        "cron_expression": "0 10 1 * *",
        "timezone": "Asia/Kolkata",
    },
    timeout=60,
)

try:
    result = response.json()  # read the body even when the HTTP code is 400
except ValueError:
    raise SystemExit(f"HTTP {response.status_code}: not JSON. Send every text value as a string.")

if result["status"] == 1:
    print("Reminder created with reminder_id", result["reminder_id"])
else:
    print("Failed:", result["message"])
Un recordatorio semanal con imagen
import requests

response = requests.post(
    "https://wbiztool.com/api/v1/reminder/create/",
    json={
        "client_id": 12345,
        "api_key": "YOUR_API_KEY",
        "whatsapp_client": 678,
        "reminder_name": "Weekly class timetable",
        "phone": "919876543210",
        "msg_type": 1,
        "img_url": "https://example.com/timetable.png",
        "message": "Here is this week's timetable.",
        "cron_expression": "0 8 * * 1",
        "timezone": "Asia/Kolkata",
    },
    timeout=60,
)
print(response.status_code, response.text)
Listar tus recordatorios
curl -X POST https://wbiztool.com/api/v1/reminder/list/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "page": 1
  }'
Cancelar un recordatorio
curl -X POST https://wbiztool.com/api/v1/reminder/cancel/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "reminder_id": "3187"
  }'

Lo que puedes hacer

  • Cualquier programación que cron pueda expresar

    Cada día a las 9:00 (0 9 * * *), cada lunes (0 9 * * 1), dos veces al día (0 9,18 * * *), el día 15 de cada mes (0 10 15 * *) o cada 6 horas (0 */6 * * *).

  • Fechas rellenadas por ti

    Variables como {current_date_formatted}, {current_time_12h} y {reminder_name} se sustituyen cada vez que se ejecuta el recordatorio, en su propia zona horaria.

  • Imágenes y archivos

    msg_type 1 envía una imagen desde img_url. Para un archivo, usa msg_type 2 con la URL pública del archivo en img_url y su nombre en file_name.

  • Visibles en tu panel

    Los recordatorios creados por la API también aparecen en la página Recordatorios, donde puedes pausarlos o editarlos. Esa página también permite importar muchos recordatorios desde una hoja CSV o Excel.

  • Envía desde el número que elijas

    Indica whatsapp_client para elegir el número. Si lo omites, cada ejecución usa un número que esté conectado en ese momento.

Conviene saber

  • Los recordatorios requieren un plan de pago. En la prueba gratuita, la API responde Upgrade your plan to use reminders feature.
  • Usa nombres de zonas horarias IANA como Asia/Kolkata o America/Chicago. Las abreviaturas como IST o CST se rechazan con Invalid timezone; sin zona horaria, la programación funciona en UTC.
  • phone lleva el número con su código de país, como 919876543210: este endpoint no tiene campo country_code.
  • La API no tiene llamadas para editar ni pausar. Para cambiar una programación, cancela el recordatorio y crea uno nuevo; para pausarlo, usa la página Recordatorios.
  • Los recordatorios se revisan periódicamente, no al segundo, así que un envío puede salir hasta 10 minutos después de su hora; si una revisión llega más tarde que eso, el envío se omite. Cada envío cuenta en los 1.000 mensajes al día del número.
  • En la lista de recordatorios, next_run se calcula como si la zona horaria del recordatorio fuera UTC. Consulta la página Recordatorios para ver la hora correcta del próximo envío.
  • Si un campo de texto como phone, message o reminder_name se envía como número, true o null, la respuesta es una página de error HTML (HTTP 500), así que envía los valores de texto como cadenas y gestiona un cuerpo que no sea JSON, como hace el ejemplo de Python.
  • Si el número whatsapp_client tiene la sesión cerrada cuando creas el recordatorio, la API lo rechaza con WhatsApp Logged Out. Please Reconnect!!
  • Los mensajes salen desde tu propio número de WhatsApp, así que se aplican las reglas de WhatsApp: escribe a personas que esperan saber de ti.

Preguntas frecuentes

¿Qué diferencia hay entre un recordatorio y un mensaje programado?
Un mensaje programado (/api/v1/schedule_msg/) sale una sola vez, en la fecha y la hora que indicas. Un recordatorio se repite según su programación cron hasta que lo cancelas.
¿Cómo detengo un recordatorio cuando el cliente paga?
Llama a /api/v1/reminder/cancel/ con su reminder_id. Se detiene al momento y no volverá a ejecutarse. Un mensaje que ya hubiera puesto en cola antes de cancelarlo todavía puede enviarse.
¿Puedo pausar o editar un recordatorio por la API?
Todavía no. Páusalo o edítalo en la página Recordatorios de tu panel, o cancélalo y crea uno nuevo con la nueva programación.
¿Un recordatorio puede enviar un PDF?
Sí. Usa msg_type 2, pon la URL pública del archivo en img_url y su nombre con la extensión (como invoice.pdf) en file_name. El archivo se descarga cada vez que se ejecuta el recordatorio, así que mantén el enlace activo.
¿Qué planes incluyen recordatorios?
Todos los planes de pago: Lite (1 número), Standard (3 números) y Advanced (10 números), a $25, $59 y $149 al mes en EE. UU.; la página de Precios muestra el precio de tu país. Todos envían mensajes ilimitados con uso justo. La prueba gratuita no incluye recordatorios.

Lee las guías

Relacionado

Envía hoy tu primer mensaje automatizado de WhatsApp

Crea una cuenta, escanea el código QR y envía un mensaje en menos de cinco minutos.

Empieza gratis

Planes de pago desde $25 al mes en EE. UU. Precios