Skip to content
Back to Blog

Enviar Mensagens Multimídia para Canais do WhatsApp Usando a API

Aprenda a gerenciar, automatizar e enviar efetivamente mensagens multimídia, como imagens, vídeos e documentos para Canais do WhatsApp em 2024. Este guia fornece instruções completas para usar a API do WhatsApp para engajar seu público e entregar conteúdo rico. Inclui exemplos de código prontos para uso para integração fácil!

🤩 🤖 Wassenger é uma plataforma completa de comunicação e solução de API para o WhatsApp. Explore mais de 100+ casos de uso da API e automatize qualquer coisa no WhatsApp inscrevendo-se para um teste gratuito e comece em minutos**!**

Hoje, vamos mostrar como enviar imagens, vídeos, documentos e notas de voz para seus canais com a Wassenger’s API.

Um arquivo de mídia pode ser qualquer um dos seguintes: imagens (JPEG, PNG, WEBP), vídeos (MP4, 3GPP), áudios (MP3, OGG, MP4, ACC), gifs (MP4) e documentos (PDF, PPT, PPTX, DOCX, DOC, ZIP, RAR, outros tipos binários).

Se você precisa enviar mensagens a partir de código, pode usar qualquer linguagem de programação que consiga realizar requisições HTTPS para a API. Abaixo você encontrará o API tester ao vivo com exemplos de código prontos para uso em várias linguagens de programação.

Requisitos

  • Ter um número do WhatsApp já vinculado à plataforma e online.
  • ID do Canal do WhatsApp (WID) que você pode encontrar de duas maneiras:
  1. No painel de gerenciamento do seu número do WhatsApp, vá em “Groups”. A partir daí você verá os canais aos quais seu número tem acesso.
  2. Usando a API, consulte os canais disponíveis no seu dispositivo usando este endpoint.

API endpoint

Neste tutorial usaremos o seguinte endpoint da API:

Preparar a requisição

URL alvo da API

https://api.wassenger.com/v1/messages

Cabeçalhos HTTPS obrigatórios

Content-Type: application/json
Token: $API-TOKEN

Corpo da requisição em formato JSON para uma mensagem de imagem

{
"channel": "$channel_ID@newsletter", 
"message": "This is a caption for an image message", 
"media": {
"url": "https://picsum.photos/seed/picsum/600/400", 
"viewOnce": false
}
}

Corpo da requisição em formato JSON para uma mensagem de vídeo

{
"channel": "$channel_ID@newsletter", 
"message": "This is a caption for an image message", 
"media": {
"url": "https://download.samplelib.com/mp4/sample-5s.mp4", 
"viewOnce": false
}
}

Novidade! Agora você pode enviar mensagens de mídia em uma única requisição de API passando a URL remota onde o arquivo está armazenado. Clique aqui para testar

Explore como usar o código no seu navegador sem instalar nenhum software.

Enviar imagens para um Canal do WhatsApp

# Examples requires to have installed requests Python package.
# Install it by running: pip install requests
import requests
url = "https://api.wassenger.com/v1/messages"
payload = {
"channel": "$channel_ID@newsletter", 
"message": "This is a caption for an image message", 
"media": {
"url": "https://picsum.photos/seed/picsum/600/400", 
"viewOnce": False
}
}
headers = {
"Content-Type": "application/json", 
"Token": "API_TOKEN_GOES_HERE"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php
$curl = curl_init();
curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api.wassenger.com/v1/messages',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => json_encode([
    'channel' => '$channel_ID@newsletter',
    'message' => 'This is a caption for an image message',
    'media' => [
      'url' => 'https://picsum.photos/seed/picsum/600/400',
      'viewOnce' => null,
    ],
  ]),
  CURLOPT_HTTPHEADER => [
    'Content-Type: application/json',
    'Token: API_TOKEN_GOES_HERE',
  ],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo 'cURL Error #:' . $err;
} else {
  echo $response;
}
// Examples requires to have installed pecl_http package, a simple and elegant HTTP client for PHP.
// Install it by running: pecl install pecl_http
// More information: https://pecl.php.net/package/pecl_http/3.2.0
<?php
$client = new http\Client();
$request = new http\Client\Request();
$body = new http\Message\Body();
$body->append(
  json_encode([
    'channel' => '$channel_ID@newsletter',
    'message' => 'This is a caption for an image message',
    'media' => [
      'url' => 'https://picsum.photos/seed/picsum/600/400',
      'viewOnce' => null,
    ],
  ])
);
$request->setRequestUrl('https://api.wassenger.com/v1/messages');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
  'Content-Type' => 'application/json',
  'Token' => 'API_TOKEN_GOES_HERE',
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
package main
import(
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url:= "https://api.wassenger.com/v1/messages"
payload:= strings.NewReader("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for an image message\", \"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\", \"viewOnce\":false}}")
req, _:= http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Token", "API_TOKEN_GOES_HERE")
res, _:= http.DefaultClient.Do(req)
defer res.Body.Close()
body, _:= io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
// This code requires you to have installed RestSharp package.
// Documentation: https://restsharp.dev
// Installation: https://www.nuget.org/packages/RestSharp
var client = new RestClient("https://api.wassenger.com/v1/messages");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Token", "API_TOKEN_GOES_HERE");
request.AddParameter("application/json", "{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for an image message\", \"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\", \"viewOnce\":false}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

require 'uri' require 'net/http'

url = URI("https://api.wassenger.com/v1/messages") http = Net::HTTP.new(url.host, url.port)

http.use_ssl = true request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request["Token"] = 'API_TOKEN_GOES_HERE' request.body = "{\"channel\":\"$channel_ID@newsletter\",\"message\":\"This is a caption for an image message\",\"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\\",\\"viewOnce\\":false}}"

