Saltar al contenido
Wbiztool

API de recordatorios

API para crear un recordatorio

Crea un mensaje de WhatsApp recurrente que se envía automáticamente según una programación. Úsala para recordatorios de pago, seguimientos semanales o diarios y otros mensajes que se repiten.

POSThttps://wbiztool.com/api/v1/reminder/create/

Cuerpo: JSON o campos de formulario

Describes la programación con una expresión cron y una zona horaria. Cada vez que se cumple la programación, Wbiztool pone en cola un mensaje para el número de teléfono o el grupo, igual que un mensaje enviado con Enviar mensaje. Los recordatorios que creas aquí también aparecen en la página de Recordatorios de tu panel, donde puedes pausarlos o editarlos.

Ejemplo rápido#

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

Este recordatorio se envía a las 10:00, hora de India, el día 1 de cada mes. Sustituye 12345, YOUR_API_KEY y 678 por tus propios valores. Consulta Autenticación para saber dónde encontrarlos.

Parámetros de la solicitud#

Envía los parámetros como cuerpo JSON o como campos de formulario. En JSON, envía todos los valores de texto (api_key, reminder_name, phone, message, cron_expression, timezone, img_url, file_name) como cadenas.

Autenticación

client_idintegerobligatorio

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

api_keystringobligatorio

Tu clave API, de esa misma página.

Remitente

whatsapp_clientintegeropcional

ID del número de WhatsApp desde el que se envía, de la configuración de WhatsApp. Si lo omites, o si el ID no está en tu espacio de trabajo, cada recordatorio se envía desde el primer número conectado de tu espacio de trabajo en el momento en que se ejecuta.

Recordatorio

reminder_namestringobligatorio

Un nombre para el recordatorio, que se muestra en la página de Recordatorios y está disponible en el mensaje como {reminder_name}.

phonestringobligatorio

El número de WhatsApp del destinatario con su código de país, por ejemplo 919876543210. No hay un parámetro country_code aparte. Se eliminan los espacios, +, -, . y los paréntesis, y también un 0 inicial (hasta dos ceros iniciales en un cuerpo JSON). Un valor que no esté formado solo por dígitos se trata como nombre de un grupo de WhatsApp.

messagestringobligatorio

El texto del mensaje. Puede incluir variables de plantilla que se rellenan cada vez que se ejecuta el recordatorio. El formato de WhatsApp funciona: *bold*, _italic_, ~strikethrough~.

cron_expressionstringobligatorio

Cuándo enviar, como expresión cron de cinco campos, por ejemplo 0 9 * * 1-5. Consulta Expresiones cron.

timezonestringopcional

La zona horaria en la que se ejecuta la expresión cron, como nombre de zona horaria IANA, por ejemplo Asia/Kolkata, America/New_York o Europe/London. Omítelo para usar UTC. Una cadena vacía devuelve Invalid timezone. Consulta la Referencia de zonas horarias para ver la lista completa.

Imágenes y archivos

msg_typeintegeropcional

0 texto (predeterminado), 1 imagen o 2 archivo, con message como pie de foto. Cualquier otro valor se trata como 0.

img_urlstringObligatorio cuando msg_type es 1 o 2

URL pública http o https de la imagen, o del archivo si msg_type es 2, de hasta 1.000 caracteres. Se descarga cada vez que se ejecuta el recordatorio, así que mantén el enlace activo. Puedes alojar archivos con la API de subida de medios.

file_namestringObligatorio cuando msg_type es 2

Para msg_type 2, el nombre del archivo con su extensión, de hasta 100 caracteres, por ejemplo invoice.pdf. Se ignora en los demás tipos de mensaje.

Expresiones cron#

Una expresión cron son cinco valores separados por espacios. El recordatorio se ejecuta siempre que la hora actual en timezone coincide con los cinco:

┌───────── minute        (0-59)
│ ┌─────── hour          (0-23)
│ │ ┌───── day of month  (1-31)
│ │ │ ┌─── month         (1-12)
│ │ │ │ ┌─ day of week   (0-7, where 0 and 7 are Sunday)
│ │ │ │ │
0 9 * * 1-5
SímboloSignificadoEjemplo
*Todos los valores* en el campo de la hora significa cada hora.
,Una lista de valores9,18 en el campo de la hora significa a las 9:00 y a las 18:00.
-Un rango1-5 en el campo del día de la semana significa de lunes a viernes.
/Un intervalo*/6 en el campo de la hora significa cada 6 horas.

Ejemplos habituales#

ExpresiónSe ejecuta
0 9 * * *Todos los días a las 9:00
0 9 * * 1-5De lunes a viernes a las 9:00
0 9 * * 1Todos los lunes a las 9:00
30 18 * * 0Todos los domingos a las 18:30
0 9,18 * * *Todos los días a las 9:00 y a las 18:00
0 */6 * * *Cada 6 horas, en punto
*/30 9-17 * * 1-5Cada 30 minutos de 9:00 a 17:30, de lunes a viernes
0 9 1 * *El día 1 de cada mes a las 9:00
0 10 15 * *El día 15 de cada mes a las 10:00
0 8 1 1 *Cada 1 de enero a las 8:00

