Fechar
Whatsapp
Documentação completa da integração por JSON de envio de mensagens pra whatsapp
Curtir:
Introdução

Bem-vindo! É através desta API que você irá integrar seu sistema ao nosso, todas operações que podem ser feitas com a API se encontra abaixo.

Nossa API é RESTful e todas as respostas são JSON.

Endpoint

https://www.solutek.online/api/whatsapp/gateway/json/ (Retorno em JSON)

Atenção: Todas as funções do endpoint são acessadas usando uma chamada POST.

Autenticação

Usamos autenticação por meio de um e-mail , token e id da aplicação gerado pelo sistema! Estas informações pode ser obtidas acessando a aréa interna na página "Credenciais" .

Após ter suas credenciais em mãos você poderá usar nossa API enviando-as sempre no corpo da requisição.

Enviar Mensagens

Endpoint:    https://www.solutek.online/api/whatsapp/gateway/json/enviar    (Retorno em JSON)

Neste endpoint será processado um chamado para que sua mensagem seja enviada para o seu destinatário apartir do seu número cadastro na api.

Parâmetros

Nome
Descrição
Tipo
email
E-mail de sua aplicação gerada no sistema
String
token
Token de sua aplicação gerada no sistema
String
idapp
ID de sua aplicação gerada no sistema
String
idmsg
ID Único da mensagem (Uma ID para cada mensagem - Caso Repetida não dispara)
String
midia
Se é texto ou imagem ("texto" , "imagem" ou "arquivo")
String
url_anexo
URL do anexo a ser enviado. Extensões suportadas: JPG , PNG , PDF e MP3
String
whatsapp
Numero do whatsapp do cliente que vai receber a mensagem
String
mensagem
Sua mensagem para o cliente
String
emoji
Na mensagem contém emojis (sim ou nao). Envio de emojis
String



Exemplo de uso

<?php

$email= "SEU E-MAIL AQUI";
$token= "SEU TOKEN AQUI";
$idapp= "ID DA APLICACAO AQUI";
$idmsg= "000001";
$emoji= "nao"; //"sim" ou "nao"


$whatsapp= "NUMERO DO WHATSAPP AQUI"; //EX: 5581988888888
$mensagem= "SUA MENSAGEM AQUI";
$dados['email']= $email;
$dados['token']= $token;
$dados['idapp']= $idapp;
$dados['idmsg']= $idmsg;
$dados['midia']= "texto"; //"texto" , "imagem" ou "arquivo"
$dados['url_anexo']= ""; //opcional. necessário se midia="imagem" ou midia="arquivo";
$dados['whatsapp']= $whatsapp;
$dados['mensagem']= $mensagem;
$dados['emoji']= $emoji;


$endpoint="https://www.solutek.online/api/whatsapp/gateway/json/enviar";

$curl = curl_init($endpoint);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER , false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $dados);

$executa_api= curl_exec($curl);

curl_close($curl);

$retorno= json_decode($executa_api);


//Retorno da API


$erro= $retorno->erro;
$sobre_o_erro= $retorno->sobre_o_erro;
$whatsapp_retorno= $retorno->whatsapp;
$mensagem_retorno= $retorno->mensagem;
$status= $retorno->status;
$idlog= $retorno->idlog;


?>


Retorno da requisição acima:


Nome
Descrição
Tipo
erro
sim - existe erro , nao - sucesso na requisição.
String
sobre_o_erro
Descrição do erro.
String
whatsapp
Número do whatsapp recebido.
String
mensagem
Mensagem recebida.
String
status
Status da mensagem (Processando).
String
idlog
ID para receber no webhook
String


Consultar Limites e Informações do Plano

Endpoint:    https://www.solutek.online/api/whatsapp/gateway/json/limites    (Retorno em JSON)

Neste endpoint você poderá consultar limites e informações do seu plano , tais como: Limite diario do plano , Limite diario utilizado , Limite diario restante e data de expiração do seu plano.

Parâmetros

Nome
Descrição
Tipo
email
E-mail de sua aplicação gerada no sistema
String
token
Token de sua aplicação gerada no sistema
String
idapp
ID de sua aplicação gerada no sistema
String



Exemplo de uso

<?php

$email= "SEU E-MAIL AQUI";
$token= "SEU TOKEN AQUI";
$idapp= "ID DA APLICACAO AQUI";


$dados['email']= $email;
$dados['token']= $token;
$dados['idapp']= $idapp;


$endpoint="https://www.solutek.online/api/whatsapp/gateway/json/limites";