response = http.request(request) puts response.read_body

// This code requires you to have installed Unirest package.
// Documentation: https://kong.github.io/unirest-java/#requests
// Installation: http://kong.github.io/unirest-java/
HttpResponse<String> response = Unirest.post("https://api.wassenger.com/v1/messages")
.header("Content-Type", "application/json")
.header("Token", "API_TOKEN_GOES_HERE")
.body("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for an image message\", \"media\":{\"url\":\"https://picsum.photos/seed/picsum/600/400\", \"viewOnce\":false}}")
.asString();

🤩 🤖 Wassenger é uma solução completa de API para o WhatsApp. Inscreva-se para um teste gratuito de 7 dias e comece em minutos!

Enviar vídeos para um Canal do WhatsApp

# Examples requires to have installed requests Python package.
# Install it by running: pip install requests
import requests
url = "https://api.wassenger.com/v1/messages"
payload = {
"channel": "$channel_ID@newsletter", 
"message": "This is a caption for an image message", 
"media": {
"url": "https://download.samplelib.com/mp4/sample-5s.mp4", 
"viewOnce": False
}
}
headers = {
"Content-Type": "application/json", 
"Token": "API_TOKEN_GOES_HERE"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php
$curl = curl_init();
curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api.wassenger.com/v1/messages',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => json_encode([
    'channel' => '$channel_ID@newsletter',
    'message' => 'This is a caption for an image message',
    'media' => [
      'url' => 'https://download.samplelib.com/mp4/sample-5s.mp4',
      'viewOnce' => null,
    ],
  ]),
  CURLOPT_HTTPHEADER => [
    'Content-Type: application/json',
    'Token: API_TOKEN_GOES_HERE',
  ],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo 'cURL Error #:' . $err;
} else {
  echo $response;
}
// Examples requires to have installed pecl_http package, a simple and elegant HTTP client for PHP.
// Install it by running: pecl install pecl_http
// More information: https://pecl.php.net/package/pecl_http/3.2.0
<?php
$client = new http\Client();
$request = new http\Client\Request();
$body = new http\Message\Body();
$body->append(
  json_encode([
    'channel' => '$channel_ID@newsletter',
    'message' => 'This is a caption for a video message',
    'media' => [
      'url' => 'https://download.samplelib.com/mp4/sample-5s.mp4',
      'viewOnce' => null,
    ],
  ])
);
$request->setRequestUrl('https://api.wassenger.com/v1/messages');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
  'Content-Type' => 'application/json',
  'Token' => 'API_TOKEN_GOES_HERE',
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
package main
import(
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url:= "https://api.wassenger.com/v1/messages"
payload:= strings.NewReader("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}")
req, _:= http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Token", "API_TOKEN_GOES_HERE")
res, _:= http.DefaultClient.Do(req)
defer res.Body.Close()
body, _:= io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
// This code requires you to have installed RestSharp package.
// Documentation: https://restsharp.dev
// Installation: https://www.nuget.org/packages/RestSharp
var client = new RestClient("https://api.wassenger.com/v1/messages");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Token", "API_TOKEN_GOES_HERE");
request.AddParameter("application/json", "{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

require 'uri' require 'net/http'

url = URI("https://api.wassenger.com/v1/messages")

http = Net::HTTP.new(url.host, url.port) http.use_ssl = true

request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request["Token"] = 'API_TOKEN_GOES_HERE' request.body = "{\"channel\":\"$channel_ID@newsletter\",\"message\":\"This is a caption for a video message\",\"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\\",\\"viewOnce\\":false}}"

