8. Mensagens Agendadas#
POST/v1/instances/{instanceId}/messages/scheduled#
Agenda uma mensagem para envio futuro.
Auth: Todos autenticados
Header obrigatório: Idempotency-Key
Request:
json
{
"to": "554137984905",
"message_type": "text",
"payload": {
"text": "Lembrete: sua reuniao e amanha!"
},
"schedule_at": "2026-03-08T14:00:00Z"
}
| Campo | Tipo | Obrigatório | Descricao |
|---|---|---|---|
to |
string | sim | Destinatário |
message_type |
string | sim | Tipo: text, image, video, audio, document, sticker, location, contact, reaction, poll, template |
payload |
object | sim | Conteúdo da mensagem (mesmos campos do tipo correspondente, sem o campo to) |
schedule_at |
string | sim | Data/hora no formato RFC3339 (deve ser no futuro) |
Resposta 202:
json
{
"id": "sched_xxxx",
"status": "scheduled",
"schedule_at": "2026-03-08T14:00:00Z",
"task_id": "asynq:task:xxxx",
"idempotency_key": "sched-2026-03-21-0001"
}
Repetir a mesma chave para a mesma instância + tipo de mensagem reutiliza o mesmo agendamento, em vez de criar outro registro.
GET/v1/instances/{instanceId}/messages/scheduled#
Lista mensagens agendadas e já processadas da instância.
Auth: Todos autenticados
Query Parameters:
| Parametro | Tipo | Padrão | Descricao |
|---|---|---|---|
page |
int | 1 | Página |
per_page |
int | 20 | Itens por página (max 100) |
Resposta 200:
json
{
"data": [
{
"id": "sched_xxxx",
"to": "554137984905",
"message_type": "text",
"schedule_at": "2026-03-08T14:00:00Z",
"status": "scheduled",
"created_at": "2026-03-07T10:00:00Z"
}
],
"page": 1,
"per_page": 20
}
Status possíveis: scheduled, processing, sent, failed, cancelled
DELETE/v1/instances/{instanceId}/messages/scheduled/{scheduledId}#
Cancela uma mensagem agendada.
Auth: Todos autenticados
Resposta 200:
json
{
"id": "sched_xxxx",
"status": "cancelled"
}