$curl = curl_init($endpoint);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER , false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $dados);

$executa_api= curl_exec($curl);

curl_close($curl);

$retorno= json_decode($executa_api);


//Retorno da API


$erro= $retorno->erro;
$sobre_o_erro= $retorno->sobre_o_erro;
$limite_diario= $retorno->limite_diario;
$limite_diario_usado= $retorno->limite_diario_usado;
$limite_diario_restante= $retorno->limite_diario_restante;


?>


Retorno da requisição acima:


Nome
Descrição
Tipo
erro
sim - existe erro , nao - sucesso na requisição.
String
sobre_o_erro
Descrição do erro.
String
limite_diario
Quantidade do limite diario do plano.
Int
limite_diario_usado
Quantidade do limite diario usado do plano.
Int
limite_diario_restante
Quantidade do limite diario restante do plano.
Int
expira
Data de expiração do plano
Date


Iniciando a requisição para obter o QRCODE

Agora você pode obter o QRCODE em base-64 para usar em suas aplicações para seus clientes não se conectarem diretamente em nosso sistema.

Endpoint:    https://www.solutek.online/api/whatsapp/gateway/json/qrcode    (Retorno em JSON)

Tenha em mente que ao processar uma conexão a esse endpoint com retorno de bem sucedida o telefone conectado a API será desconectado para receber o QRCODE para emparelhar outro telefone. Após processar uma solicitação a esse endpoint você precisará fazer uma solicitação a cada intervalo ao endpoind de "Obtendo a Atualizacão do QRCODE".

Parâmetros

Nome
Descrição
Tipo
email
E-mail de sua aplicação gerada no sistema
String
token
Token de sua aplicação gerada no sistema
String
idapp
ID de sua aplicação gerada no sistema
String



Exemplo de uso

<?php

$email= "SEU E-MAIL AQUI";
$token= "SEU TOKEN AQUI";
$idapp= "ID DA APLICACAO AQUI";


$dados['email']= $email;
$dados['token']= $token;
$dados['idapp']= $idapp;


$endpoint="https://www.solutek.online/api/whatsapp/gateway/json/qrcode";

$curl = curl_init($endpoint);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER , false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $dados);

$executa_api= curl_exec($curl);

curl_close($curl);

$retorno= json_decode($executa_api);


//Retorno da API


$erro= $retorno->erro;
$sobre_o_erro= $retorno->sobre_o_erro;
$status= $retorno->status;


?>


Obtendo a Atualizacão do QRCODE

Após fazer a solicitação ao endpoint de "Iniciando a requisição para obter o QRCODE" você precisa processar esse endpoint a cada intervalo de tempo (Recomenda-mos 5 segundos) para obter a imagem (Base64) do QRCODE atualizada.

Endpoint:    https://www.solutek.online/api/whatsapp/gateway/json/qrcode_update    (Retorno em JSON)

Parâmetros

Nome
Descrição
Tipo
email
E-mail de sua aplicação gerada no sistema
String
token
Token de sua aplicação gerada no sistema
String
idapp
ID de sua aplicação gerada no sistema
String



Exemplo de uso

<?php

$email= "SEU E-MAIL AQUI";
$token= "SEU TOKEN AQUI";
$idapp= "ID DA APLICACAO AQUI";


$dados['email']= $email;
$dados['token']= $token;
$dados['idapp']= $idapp;


$endpoint="https://www.solutek.online/api/whatsapp/gateway/json/qrcode_update";

$curl = curl_init($endpoint);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER , false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $dados);

$executa_api= curl_exec($curl);

curl_close($curl);

$retorno= json_decode($executa_api);


//Retorno da API


$erro= $retorno->erro;
$sobre_o_erro= $retorno->sobre_o_erro;
$conectado= $retorno->conectado;
$qrcode= $retorno->qrcode;
$url_retorno= $retorno->url_retorno;
$nome= $retorno->nome;
$telefone= $retorno->telefone;


?>


Limpar Fila de disparos

Endpoint:    https://www.solutek.online/api/whatsapp/gateway/json/limpar    (Retorno em JSON)

As vezes você acidentalmente pode nos enviar várias mensagens , Enviar mensagens sem o aparelho estar conectado ou algo do tipo , Quando o dispositivo não está conectado ou disponivel para o envio essas mensagens ficam numa fila de disparo aguardando que seu aparelho fique disponivel para envio , Há casos em que os clientes precisam apagar essas mensagens e esse endpoint faz extamente isto!

