NODInfra

Enviar Mensagem

Enviar mídia (imagem, vídeo, áudio ou documento)

POSThttps://api.nodinfra.com.br/send/media
URL completa: https://api.nodinfra.com.br/send/media

Envia diferentes tipos de mídia para um contato, grupo ou canal/newsletter. Suporta URLs ou arquivos base64.

Tipos de Mídia Suportados

  • image: Imagens (JPG preferencialmente)
  • video: Vídeos (apenas MP4)
  • videoplay: Vídeo com comportamento visual de autoplay/loop no WhatsApp
  • document: Documentos (PDF, DOCX, XLSX, etc)
  • audio: Áudio comum (MP3 ou OGG)
  • myaudio: Mensagem de voz (alternativa ao PTT)
  • ptt: Mensagem de voz (Push-to-Talk)
  • ptv: Mensagem de vídeo (Push-to-Video)
  • sticker: Figurinha/Sticker

Recursos Específicos

  • Upload por URL ou base64
  • Caption/legenda opcional com suporte a placeholders
  • Nome personalizado para documentos (docName)
  • Geração automática de thumbnails
  • Compressão otimizada conforme o tipo
  • viewOnce recomendado para mídia compatível

Envio para Newsletter

Para enviar mídia para um canal, use o mesmo campo number, mas informe o JID completo do canal:

  • Exemplo: 120363123456789012@newsletter
{
  "number": "120363123456789012@newsletter",
  "type": "image",
  "file": "https://exemplo.com/foto.jpg",
  "text": "Imagem publicada no canal"
}

Campos Comuns

Este endpoint suporta todos os campos opcionais comuns documentados na tag "Enviar Mensagem", incluindo: delay, readchat, readmessages, replyid, mentions, forward, track_source, track_id, placeholders e envio para grupos.

Exemplos Básicos

Visualização Única (viewOnce)

O campo viewOnce é recomendado quando quiser mídia de visualização única e hoje produz efeito para os tipos: image, video, videoplay, ptv, audio, myaudio e ptt.

Para document, sticker e demais endpoints de envio, o campo é ignorado silenciosamente.

Imagem Simples

{
  "number": "5511999999999",
  "type": "image",
  "file": "https://exemplo.com/foto.jpg"
}

Documento com Nome

{
  "number": "5511999999999",
  "type": "document",
  "file": "https://exemplo.com/contrato.pdf",
  "docName": "Contrato.pdf",
  "text": "Segue o documento solicitado"
}

Corpo da requisição

numberstringobrigatório

ID do chat para o qual a mensagem será enviada. Pode ser um número de telefone em formato internacional, um ID de grupo (`@g.us`), um ID de usuário (com `@s.whatsapp.net` ou `@lid`) ou um ID de canal/newsletter (`@newsletter`).

exemplo: 5511999999999

typestringobrigatório

Tipo de mídia (image, video, videoplay, document, audio, myaudio, ptt, ptv, sticker)

valores:imagevideovideoplaydocumentaudiomyaudiopttptvsticker

exemplo: image

filestringobrigatório

URL ou base64 do arquivo

exemplo: https://exemplo.com/imagem.jpg

textstringopcional

Texto descritivo (caption) - aceita placeholders

exemplo: Veja esta foto!

docNamestringopcional

Nome do arquivo (apenas para documents)

exemplo: relatorio.pdf

thumbnailstringopcional

URL ou base64 de thumbnail personalizado para vídeos e documentos

exemplo: https://exemplo.com/thumb.jpg

mimetypestringopcional

MIME type do arquivo (opcional, detectado automaticamente)

exemplo: application/pdf

replyidstringopcional

ID da mensagem para responder

exemplo: 3EB0538DA65A59F6D8A251

mentionsstringopcional

Números para mencionar (separados por vírgula)

exemplo: 5511999999999,5511888888888

readchatbooleanopcional

Marca conversa como lida após envio

exemplo: true

readmessagesbooleanopcional

Marca últimas mensagens recebidas como lidas

exemplo: true

delayintegeropcional

Atraso em milissegundos antes do envio, durante o atraso apacerá 'Digitando...' ou 'Gravando áudio...'

exemplo: 1000

forwardbooleanopcional

Marca a mensagem como encaminhada no WhatsApp

exemplo: true

track_sourcestringopcional

Origem do rastreamento da mensagem

exemplo: chatwoot

track_idstringopcional

ID para rastreamento da mensagem (aceita valores duplicados)

exemplo: msg_123456789

asyncbooleanopcional

Se true, envia a mensagem de forma assíncrona via fila interna

exemplo: false

viewOncebooleanopcional

Recomendado para mídia com visualização única em tipos compatíveis (`image`, `video`, `videoplay`, `ptv`, `audio`, `myaudio`, `ptt`). Em tipos não compatíveis, o campo é ignorado silenciosamente.

exemplo: false

Exemplo

Imagem
{
  "number": "5511999999999",
  "type": "image",
  "file": "https://exemplo.com/foto.jpg"
}

Respostas

200Mídia enviada com sucesso
400Requisição inválida
401Não autorizado
413Arquivo muito grande
415Formato de mídia não suportado
500Erro interno do servidor

Testar endpoint

POSThttps://api.nodinfra.com.br/send/media
cURL
curl -X POST 'https://api.nodinfra.com.br/send/media' \
  -H 'token: SEU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "number": "5511999999999",
  "type": "image",
  "file": "https://exemplo.com/foto.jpg"
}'