Como Agendar Mensagens No WhatsApp Com PHP O Guia Fácil

3 de janeiro de 2025

Neste tutorial, você aprenderá como agendar a entrega de mensagens usando a API.

Existem duas maneiras de agendar a entrega de uma mensagem para um horário e/ou dia posterior: especificando o dia e a hora exatos em que deseja que ela seja enviada ou indicando quantos minutos, horas ou dias você gostaria de adiar a entrega programada.

Se você quiser enviar mensagens a partir de código, pode usar qualquer linguagem de programação para realizar requisições HTTPS à API. Abaixo está o testador de API 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.
  • Número de telefone do destinatário com prefixo internacional no formato E164. Exemplo: +12345678909. Você pode validar o número de telefone aqui.

Endpoint da API

Neste tutorial usaremos o seguinte endpoint da API:

Preparar a requisição

URL alvo da API (POST)

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

Cabeçalhos HTTPS obrigatórios

Content-Type: application/json
Token: ENTER API KEY HERE

Enviar uma mensagem em uma data específica no formato ISO8601

Exemplo de corpo da requisição em formato 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([
    'phone' => '+12345678909',
    'message' =>
      'This is a scheduled message to be sent to a phone number in 10 minutes',
    'deliverAt' => '2025-01-03T10:11:24.323Z',
  ]),
  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;
}

Você também pode enviar mensagens agendadas para um chat em grupo:

<?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([
    'group' => '${group_ID@g.us}',
    'message' =>
      'This is a scheduled message to be sent tomorrow to a group chat.Date format is based on ISO 8601 format with default UTC time zone',
    'deliverAt' => '2025-01-04T10:01:24.323Z',
  ]),
  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;
}

Adiar a entrega da mensagem por minutos, horas ou dias

Exemplo de corpo da requisição em formato JSON

Valores válidos de exemplo seriam: 1m = em 1 minuto, 2h = em 2 horas, 15d = em 15 dias.

Os valores devem ser números inteiros, então se você precisar agendar uma mensagem para 1,5 horas, por exemplo, terá que especificar 90m = em 90 minutos

<?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([
    'phone' => '+12345678909',
    'message' =>
      'This is a scheduled message to be sent to a phone number in 10 minutes',
    'schedule' => [
      'delayTo' => '1h',
    ],
  ]),
  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;
}

Alternativamente, você pode atrasar a entrega da mensagem por uma quantidade determinada de segundos:

<?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([
    'phone' => '+12345678909',
    'message' =>
      'This is a scheduled message to be sent to a phone number in 10 minutes',
    'schedule' => [
      'delayTo' => '180',
    ],
  ]),
  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;
}

Teste ao vivo da API

Agora você pode brincar, depurar e testar a API ao vivo diretamente do seu navegador, explorar e experimentar mais exemplos de API e obter, com um clique, trechos de código prontos para uso disponíveis em mais de 15 linguagens de programação 😎

Tem dúvidas? Consulte as perguntas frequentes abaixo.

Perguntas Frequentes

Como enviar mensagens para vários números de telefone

Você só precisa enviar múltiplas requisições à API, uma por número de telefone alvo.

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

Não há opção para enviar múltiplas mensagens em uma única requisição à API.

Que tipo de mensagens podem ser enviadas?

Você pode enviar diferentes tipos de mensagens, incluindo texto, imagens, vídeos, emojis, áudio, gifs, localizações geográficas e documentos via API.

Confira outros tutoriais para mais informações.

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, consulte 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. Este endpoint apenas valida o formato correto E164, mas não verifica se o número de telefone existe efetivamente no WhatsApp ou não.

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

Procurando mais respostas? Confira as FAQs estendidas.

Mais recursos úteis

Documentação da API

Para mais detalhes sobre o endpoint da API, consulte o documento 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

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger

Get Started Free