Documentação

Mensagens

POST /messages envia qualquer tipo de mensagem que a Cloud API aceita. O corpo leva o numberId que envia, o destinatário em E.164 (dígitos com o código do país, com ou sem +) e um objeto message discriminado por type.

curl -X POST https://zaiped.com/v1/messages \
  -H "Authorization: Bearer zp_..." \
  -H "Content-Type: application/json" \
  -d '{
    "numberId": "YOUR_NUMBER_ID",
    "to": "5511999999999",
    "message": { "type": "text", "text": "Olá, aqui é a Zaiped" }
  }'

Tipos de mensagem

  • text: text, previewUrl.
  • image, video, audio, document, sticker: media como { path } (um mediaId de POST /media) ou { link } (uma URL pública), mais caption e fileName.
  • location: latitude, longitude, name, address.
  • contacts: uma lista de { name, phone, email }.
  • reaction: wamid e emoji.
  • buttons: até três botões de resposta com header, body e footer.
  • list: seções de linhas atrás de um botão.
  • cta_url: um corpo com um botão de link.
  • carousel: cards com mídia e um botão de URL ou de resposta cada.
  • location_request e call_permission: um corpo que pede ao cliente a localização ou a permissão para ligar.
  • flow: um WhatsApp Flow por flowId, com o texto do CTA.
  • product, product_list e catalog_message: itens do catálogo Meta ligado.
  • template: templateId e values, um mapa de variável para texto (variáveis do corpo pelo nome ou pela posição; cabeçalho e botões pela chave do slot).

A janela de 24 horas

A Meta só aceita mensagem livre dentro de 24 horas depois da última mensagem do cliente. Quando o destinatário é conhecido e a janela está fechada, a API responde 400 com meta_window_closed antes de chamar a Meta. Modelos são aceitos a qualquer hora.

O que volta

A resposta traz o wamid que a Meta atribuiu e um status: accepted, ou held_for_quality_assessment quando a Meta segura uma mensagem enviada com um modelo novo. Entrega, leitura e falha chegam depois como eventos message.status no webhook.

  • POST /messages/{wamid}/read marca uma mensagem recebida como lida, opcionalmente com o indicador de digitação.
  • POST /blocked e DELETE /blocked/{numberId}/{phone} bloqueiam e desbloqueiam um cliente. A Meta só permite bloquear quem falou com você nas últimas 24 horas.