Ao utilizar este endpoint caso tenha alguma mensagem em fila será deletada , No retorno é possivel saber a quantidade de mensagens que foi deletada. Vale lembrar que ao excluir essas mensagens da fila de disparo não será ressarcido no seu limite diário.

Parâmetros

Nome
Descrição
Tipo
email
E-mail de sua aplicação gerada no sistema
String
token
Token de sua aplicação gerada no sistema
String
idapp
ID de sua aplicação gerada no sistema
String



Exemplo de uso

<?php

$email= "SEU E-MAIL AQUI";
$token= "SEU TOKEN AQUI";
$idapp= "ID DA APLICACAO AQUI";


$dados['email']= $email;
$dados['token']= $token;
$dados['idapp']= $idapp;


$endpoint="https://www.solutek.online/api/whatsapp/gateway/json/limpar";

$curl = curl_init($endpoint);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER , false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $dados);

$executa_api= curl_exec($curl);

curl_close($curl);

$retorno= json_decode($executa_api);

//Retorno da API


$erro= $retorno->erro;
$sobre_o_erro= $retorno->sobre_o_erro;
$excluidos= $retorno->excluidos;


?>


Retorno da requisição acima:


Nome
Descrição
Tipo
erro
sim - existe erro , nao - sucesso na requisição.
String
sobre_o_erro
Descrição do erro.
String
excluidos
Quantidade de mensagens excluidas
Int


Obter Numéro de Mensagens na Fila

Endpoint:    https://www.solutek.online/api/whatsapp/gateway/json/obter_fila    (Retorno em JSON)

Esse endpoint retorna a quantidade de mensagens na fila de disparo!



Parâmetros

Nome
Descrição
Tipo
email
E-mail de sua aplicação gerada no sistema
String
token
Token de sua aplicação gerada no sistema
String
idapp
ID de sua aplicação gerada no sistema
String



Exemplo de uso

<?php

$email= "SEU E-MAIL AQUI";
$token= "SEU TOKEN AQUI";
$idapp= "ID DA APLICACAO AQUI";


$dados['email']= $email;
$dados['token']= $token;
$dados['idapp']= $idapp;


$endpoint="https://www.solutek.online/api/whatsapp/gateway/json/obter_fila";

$curl = curl_init($endpoint);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER , false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $dados);

$executa_api= curl_exec($curl);

curl_close($curl);

$retorno= json_decode($executa_api);

//Retorno da API


$erro= $retorno->erro;
$sobre_o_erro= $retorno->sobre_o_erro;
$fila= $retorno->fila;


?>


Retorno da requisição acima:


Nome
Descrição
Tipo
erro
sim - existe erro , nao - sucesso na requisição.
String
sobre_o_erro
Descrição do erro.
String
fila
Número de mensagens na fila
Int


Aplicar Delay no envio de mensagens

Endpoint:    https://www.solutek.online/api/whatsapp/gateway/json/delay    (Retorno em JSON)

Através desse endpoint é possivel setar um delay entre os envios de suas mensagens , isso previne que sua aplicação entre em contato com vários numéros em um curto periodo de tempo e o whatsapp venha a banir seu número por conta disso. É recomendado aplicar delay sempre que for enviar mais de 3 mensagens para clientes que nunca entrarão em contato com suas aplicações. Voltamos a salientar que vetamos o uso de nossa API o envio de SPAM ou Marketing , é recomendados apenas o envio de mensagens para quem já é seu cliente e que espera receber suas mensagens.

Parâmetros

Nome
Descrição
Tipo
email
E-mail de sua aplicação gerada no sistema
String
token
Token de sua aplicação gerada no sistema
String
idapp
ID de sua aplicação gerada no sistema
String
segundos
Intervalo em segundos entre cada envio
Int



Exemplo de uso

<?php

$email= "SEU E-MAIL AQUI";
$token= "SEU TOKEN AQUI";
$idapp= "ID DA APLICACAO AQUI";


$dados['email']= $email;
$dados['token']= $token;
$dados['idapp']= $idapp;
$dados['segundos']= 5;


$endpoint="https://www.solutek.online/api/whatsapp/gateway/json/delay";

$curl = curl_init($endpoint);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER , false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $dados);

$executa_api= curl_exec($curl);

curl_close($curl);

$retorno= json_decode($executa_api);

//Retorno da API


$erro= $retorno->erro;
$sobre_o_erro= $retorno->sobre_o_erro;
$delay_anterior= $retorno->delay_anterior;
$delay_atual= $retorno->delay_atual;


