QRCode da Instância
curl --request GET \
--url https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body"<string>"{
"errors": [
{
"code": "qrcode_unavailable",
"message": "The instance's QR code is not available. This might be because your instance is already connected."
}
]
}Instâncias
Obtendo QR Code
GET
/
wa
/
instances
/
{instance_id}
/
qrcode
QRCode da Instância
curl --request GET \
--url https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body"<string>"{
"errors": [
{
"code": "qrcode_unavailable",
"message": "The instance's QR code is not available. This might be because your instance is already connected."
}
]
}Este endpoint permite capturar o QR Code de uma instância para autenticação no WhatsApp. Ele retorna a imagem no formato
⚠️ Importante: O uso do token na URL pode expô-lo em logs de servidores e históricos de navegadores, o que representa um risco de segurança. Sempre prefira a autenticação via cabeçalho HTTP.
🚀 Por que essa opção está disponível?
A renderização do QR Code via query string foi criada para permitir que o cliente compartilhe o link diretamente com seu usuário final, usando um token temporário. Dessa forma, o usuário pode simplesmente abrir o link no navegador, visualizar o QR Code e conectar a instância. Essa funcionalidade pode ser útil em cenários onde o cliente final não tem acesso ao painel da API, mas precisa conectar a conta do WhatsApp rapidamente.
image/png, permitindo exibi-la diretamente em uma tag <img /> no HTML, se necessário. Para acessar este recurso, é obrigatório fornecer um token de acesso, que pode ser passado no cabeçalho da requisição ou na query string.
Para utilizar este endpoint, é necessário fornecer um token de acesso válido. A forma recomendada é enviá-lo no cabeçalho da requisição. Opcionalmente, ele pode ser passado na URL como query string, mas isso expõe o token e não é recomendado.
Usando o Token na Query String ⚠️ (Caso de Uso Específico)
<img src="https://api.zapsterapi.com/v1/wa/instances/{instance_id}/qrcode?access_token=SEU_TOKEN_AQUI" />
❌ QR Code Indisponível
Se a instância já estiver conectada ou o QR Code não estiver disponível, a API retornará um erro:{
"errors": [
{
"code": "qrcode_unavailable",
"message": "The instance's QR code is not available. This might be because your instance is already connected."
}
]
}
📡 QR Code em Tempo Real
Se deseja atualizar o QR Code em tempo real sem que seu usuário precise sair da sua plataforma, recomendamos utilizar os eventos da instância para acompanhar as atualizações. Para isso, você pode configurar um webhook para escutar o eventoinstance.qrcode. Sempre que o QR Code da sua instância for atualizado, seu sistema receberá uma notificação automática, permitindo que você atualize a exibição do QR Code em tempo real e garanta uma experiência fluida para o usuário.
📌 Considerações Finais
- O QR Code muda constantemente, então é necessário atualizar periodicamente até a conexão ser estabelecida.
- Instâncias conectadas não possuem QR Code disponível.
- Para segurança, evite expor tokens na URL; prefira enviá-los via cabeçalho HTTP.
- Se for utilizar a query string, certifique-se de que o token seja temporário para evitar riscos de exposição.
Autorizações
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Parâmetros de caminho
Obrigatório se instance_id não estiver presente no body.
Parâmetros de consulta
Token de acesso
Resposta
Success
The response is of type file.