Las horas están en la timezone del recordatorio. Usa solo cinco campos: no añadas un campo de segundos ni atajos como @daily.

Variables de plantilla#

Estos marcadores de message se sustituyen cada vez que se ejecuta el recordatorio. Las fechas y horas están en la timezone del recordatorio.

VariableSe sustituye porEjemplo
{current_date}Fecha2026-10-01
{current_date_formatted}Fecha en palabras, con el día rellenado con un ceroOctober 01, 2026
{current_time}Hora en formato de 24 horas09:00:00
{current_time_12h}Hora en formato de 12 horas09:00 AM
{current_datetime}Fecha y hora2026-10-01 09:00:00
{timezone}El valor de timezoneAsia/Kolkata
{timezone_short}Abreviatura de la zona horariaIST
{reminder_name}El valor de reminder_nameMonthly rent reminder
{to_number}El valor guardado de phone919876543210
{client_name}Nombre del propietario del espacio de trabajo
{organisation_name}Nombre de tu espacio de trabajo

Recordatorio con imagen#

Recordatorio semanal con imagen
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": "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"
  }'

El ejemplo de PHP envía campos de formulario en lugar de JSON. Las dos opciones funcionan.

Respuesta#

Una solicitud correcta devuelve HTTP 200:

{
  "reminder_id": 3187,
  "message": "Reminder created successfully",
  "status": 1
}
CampoTipoDescripción
statusinteger1 si se creó el recordatorio, 0 si la solicitud falló.
messagestringReminder created successfully; en caso contrario, el error.
reminder_idintegerID del nuevo recordatorio. Guárdalo para cancelar el recordatorio más adelante. Solo aparece si la solicitud es correcta.

Los recordatorios nuevos están activos de inmediato.

Errores#

Los errores devuelven HTTP 400 con status con valor 0, salvo que se indique lo contrario:

{ "status": 0, "message": "Invalid timezone" }
MensajeCómo solucionarlo
Invalid JSON format: …El cuerpo JSON no es válido, a menudo por una coma final o un salto de línea sin escapar en message. Usa \n para los saltos de línea. También recibes este error en una solicitud de formulario sin client_id o en cualquier solicitud GET.
Invalid client id.Envía client_id como número.
Reminder name cannot be nullAñade reminder_name.
Phone number cannot be nullAñade phone.
Message template cannot be nullAñade message.
Cron expression cannot be nullAñade cron_expression.
Auth Error - Please send correct API key and Client idEnvía un api_key que no esté vacío.
Invalid cron expressionComprueba que la expresión tenga cinco campos válidos. Consulta Expresiones cron.
Invalid timezoneUsa un nombre IANA como Asia/Kolkata, no una abreviatura como IST.
Image URL cannot be null for image messagesPara msg_type 1, envía img_url.
File URL cannot be null for file messagesPara msg_type 2, envía file_name.
Auth Error: invalid api keyLa clave pertenece a otro client_id.
Auth Error: please check client idLa clave no está vinculada a ningún espacio de trabajo. Crea una clave nueva en el espacio de trabajo que quieras usar.
Demo Account cannot access APIsUsa una cuenta normal.
Not enough creditsTu plan no tiene mensajes disponibles.
Upgrade your plan to use reminders featureTu plan no incluye recordatorios. Mejora tu plan.
WhatsApp Logged Out. Please Reconnect!!El número de whatsapp_client está desconectado. Vuelve a conectarlo en la configuración de WhatsApp.
Invalid WhatsApp client idEnvía whatsapp_client como número.
Error creating reminder: … (HTTP 500)No se pudo guardar el recordatorio. Revisa los valores que enviaste, por ejemplo que img_url tenga 1.000 caracteres o menos y file_name 100 o menos.

Cómo se ejecutan los recordatorios#

  • La programación se evalúa en la timezone del recordatorio, y el mensaje se pone en cola cuando la hora actual coincide con la expresión cron.
  • Cada ejecución crea un mensaje normal que se envía desde tu número de WhatsApp, así que el número debe seguir conectado.
  • Una ejecución se omite si tu espacio de trabajo no tiene créditos, o si no se indicó whatsapp_client y no hay ningún número conectado en tu espacio de trabajo en ese momento.
  • Si se indicó whatsapp_client, cada ejecución se pone en cola en ese número aunque se haya desconectado desde entonces, y espera allí. No se recurre a otro número.
  • Los recordatorios se revisan periódicamente, no al segundo, y después el mensaje espera en la cola de envío como cualquier otro. No cuentes con una puntualidad exacta. Si una revisión se retrasa, la ejecución se envía igualmente con hasta 10 minutos de retraso (hasta 1 minuto en la primera ejecución de un recordatorio); pasado ese tiempo, se omite. La misma ejecución nunca se envía dos veces.

Consejos#

  • Listar y limpiar: obtén tus recordatorios y sus IDs con Listar recordatorios, y detén uno con Cancelar recordatorio.
  • Pausar y editar no está disponible a través de la API. Usa la página de Recordatorios de tu panel.
  • Muchos recordatorios a la vez: la página de Recordatorios también permite importar recordatorios desde un archivo CSV.
  • Saltos de línea en JSON: escríbelos como \n dentro de message. Un salto de línea literal hace que el JSON no sea válido.