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.