response = http.request(request) puts response.read_body

// This code requires you to have installed Unirest package.
// Documentation: https://kong.github.io/unirest-java/#requests
// Installation: http://kong.github.io/unirest-java/
HttpResponse<String> response = Unirest.post("https://api.wassenger.com/v1/messages")
.header("Content-Type", "application/json")
.header("Token", "API_TOKEN_GOES_HERE")
.body("{\"channel\":\"$channel_ID@newsletter\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}")
.asString();

🤩 🤖 Wassenger é uma solução completa de API para o WhatsApp. Inscreva-se para um teste gratuito de 7 dias e comece em minutos!

Teste de API ao vivo

Você pode testar a API ao vivo e brincar com ela diretamente do seu navegador.

Quando terminar de testar, obtenha o exemplo de código gerado automaticamente na sua linguagem de programação preferida e você estará pronto para começar.

Experimente nosso testador de API ao vivo agora

🤩 🤖 Wassenger é uma plataforma completa de comunicação e solução de API para o WhatsApp. Explore mais de 100+ casos de uso da API e automatize qualquer coisa no WhatsApp inscrevendo-se para um teste gratuito e comece em minutos**!**

FAQ

Posso usar o Wassenger para enviar mensagens de marketing?

Como você deve saber, o WhatsApp tem políticas rígidas sobre o envio de mensagens de marketing não solicitadas, conteúdo ilícito ou spam.

Enviar mensagens de marketing ou quaisquer mensagens não solicitadas para usuários não é permitido e você colocaria seu número do WhatsApp em alto risco de ser banido.

A comunicação via WhatsApp não é adequada para todos os casos de uso empresarial, portanto recomendamos projetar uma estratégia de comunicação legítima e aprovada pelo usuário para evitar problemas.

Por favor, leia nossas diretrizes com melhores práticas de comunicação e como prevenir banimentos.

Como enviar mensagens para múltiplos números de telefone 📲

Você precisa enviar várias requisições à API, uma por número de telefone alvo.

Por exemplo, para enviar uma mensagem para 10 números de telefone, você deve enviar 10 requisições HTTPS independentes para a API.

Não existe opção para enviar múltiplas mensagens em uma única requisição de API.

Como validar se um número de telefone pode receber mensagens do WhatsApp 📳

Você pode validar se um determinado número de telefone está vinculado a uma conta do WhatsApp e pode receber mensagens.

A API fornece um endpoint que pode validar se um determinado número de telefone existe no WhatsApp ou não.

O único requisito é ter pelo menos um número do WhatsApp conectado à plataforma na sua conta atual.

Para mais detalhes, por favor confira a documentação do endpoint da API aqui.

Antes de verificar se um número de telefone existe no WhatsApp, você também pode validar e normalizar o formato de uma lista de números de telefone usando o endpoint validador de números da API. Este endpoint apenas valida o formato correto E164 format, mas não verifica se o número de telefone efetivamente existe no WhatsApp.

Nota: O número de validações de verificação no WhatsApp é limitado por mês com base no seu plano de assinatura. Por favor, consulte a tabela de preços para mais detalhes sobre os limites.

Procurando mais respostas? Confira as FAQs estendidas.

Recursos úteis adicionais

Documentação da API 🖥️

Para mais detalhes sobre o endpoint da API, por favor consulte a documentação onde você encontrará todos os detalhes sobre os parâmetros de requisição aceitos, possíveis respostas de sucesso ou erro e exemplos de código prontos para uso em múltiplas linguagens de programação:

https://app.wassenger.com/docs/#tag/Messages/operation/createMessage

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger.

Browse more

Tutorials, guides and case studies on running WhatsApp at team scale.

Ready for the official WhatsApp Business API?See what Meta charges — and keep your current number.
WhatsApp API pricing