Saltar al contenido principal
POST
/
api
/
message
/
event
/
:instance
Enviar evento
curl --request POST \
  --url https://api.example.com/api/message/event/:instance \
  --header 'Content-Type: <content-type>' \
  --header 'token: <token>' \
  --data '
{
  "number": "<string>",
  "name": "<string>",
  "startAt": "<string>",
  "endAt": "<string>",
  "description": "<string>",
  "location": {},
  "joinLink": "<string>",
  "isScheduleCall": true,
  "hasReminder": true,
  "reminderOffsetSec": 123,
  "extraGuestsAllowed": true,
  "isCanceled": true,
  "delay": 123,
  "replyTo": "<string>",
  "replyPrivate": true,
  "source": "<string>"
}
'
Auth: TokenAccount o TokenInstanceRate-limit: Global (100/min) • Idempotente: no

Descripción

Envía un mensaje de evento (tarjeta de reunión/agenda) a un contacto 1-a-1 o, más comúnmente, a un grupo (@g.us). Los campos startAt y endAt aceptan fechas en formato ISO 8601 (RFC3339) con zona horaria (p. ej., 2026-04-28T14:00:00-03:00) y se convierten a Unix (segundos) internamente. El evento puede incluir opcionalmente description, location, joinLink, un recordatorio (hasReminder + reminderOffsetSec) y flags como isScheduleCall y extraGuestsAllowed. Soporta delay, replyTo y replyPrivate.

Ejemplos

Reunión con ubicación y recordatorio

Crea un evento en un grupo con inicio y fin, una ubicación y un recordatorio 15 minutos antes (reminderOffsetSec: 900).
curl -X POST "https://ryzeapi.cloud/api/message/event/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "number":      "120363312345678901@g.us",
    "name":        "Reunión del equipo",
    "description": "Planificación del trimestre",
    "startAt":     "2026-04-28T14:00:00-03:00",
    "endAt":       "2026-04-28T16:00:00-03:00",
    "location":    { "name": "Sala 3, Sede", "address": "Av. Paulista, 1000" },
    "hasReminder":       true,
    "reminderOffsetSec": 900
  }'

Llamada programada con enlace

isScheduleCall: true marca el evento como una llamada y joinLink proporciona el enlace para unirse.
curl -X POST "https://ryzeapi.cloud/api/message/event/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "number":         "120363312345678901@g.us",
    "name":           "Daily del equipo",
    "startAt":        "2026-05-04T09:00:00-03:00",
    "isScheduleCall": true,
    "joinLink":       "https://meet.example.com/daily"
  }'

Respuesta exitosa

El content retornado es el nombre del evento, usado para indexar el mensaje en el historial. Guarda el messageId para correlacionar respuestas (going/not-going) recibidas vía webhook.
200 OK
{
  "success": true,
  "message": "Event sent successfully",
  "status":  "sent",
  "data": {
    "messageId":   "3EB08FCF27E532F1D3D3",
    "direction":   "sent",
    "messageType": "event",
    "content":     "Reunión del equipo",
    "source":      "api",
    "timestamp":   "2026-04-28T14:30:00Z",
    "chat": {
      "jid":     "120363312345678901@g.us",
      "isGroup": true
    },
    "sender": {
      "jid":      "5511777777777@s.whatsapp.net",
      "instance": "mi-instancia"
    }
  }
}
Las confirmaciones de asistencia de los participantes no llegan sincrónicamente en esta respuesta, fluyen como eventos en el webhook/WebSocket configurado, referenciando el messageId del evento.

Parámetros de ruta

instance
string
requerido
Nombre de la instancia (p. ej., $Instance_Name).

Cabeceras

token
string
requerido
TokenAccount o TokenInstance.
Content-Type
string
requerido
application/json

Cuerpo de la solicitud

number
string
requerido
Destino: teléfono (5511999999999) o JID. Los eventos funcionan mejor en grupos (@g.us).
name
string
requerido
Título del evento mostrado en la tarjeta.
startAt
string
requerido
Fecha/hora de inicio en formato ISO 8601 (RFC3339) con zona horaria, p. ej., 2026-04-28T14:00:00-03:00.
endAt
string
Fecha/hora de fin en formato ISO 8601 (RFC3339). Opcional.
description
string
Descripción/detalles del evento.
location
object
Ubicación del evento. Campos: name, address, latitude, longitude (todos opcionales).
Enlace para unirse (usado en llamadas programadas).
isScheduleCall
boolean
predeterminado:"false"
Marca el evento como una llamada programada.
hasReminder
boolean
predeterminado:"false"
Habilita un recordatorio para el evento.
reminderOffsetSec
int
predeterminado:"0"
Antelación del recordatorio, en segundos antes de startAt (p. ej., 900 = 15 min).
extraGuestsAllowed
boolean
predeterminado:"false"
Permite que los invitados traigan acompañantes.
isCanceled
boolean
predeterminado:"false"
Marca el evento como cancelado.
delay
int
predeterminado:"0"
Tiempo en segundos a esperar antes de enviar. Durante el intervalo, el servidor muestra el indicador “escribiendo…” al destinatario y dispara “pausado” antes del envío real.
replyTo
string
ID del mensaje a responder. El mensaje original debe pertenecer a la misma instancia y estar guardado en la base de datos.
replyPrivate
boolean
predeterminado:"false"
Cuando es true y replyTo apunta a un mensaje originado en un grupo, el evento se redirige al chat privado del autor original (manteniendo la cita).
source
string
predeterminado:"api"
Identificador de origen para trazabilidad (p. ej., crm, support-bot, n8n). Guardado en el registro del mensaje y propagado a los webhooks.

Notas

  • startAt/endAt son ISO 8601 (RFC3339) con zona horaria; el servidor los convierte a Unix (segundos).
  • delay es en segundos (no milisegundos); reminderOffsetSec también es en segundos.
  • Los eventos se muestran mejor en grupos (@g.us).
  • Las confirmaciones no regresan en esta llamada, suscríbete a eventos de webhook/WebSocket para recibirlas referenciando el messageId.

Errores

HTTPStatus internoMensaje
400,Instance name is required
400,Invalid request body: <detail>
400,Number is required
400,Name is required
400,startAt is required
400invalid_requestInvalid startAt, expected ISO 8601 (RFC3339): <detail>
400invalid_numberInvalid phone number format: <detail>
404,Instance not found
500send_failedFailed to send event: <reason>
503disconnectedInstance is not connected to WhatsApp
Envoltorio de error:
{
  "success": false,
  "error": { "message": "startAt is required" }
}