POST /send-list

Envia uma mensagem WhatsApp com lista de opções em seções (até 10 rows totais). Útil pra menu, escolha de horário, planos, etc.

Campo Valor
URL https://api.wevi.chat/functions/v1/send-list
Método POST
Auth Authorization: Bearer wevi_...
Content-Type application/json
Rate limit 60 req/min por API key
Plano necessário Pro ou Ultra

Body

Campo Tipo Obrigatório Descrição
connection_id string (uuid) sim ID da conexão WhatsApp.
to string sim Telefone destino.
body string sim Texto principal. Max 1024.
footer string não Rodapé. Max 60.
header_text string não Header em texto (lista não aceita mídia). Max 60.
button_text string sim Rótulo do botão que abre a lista. Max 20.
sections array sim 1+ seções. Cada uma: { title?, rows: [{ id?, title, description? }] }.
contact_id string (uuid) não Vincula ao contato.
idempotency_key string não Idempotência.

Limites das seções/rows:

  • Máximo 10 rows somando todas as seções.
  • section.title opcional, max 24 chars.
  • row.title obrigatório, max 24 chars.
  • row.description opcional, max 72 chars.

Exemplo

curl -X POST https://api.wevi.chat/functions/v1/send-list \
  -H "Authorization: Bearer wevi_abc..." \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "conn-uuid",
    "to": "+5511999999999",
    "body": "Escolha um horário disponível:",
    "button_text": "Ver horários",
    "sections": [
      {
        "title": "Hoje",
        "rows": [
          { "id": "slot_1430", "title": "14:30", "description": "30 min" },
          { "id": "slot_1500", "title": "15:00", "description": "30 min" }
        ]
      },
      {
        "title": "Amanhã",
        "rows": [
          { "id": "slot_0900", "title": "09:00" },
          { "id": "slot_0930", "title": "09:30" }
        ]
      }
    ]
  }'

Resposta

Sucesso (200)

{ "id": "envio-uuid", "wamid": "wamid.HBgN...", "status": "sent" }

Erros principais

Status error
400 body is required, button_text is required, 'sections' must be a non-empty array
400 max 10 rows across all sections, row.title max 24 chars
401 Invalid API key
404 Connection not found

Como o cliente responde

O cliente abre a lista, escolhe um row. O WhatsApp envia type: "interactive" com interactive.list_reply. A Wevi persiste no histórico como mensagem do contato, com metadata.kind = "interaction_reply" e metadata.payload.id = o id do row selecionado. O title do row chega como content da mensagem.

Próximo

/send-cta-url