?>


Retorno da requisição acima:


Nome
Descrição
Tipo
erro
sim - existe erro , nao - sucesso na requisição.
String
sobre_o_erro
Descrição do erro.
String
delay_anterior
Delay que estava setado antes da alteração
Int
delay_atual
Delay aplicado nessa requisição
Int


Consultando Status Da Conexão

Endpoint:    https://www.solutek.online/api/whatsapp/gateway/json/status    (Retorno em JSON)

Neste endpoint você poderá consultar o status do seu número conectado para envio e recebimento de mensagens. Uma conexão a esse endpoint bem-sucedida retornará se seu telefone está logado em nossos servidores , O numero está disponivel pra envio e recebimento , Nick do seu whatsapp , Número do telefone conectado e Porcentagem da bateria de seu aparelho.

Parâmetros

Nome
Descrição
Tipo
email
E-mail de sua aplicação gerada no sistema
String
token
Token de sua aplicação gerada no sistema
String
idapp
ID de sua aplicação gerada no sistema
String



Exemplo de uso

<?php

$email= "SEU E-MAIL AQUI";
$token= "SEU TOKEN AQUI";
$idapp= "ID DA APLICACAO AQUI";


$dados['email']= $email;
$dados['token']= $token;
$dados['idapp']= $idapp;


$endpoint="https://www.solutek.online/api/whatsapp/gateway/json/status";

$curl = curl_init($endpoint);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER , false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $dados);

$executa_api= curl_exec($curl);

curl_close($curl);

$retorno= json_decode($executa_api);


//Retorno da API


$erro= $retorno->erro;
$sobre_o_erro= $retorno->sobre_o_erro;
$logado= $retorno->logado;
$pronto= $retorno->pronto;
$nome= $retorno->nome;
$telefone= $retorno->telefone;
$bateria= $retorno->bateria;


?>


Retorno da requisição acima:


Nome
Descrição
Tipo
erro
sim - existe erro , nao - sucesso na requisição.
String
sobre_o_erro
Descrição do erro.
String
logado
Se há uma sessão ativa de seu número.
String
pronto
Celular desligado ou desconectado da internet Retorna "nao".
String
nome
Nick definido em seu perfil do whatsapp
String
telefone
Número de telefone do seu whatsapp
String
bateria
Porcentagem da bateria do seu aparelho
Int


Capturando Mensagens Recebidas

Defina a URL do seu webhook:    Acesse o painel

Clique em configurar base

Desça a até o fim da tela e defina a url em:

URL de recebimento de mensagens

Você receberá na página informada um array JSON com todas as informações de mensagens recebidas assim como os status dos envios de suas mensagens.




Exemplo de uso

<?php 

//recuperacao de dados posts

$ttdd= file_get_contents('php://input');
$ttdc= json_decode($ttdd);

//caso exista o campo tipo recebido por POST significa que é recebimento de arquivo
//caso contrário significa que é recebimento de mensagem ou status do envio


if (empty($_POST['tipo'])) {

// tipo de recebimento: mensagem ou status do envio

$tipo= $ttdc -> tipo;
if (($tipo=="mensagem") or ($tipo=="status")) {
	
	//caso seja recebimento de mensagem
	if ($tipo=="mensagem") {
		$whatsapp= $ttdc->whatsapp; //whatsapp do cliente
		$tmp= $ttdc->horario_unix; //time unix do recebimento
		$msg= $ttdc->mensagem;	  //mensagem - caso audio ou documento vem vazio - caso imagem vem a thumb
		$idchat= $ttdc->idmsg;	//id da mensagem
		$nome_cliente= $ttdc->nome_cliente; //nome do cliente no whatsapp
		$midia= $ttdc->midia;	//qual o tipo de midia recebido: image - ptt (audio) - document (pdf)
		
		//campos extras para cada tipo de recebimento
		
		//caso seja uma imagem
		if ($midia=="image") {
			$mimetype= $ttdc->mimetype; //O mimetype da imagem ex: png , jpg
			$width= $ttdc->width; //largura da imagem
			$height= $ttdc->height; //altura da imagem
			$size= $ttdc->size;  //tamanho  da imagem
			$referencia= $ttdc->referencia; //referencia da imagem - serve pra identificar o arquivo a ser recebido
			$legenda= $ttdc->legenda;  //legenda da imagem
		} else if ($midia=="ptt") {
			$referencia= $ttdc->referencia; //referencia do audio - serve pra identificar o arquivo a ser recebido
		} else if ($midia=="document") {
			$referencia= $ttdc->referencia; //referencia do documento - serve pra identificar o arquivo a ser recebido
			$mimetype= $ttdc->mimetype; //O mimetype do arquivo ex: .docx , pdf
		} else if ($midia=="location") {
			$lat= $ttdc->lat; //latitude
			$lng= $ttdc->lng; //longitude
			$loctipo= $ttdc->loctipo; //tipo de localizacao: fixo ou tempo_real
		}
	}
	
	//caso seja recebimento de status de envio
	if ($tipo=="status") {
		$idlog= $ttdc->idlog; //idmsg que você definiu
		$codigo_status= $ttdc->codigo_status; //1= enviado 2= recebido 3= visualizado
		$referencia_status= $ttdc->referencia_status; //Enviado , Recebido , Visualizado
	}
} else {

	$tipo= $_POST['tipo'];
	
	//verifica se o post refere-se ao arquivo
	
	if ($tipo=="arquivo") {
		$referencia= $_POST['referencia']; //referencia recebida anteriormente na mensagem
		$base64= $_POST['base64']; //arquivo codificado em base64
	}
	
}
}


