Mensagens Agendadas

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