POST /send-cta-url

Envia uma mensagem WhatsApp com 1 botão que abre um link externo. Útil pra link de pagamento, agendamento, página de produto.

Campo Valor
URL https://api.wevi.chat/functions/v1/send-cta-url
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

Formato de erro. Desde 8 de setembro de 2026, os erros deste endpoint saem no envelope padrão: error é um código estável (missing_connection_id) e a frase que você já conhecia (missing_connection_id) vai em message. O corpo de sucesso não mudou. A chave de teste wevi_test_ passou a valer aqui também.

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 object não { type, text/image_url/video_url/document_url, filename? }.
button object sim { text: string (max 20), url: string (http/https) }.
contact_id string (uuid) não Vincula ao contato.
idempotency_key string não Idempotência.

Exemplo

curl -X POST https://api.wevi.chat/functions/v1/send-cta-url \
  -H "Authorization: Bearer wevi_abc..." \
  -H "Content-Type: application/json" \
  -d '{
    "connection_id": "conn-uuid",
    "to": "+5511999999999",
    "body": "Seu pedido está pronto pra pagamento.",
    "footer": "Link expira em 30 min",
    "button": { "text": "Pagar agora", "url": "https://pay.exemplo.com/abc123" }
  }'

Resposta

Sucesso (200)

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

Erros principais

Status error
400 missing_body, missing_button_text, button.url is required ou button.url is invalid
400 button.url must be http(s)
401 invalid_api_key
404 connection_not_found

Diferença pro template com URL button

Templates já permitem botões URL (estáticos ou com placeholder). Use /send-cta-url quando:

  • Quer enviar dentro da janela de 24h sem template aprovado.
  • A URL muda a cada envio e você não quer criar template novo no Meta.

Fora da janela de 24h, use `POST /send-template` com um template aprovado.

Próximo

/send-location-request