POST /v1/messages/send. Não existe um endpoint de mídia separado — a mídia é um dos três modos de envio mutuamente exclusivos:
- Envio de template —
templateId(+mediaopcional para sobrescrever) - Envio de texto livre —
text - Envio direto de mídia —
media+mediaType, semtemplateIde semtext
Envio direto de mídia
Forneçamedia + mediaType sem templateId ou text. Nesse modo, buttons, header, footer e variables não são permitidos. Um caption opcional é permitido para image, video e document — mas não para audio.
Campos media e mediaType
media— uma URL http(s) pública ou um data URI base64 (data:<mime>;base64,...).mediaType—image,video,documentouaudio. Defina-o explicitamente quando a extensão da URL não for óbvia (ex.: um PDF cuja URL não termina em.pdf).
Base64 vs. URL por provedor
| Provedor | URL pública | Data URI base64 |
|---|---|---|
| Meta Cloud API | ✓ | ✓ |
| Não oficial (Pilot Status web) | ✓ | ✗ — use uma URL |
Áudio é uma mensagem de voz (PTT)
QuandomediaType é audio, o arquivo é entregue como uma mensagem de voz (PTT) do WhatsApp em todos os provedores. Em números não oficiais (Pilot Status web), o destinatário vê brevemente um indicador de presença “gravando áudio” antes da entrega; a Meta Cloud API não possui API de presença de saída, então nenhum indicador aparece nos envios pela Meta.
Mídia com templates
Adicionemedia (+ mediaType) a um envio de template para anexar ou sobrescrever a mídia — ela tem precedência sobre qualquer URL de mídia embutida no template:
media/mediaType não podem ser combinados com um envio de text livre. A API aceita buttons junto com mediaType: "video" ou "document", embora a Meta possa rejeitar botões em algumas mensagens de vídeo/PDF dependendo do cliente do destinatário.