SMSFire Docs
Criar contaLogin
  • Bem vindo(a)
  • Atualizações
  • Documentação Técnica
  • Autenticação
  • Rate limiter
  • Account
    • Consulta saldo
  • SMS
    • Enviar mensagem
    • Consulta Status
    • Inbox
    • Caracteres e concatenação
    • Agendamento de mensagens
    • Fracionador de envios
    • Código de status
  • WhatsApp
    • Consultar instância
    • Enviar mensagem
    • Consulta Status
    • Mensagens recebidas
    • Código de status
    • Sessões
  • Bigdata
    • Enviar consulta
    • Consultar queries
    • Código de status
  • HTTP CODES
  • SDKs
Powered by GitBook
On this page
  • REST (JSON)
  • Exemplos de requisição
  • Suporte a multimídia
  1. WhatsApp

Enviar mensagem

Veja detalhes de como realizar o envio de mensagens.

PreviousConsultar instânciaNextConsulta Status

Last updated 3 years ago

A partir deste serviço você poderá enviar mensagens individuais ou em massa através do número sincronizado na instância do seu usuário.

Fique atento quanto ao de requisições para o correto funcionamento da API.

REST (JSON)

POST https://api-v2.smsfire.com.br/whatsapp/send/bulk

A partir deste método você poderá realizar envios individuais ou em massa a destinatários que façam ou não parte da sua lista de contatos no WhatsApp, podendo especificar um texto personalizado para cada um deles ou até para o mesmo destinatário para criar diferentes blocos de mensagem

Atenção: Campos com * (asterisco) são obrigatórios

Headers

Name
Type
Description

Authorization*

string

Basic <Token>

Content-type*

string

application/json

Request Body

Name
Type
Description

instanceToken*

string

Token da instância

destinations*

array

Matriz com a relação dos destinatários

to*

string

Telefone do destinatário em formato internacional Faz parte do objeto inserido em destinations

text*

string

Texto da mensagem (Máx. 1000 caracteres) Faz parte do objeto inserido em destinations

customId

string

Id único personalizado (Max. 40 caracteres) Faz parte do objeto inserido em destinations

mediaUrl

string

Url absoluta do arquivo de mídia a ser enviado. Faz parte do objeto inserido em destinations

{
  "messages": [
    {
      "id": 12345,
      "customId": "firezap0001",
      "statusCode": 0,
      "statusName": "PENDING"
    }
  ]
}
{
  "error": {
    "message": "Invalid duplicated customId request"
  }
}

O parâmetro customId aceita caracteres alfanuméricos, hífen, underline/underscore e ponto sem espaços ou quebra de linha.

É possível enviar no máximo 250 destinatários por requisição. As mensagens enviadas são processadas em períodos aleatórios entre 0 a 3 segundos.

Mensagens enviadas a uma instância sem sincronização acusam PENDING no response da requisição, porém seus status são atualizados para EXPIRED automaticamente.

Exemplos de requisição

  • Exemplo simplificado de requisição com parâmetros mínimos obrigatórios:

curl --request POST \
  --url https://api-v2.smsfire.com.br/whatsapp/send/bulk \
  --header 'Authorization: Basic <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data '{"instanceToken":"499893c21b1b467970b2n58dcak6009d92d9dscx1","destinations":[{"to":"5511944556677","text":"Mensagem teste 01"},{"to":"5511966778899","text":"Mensagem teste 02"}]}'
var axios = require("axios").default;

var options = {
  method: 'POST',
  url: 'https://api-v2.smsfire.com.br/whatsapp/send/bulk',
  headers: {
    'Content-Type': 'application/json',
    Authorization: 'Basic <TOKEN>'
  },
  data: {
    instanceToken:'499893c21b1b467970b2n58dcak6009d92d9dscx1',
    destinations: [
      {
        to: '5511944556677', 
        text:'Mensagem teste 01'
      },
      {
        to: '551166778899', 
        text:'Mensagem teste 02'
      }
    ]
  }
};

axios.request(options).then(function (response) {
  console.log(response.data);
}).catch(function (error) {
  console.error(error);
});
import requests

url = "https://api-v2.smsfire.com.br/whatsapp/send/bulk"