Midias Recebivéis:


Nome
Descrição
Tipo
chat
Mensagem de texto com ou sem emoji.
String
image
Recebimento de imagens
String
ptt
Recebimento de audio
String
document
Recebimento de documento (PDF , DOCX ou Outro)
String
location
Recebimento de localizacao
String


Campos retornados em midia = chat


Nome
Descrição
Tipo
whatsapp
Whatsapp do cliente que enviou a mensagem.
String
horario_unix
Horário do recebimento da mensagem em unix
Int
idmsg
ID única gerada pra esse recebimento
String
nome_cliente
Nome do cliente no whatsapp
String


Campos retornados em midia = image


Obs: Você não recebe a imagem nesse retorno , apenas um thumb , com a referencia em mãos use-a para identificar o arquivo recebido.

Recomenda-mos criar uma tabela diferente para armazenar arquivos. Todos são recebidos em base64 junto com a referência.!

Nome
Descrição
Tipo
whatsapp
Whatsapp do cliente que enviou a mensagem.
String
horario_unix
Horário do recebimento da mensagem em unix
Int
idmsg
ID única gerada pra esse recebimento
String
nome_cliente
Nome do cliente no whatsapp
String
mimetype
Mimetype da imagem para saber o formato da mesma
String
width
Tamanho em pixels da largura da imagem
Int
height
Tamanho em pixel da altura da imagem
Int
size
Tamanho da imagem em bytes
Int
legenda
A legenda da imagem caso o cliente tenha inserido
String
referencia
Referência da imagem - Identifica a imagem em tamanho real
String


Campos retornados em midia = ptt


O Campo mensagem vem vazio! Você recebe apenas a referencia para poder identificar o audio recebido no metodo POST. Como todos os outros arquivos o audio vem codificado em base64.

Nome
Descrição
Tipo
whatsapp
Whatsapp do cliente que enviou a mensagem.
String
horario_unix
Horário do recebimento da mensagem em unix
Int
idmsg
ID única gerada pra esse recebimento
String
nome_cliente
Nome do cliente no whatsapp
String
referencia
Referência do audio - Identifica o audio recebido
String


Campos retornados em midia = document


O Campo mensagem vem vazio! Você recebe apenas a referencia para poder identificar o documento recebido e o mimetype para saber a extensão de arquivo recebido. Como todos os outros arquivos o documento vem codificado em base64.

Nome
Descrição
Tipo
whatsapp
Whatsapp do cliente que enviou a mensagem.
String
horario_unix
Horário do recebimento da mensagem em unix
Int
idmsg
ID única gerada pra esse recebimento
String
nome_cliente
Nome do cliente no whatsapp
String
referencia
Referência do documento - Identifica o documento recebido
String


Campos retornados em midia = location


O Campo mensagem com uma thumb da localizacao do cliente! Você recebe a latitude e longitude da localizacao compartilha e o tipo para identificar se foi compartilhado um local fixo ou uma localização em tempo real.

Nome
Descrição
Tipo
whatsapp
Whatsapp do cliente que enviou a mensagem.
String
horario_unix
Horário do recebimento da mensagem em unix
Int
idmsg
ID única gerada pra esse recebimento
String
nome_cliente
Nome do cliente no whatsapp
String
lat
Latitude da localização
Float
lng
Longitude da localização
Float
loctipo
Tipo de compartilhamento - fixo ou tempo_real
Float