payload = {"instanceToken":"499893c21b1b467970b2n58dcak6009d92d9dscx1", "destinations": [{"to": "5511944556677", "text":"Mensagem teste 01"}, {"to": "5511966778899", "text":"Mensagem teste 02"}]}
headers = {
    "Content-Type": "application/json",
    "Authorization": "Basic <TOKEN>"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();
$payload = [
  "instanceToken" => "499893c21b1b467970b2n58dcak6009d92d9dscx1",
  "destinations" => [
    [
      "to" => "5511944556677",
      "text" => "Mensagem teste 01"
    ],
    [
      "to" => "5511966778899",
      "text" => "Mensagem teste 02"
    ]
  ]
];
    
curl_setopt_array($curl, [
  CURLOPT_URL => "https://api-v2.smsfire.com.br/whatsapp/send/bulk",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode($payload),
  CURLOPT_HTTPHEADER => [
    "Authorization: Basic <TOKEN>",
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
  • Exemplo de JSON com todos os parâmetros existentes no serviço:

    • Quando o parâmetro mediaUrl for mencionado, o parâmetro text poderá ser omitido.

{	
	"instanceToken":"499893c21b1b467970b2n58dcak6009d92d9dscx1",
	"destinations":[
		{
			"to": "5511944556677",
			"text": "O que você achou a imagem? 🤔",
			"mediaUrl":"http://minhaurl.com.br/minha-imagem.jpg",
			"customId":"firezap0001"
		},
		{
			"to": "5511955667788",
			"mediaUrl":"http://minhaurl.com.br/meu-audio.ogg",
			"customId":"firezap0002"
		},
		{
			"to": "5511966778899",
			"text":"Olá tudo bem?",
			"customId":"firezap0003"
		},
		{
			"to": "5511977889900",
			"text":"Seja bem vindo(a)"
		}
	]
}

Quando a url informada for inválida - automaticamente - o parâmetro mediaUrl é ignorado e então o text volta a ser obrigatório.

Suporte a multimídia

Categoria

Mime-types

  • image/gif

  • image/jpg

  • image/jpeg

  • image/png

  • image/webp

  • video/mp4

  • video/webm

  • video/webm;codecs=vp8

  • video/webm;codecs=vp9

  • video/webm;codecs=vp8.0

  • video/webm;codecs=vp9.0

  • video/webm;codecs=h264

  • video/webm;codecs=H264

  • video/webm;codecs=avc1

  • video/webm;codecs=vp8,opus

  • video/webm;codecs=vp9,opus

  • video/webm;codecs=vp8,vp9,opus

  • video/webm;codecs=h264,opus

  • video/webm;codecs=h264,vp9,opus

  • video/x-matroska;codecs=avc1

  • audio/ogg; codecs=opus

  • audio/webm; codecs=opus

  • audio/ogg

  • audio/mp3

  • audio/mpeg

  • audio/wav

  • audio/wave

  • text/plain

  • text/html

  • application/ogg

  • application/pdf

  • application/xml

  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

  • application/vnd.ms-excel

  • application/x-rar-compressed"

  • application/zip"

  • application/x-zip-compressed"

  • application/vnd.oasis.opendocument.text

  • application/vnd.openxmlformats-officedocument.wordprocessingml.document

  • application/vnd.ms-excel

  • application/msword

  • application/octet-stream

O tamanho máximo do arquivo enviado são de 3 MB

Mídias do tipo imagem e vídeo possuem suporte ao parâmetro text enquanto que as do tipo áudio e arquivos não possuem e por isso o conteúdo inserido no parâmetro text será ignorado.

Os arquivos multimídia em mensagens enviadas por API não são armazenados, enquanto arquivos de mensagens recebidas são armazenados por um prazo de sete dias corridos a partir da data do recebimento, e uma url pública é fornecida para acesso a eles. Após o período de sete dias os arquivos são apagados permanentemente dos nossos servidores.

É possível a inclusão de emojis e acentuação no texto. Para isso envie os dados sob o encoding .

Este serviço suporta o envio e recebimento de mensagens multimídia, entretanto, há limites de tamanho e tipos específicos de arquivos que poderão ser utilizados. Veja abaixo os de arquivos permitidos:

Imagens

Vídeo

Áudio

Arquivos

rate-limit
Código de status
Autenticação
UTF-8 Unicode
MIME-TYPES
HTTP CODES
📸
🎥
🎙️
📂