Ir para conteúdo principal

WhatsApp API

Gerencie conexões WhatsApp e envie mensagens programaticamente através da API Atys.

Importante: Você precisa ter um access_token válido para usar estes endpoints. Consulte a documentação de autenticação para obter seu token.

Como Funciona

A API WhatsApp da Atys permite que você gerencie conexões WhatsApp Web e envie mensagens através de canais conectados. Com esta API você pode:

Conectar WhatsApp

Gere QR codes para conectar números WhatsApp

Gerenciar Conexões

Crie, atualize e delete conexões WhatsApp

Enviar Mensagens

Envie mensagens de texto e arquivos via WhatsApp

Listas e Validações

Obtenha listas de contatos/grupos e valide números em massa

1) Listar WhatsApps

Lista todas as conexões WhatsApp da sua conta com filtros opcionais.

GET

https://api.atys.pro/api/whatsapps

Listar conexões WhatsApp

Headers Obrigatórios

Header Valor Descrição
Authorization Bearer YOUR_ACCESS_TOKEN Token de autenticação
Accept application/json Tipo de resposta esperada

Parâmetros de Query (opcionais)

Parâmetro Tipo Descrição Exemplo
filter string Busca textual no nome ou número da conexão ?filter=suporte
logged boolean Filtrar por status de conexão (true/false) ?logged=true
orderBy string Campo para ordenação (padrão: id) ?orderBy=name
orderMode string Modo de ordenação: ASC ou DESC (padrão: ASC) ?orderMode=DESC
perPage integer Items por página (padrão: 100) ?perPage=50
created_at JSON array Intervalo de datas de criação [inicio, fim] ?created_at=["2025-01-01","2025-12-31"]
updated_at JSON array Intervalo de datas de atualização ?updated_at=["2025-01-01","2025-12-31"]
Dica: Você pode combinar múltiplos parâmetros. Exemplo:
?filter=vendas&logged=true&perPage=20&orderBy=name

Exemplos de Código

JavaScript (Fetch API)
const response = await fetch('https://api.atys.pro/api/whatsapps?filter=suporte&logged=true&perPage=20', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Accept': 'application/json'
  }
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

response = requests.get(
    'https://api.atys.pro/api/whatsapps',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Accept': 'application/json'
    },
    params={
        'filter': 'suporte',
        'logged': 'true',
        'perPage': 20
    }
)

data = response.json()
print(data)
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/whatsapps?filter=suporte&logged=true&perPage=20');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Accept: application/json'
]);

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->get('https://api.atys.pro/api/whatsapps', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Accept' => 'application/json'
    ],
    'query' => [
        'filter' => 'suporte',
        'logged' => 'true',
        'perPage' => 20
    ]
]);

$data = json_decode($response->getBody(), true);
print_r($data);

?>
Go (net/http)
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    req, _ := http.NewRequest(
        "GET",
        "https://api.atys.pro/api/whatsapps?filter=suporte&logged=true&perPage=20",
        nil,
    )
    
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Accept", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
cURL
curl -X GET "https://api.atys.pro/api/whatsapps?filter=suporte&logged=true&perPage=20" \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Accept: application/json"

2) Gerar QR Code

Gera um QR code para conectar um número WhatsApp à plataforma. O QR code deve ser escaneado usando o aplicativo WhatsApp no celular.

POST

https://api.atys.pro/api/whatsapp-qrcode

Gerar QR code para conexão WhatsApp

Headers Obrigatórios

Header Valor Descrição
Authorization Bearer YOUR_ACCESS_TOKEN Token de autenticação
Content-Type application/json Tipo do conteúdo enviado
Accept application/json Tipo de resposta esperada

Parâmetros do Body (JSON)

Parâmetro Tipo Obrigatório Descrição
id integer ⚠️ Sim* ID da conexão WhatsApp
key string ⚠️ Sim* Número de telefone com código do país (formato: 5511999999999)
os string ✅ Sim Sistema operacional (ex: "Linux", "Windows", "Mac OS")
browser string ✅ Sim Navegador (ex: "Chrome", "Firefox", "Safari")
Obrigatoriedade: Informe id ou key. Pelo menos um dos dois é obrigatório.

Exemplos de Código

JavaScript (Fetch API)
const response = await fetch('https://api.atys.pro/api/whatsapp-qrcode', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    id: 123,
    key: '5511999999999',
    os: 'Linux',
    browser: 'Chrome'
  })
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

response = requests.post(
    'https://api.atys.pro/api/whatsapp-qrcode',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    json={
        'id': 123,
        'key': '5511999999999',
        'os': 'Linux',
        'browser': 'Chrome'
    }
)

data = response.json()
print(data)
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/whatsapp-qrcode');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'id' => 123,
    'key' => '5511999999999',
    'os' => 'Linux',
    'browser' => 'Chrome'
]));

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('https://api.atys.pro/api/whatsapp-qrcode', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type' => 'application/json',
        'Accept' => 'application/json'
    ],
    'json' => [
        'id' => 123,
        'key' => '5511999999999',
        'os' => 'Linux',
        'browser' => 'Chrome'
    ]
]);

$data = json_decode($response->getBody(), true);
print_r($data);

?>
Go (net/http)
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "id":      123,
        "key":     "5511999999999",
        "os":      "Linux",
        "browser": "Chrome",
    }
    
    jsonData, _ := json.Marshal(payload)
    
    req, _ := http.NewRequest(
        "POST",
        "https://api.atys.pro/api/whatsapp-qrcode",
        bytes.NewBuffer(jsonData),
    )
    
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Accept", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
cURL
curl -X POST https://api.atys.pro/api/whatsapp-qrcode \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "id": 123,
    "key": "5511999999999",
    "os": "Linux",
    "browser": "Chrome"
  }'

3) Criar Conexão WhatsApp

Cria uma nova conexão WhatsApp na plataforma.

POST

https://api.atys.pro/api/whatsapp-create

Criar nova conexão WhatsApp

Headers Obrigatórios

Header Valor Descrição
Authorization Bearer YOUR_ACCESS_TOKEN Token de autenticação
Content-Type application/json Tipo do conteúdo enviado
Accept application/json Tipo de resposta esperada

Parâmetros do Body (JSON)

Parâmetro Tipo Obrigatório Descrição
name string ✅ Sim Nome da conexão
key string ✅ Sim Número de telefone com código do país (formato: 5511999999999)

Exemplos de Código

JavaScript (Fetch API)
const response = await fetch('https://api.atys.pro/api/whatsapp-create', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    name: 'WhatsApp Suporte',
    key: '5511999999999'
  })
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

response = requests.post(
    'https://api.atys.pro/api/whatsapp-create',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    json={
        'name': 'WhatsApp Suporte',
        'key': '5511999999999'
    }
)

data = response.json()
print(data)
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/whatsapp-create');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'name' => 'WhatsApp Suporte',
    'key' => '5511999999999'
]));

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('https://api.atys.pro/api/whatsapp-create', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type' => 'application/json',
        'Accept' => 'application/json'
    ],
    'json' => [
        'name' => 'WhatsApp Suporte',
        'key' => '5511999999999'
    ]
]);

$data = json_decode($response->getBody(), true);
print_r($data);

?>
Go (net/http)
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "name": "WhatsApp Suporte",
        "key":  "5511999999999",
    }
    
    jsonData, _ := json.Marshal(payload)
    
    req, _ := http.NewRequest(
        "POST",
        "https://api.atys.pro/api/whatsapp-create",
        bytes.NewBuffer(jsonData),
    )
    
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Accept", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
cURL
curl -X POST https://api.atys.pro/api/whatsapp-create \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "name": "WhatsApp Suporte",
    "key": "5511999999999"
  }'

4) Atualizar Conexão WhatsApp

Atualiza os dados de uma conexão WhatsApp existente.

POST

https://api.atys.pro/api/whatsapp-update

Atualizar conexão WhatsApp

Headers Obrigatórios

Header Valor Descrição
Authorization Bearer YOUR_ACCESS_TOKEN Token de autenticação
Content-Type application/json Tipo do conteúdo enviado
Accept application/json Tipo de resposta esperada

Parâmetros do Body (JSON)

Parâmetro Tipo Obrigatório Descrição
id integer ⚠️ Sim* ID da conexão a ser atualizada
key string ⚠️ Sim* Número de telefone com código do país (formato: 5511999999999)
name string ❌ Não Novo nome da conexão
new_key string ❌ Não Novo número (formato: 5511999999999) para atualizar a conexão
Obrigatoriedade: Informe id ou key. Pelo menos um dos dois é obrigatório.
Atenção: Se você está atualizando a chave do WhatsApp, você deve informar a chave antiga e a nova chave.

Exemplos de Código

JavaScript (Fetch API)
const response = await fetch('https://api.atys.pro/api/whatsapp-update', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    id: 123,
    key: '5511999999999',
    name: 'WhatsApp Vendas',
    new_key: '5511888888888'
  })
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

response = requests.post(
    'https://api.atys.pro/api/whatsapp-update',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    json={
        'id': 123,
        'key': '5511999999999',
        'name': 'WhatsApp Vendas',
        'new_key': '5511888888888'
    }
)

data = response.json()
print(data)
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/whatsapp-update');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'id' => 123,
    'key' => '5511999999999',
    'name' => 'WhatsApp Vendas',
    'new_key' => '5511888888888'
]));

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('https://api.atys.pro/api/whatsapp-update', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type' => 'application/json',
        'Accept' => 'application/json'
    ],
    'json' => [
        'id' => 123,
        'key' => '5511999999999',
        'name' => 'WhatsApp Vendas',
        'new_key' => '5511888888888'
    ]
]);

$data = json_decode($response->getBody(), true);
print_r($data);

?>
Go (net/http)
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "id":   123,
        "key":  "5511999999999",
        "name": "WhatsApp Vendas",
        "new_key": "5511888888888",
    }
    
    jsonData, _ := json.Marshal(payload)
    
    req, _ := http.NewRequest(
        "POST",
        "https://api.atys.pro/api/whatsapp-update",
        bytes.NewBuffer(jsonData),
    )
    
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Accept", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
cURL
curl -X POST https://api.atys.pro/api/whatsapp-update \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "id": 123,
    "key": "5511999999999",
    "name": "WhatsApp Vendas",
    "new_key": "5511888888888"
  }'

5) Deletar Conexão WhatsApp

Remove uma conexão WhatsApp da plataforma.

POST

https://api.atys.pro/api/whatsapp-delete

Deletar conexão WhatsApp

Headers Obrigatórios

Header Valor Descrição
Authorization Bearer YOUR_ACCESS_TOKEN Token de autenticação
Content-Type application/json Tipo do conteúdo enviado
Accept application/json Tipo de resposta esperada

Parâmetros do Body (JSON)

Parâmetro Tipo Obrigatório Descrição
id integer ⚠️ Sim* ID da conexão a ser deletada
key string ⚠️ Sim* Número de telefone com código do país (formato: 5511999999999)
Obrigatoriedade: Informe id ou key. Pelo menos um dos dois é obrigatório.
Atenção: Esta ação é irreversível. Ao deletar uma conexão WhatsApp, todas as conversas e mensagens associadas podem ser perdidas.

Exemplos de Código

JavaScript (Fetch API)
const response = await fetch('https://api.atys.pro/api/whatsapp-delete', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    id: 29,
    key: '5511999999999'
  })
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

response = requests.post(
    'https://api.atys.pro/api/whatsapp-delete',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    json={
        'id': 29,
        'key': '5511999999999'
    }
)

data = response.json()
print(data)
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/whatsapp-delete');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'id' => 29,
    'key' => '5511999999999'
]));

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('https://api.atys.pro/api/whatsapp-delete', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type' => 'application/json',
        'Accept' => 'application/json'
    ],
    'json' => [
        'id' => 29,
        'key' => '5511999999999'
    ]
]);

$data = json_decode($response->getBody(), true);
print_r($data);

?>
Go (net/http)
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "id": 29,
        "key": "5511999999999",
    }
    
    jsonData, _ := json.Marshal(payload)
    
    req, _ := http.NewRequest(
        "POST",
        "https://api.atys.pro/api/whatsapp-delete",
        bytes.NewBuffer(jsonData),
    )
    
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Accept", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
cURL
curl -X POST https://api.atys.pro/api/whatsapp-delete \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "id": 29,
    "key": "5511999999999"
  }'

6) Logout do WhatsApp

Desconecta uma sessão WhatsApp ativa, fechando a conexão com o WhatsApp Web.

POST

https://api.atys.pro/api/whatsapp-logout

Fazer logout de uma conexão WhatsApp

Headers Obrigatórios

Header Valor Descrição
Authorization Bearer YOUR_ACCESS_TOKEN Token de autenticação
Content-Type application/json Tipo do conteúdo enviado
Accept application/json Tipo de resposta esperada

Parâmetros do Body (JSON)

Parâmetro Tipo Obrigatório Descrição
id integer ⚠️ Sim* ID da conexão WhatsApp
key string ⚠️ Sim* Número de telefone com código do país (formato: 5511999999999)
Obrigatoriedade: Informe id ou key. Pelo menos um dos dois é obrigatório.

Exemplos de Código

JavaScript (Fetch API)
const response = await fetch('https://api.atys.pro/api/whatsapp-logout', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    id: 29,
    key: '5511999999999'
  })
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

response = requests.post(
    'https://api.atys.pro/api/whatsapp-logout',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    json={
        'id': 29,
        'key': '5511999999999'
    }
)

data = response.json()
print(data)
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/whatsapp-logout');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'id' => 29,
    'key' => '5511999999999'
]));

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('https://api.atys.pro/api/whatsapp-logout', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type' => 'application/json',
        'Accept' => 'application/json'
    ],
    'json' => [
        'id' => 29,
        'key' => '5511999999999'
    ]
]);

$data = json_decode($response->getBody(), true);
print_r($data);

?>
Go (net/http)
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "id": 29,
        "key": "5511999999999",
    }
    
    jsonData, _ := json.Marshal(payload)
    
    req, _ := http.NewRequest(
        "POST",
        "https://api.atys.pro/api/whatsapp-logout",
        bytes.NewBuffer(jsonData),
    )
    
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Accept", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
cURL
curl -X POST https://api.atys.pro/api/whatsapp-logout \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "id": 29,
    "key": "5511999999999"
  }'

7) Obter Lista de Contatos

Recupera a lista de contatos de uma conexão WhatsApp específica.

POST

https://api.atys.pro/api/whatsapp-contact-list

Obter lista de contatos do WhatsApp

Headers Obrigatórios

Header Valor Descrição
Authorization Bearer YOUR_ACCESS_TOKEN Token de autenticação
Content-Type application/json Tipo do conteúdo enviado
Accept application/json Tipo de resposta esperada

Parâmetros do Body (JSON)

Parâmetro Tipo Obrigatório Descrição
id integer ⚠️ Sim* ID da conexão WhatsApp
key string ⚠️ Sim* Número de telefone com código do país (formato: 5511999999999)
Obrigatoriedade: Informe id ou key. Pelo menos um dos dois é obrigatório.

Exemplos de Código

JavaScript (Fetch API)
const response = await fetch('https://api.atys.pro/api/whatsapp-contact-list', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    id: 123,
    key: '5511999999999'
  })
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

response = requests.post(
    'https://api.atys.pro/api/whatsapp-contact-list',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    json={
        'id': 123,
        'key': '5511999999999',
    }
)

data = response.json()
print(data)
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/whatsapp-contact-list');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'id' => 123,
    'key' => '5511999999999',
]));

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('https://api.atys.pro/api/whatsapp-contact-list', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type' => 'application/json',
        'Accept' => 'application/json'
    ],
    'json' => [
        'id' => 123,
        'key' => '5511999999999',
    ]
]);

$data = json_decode($response->getBody(), true);
print_r($data);

?>
Go (net/http)
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "id": 123,
        "key": "5511999999999",
    }
    
    jsonData, _ := json.Marshal(payload)
    
    req, _ := http.NewRequest(
        "POST",
        "https://api.atys.pro/api/whatsapp-contact-list",
        bytes.NewBuffer(jsonData),
    )
    
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Accept", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
cURL
curl -X POST https://api.atys.pro/api/whatsapp-contact-list \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "id": 123,
    "key": "5511999999999"
  }'

8) Obter Lista de Grupos

Recupera a lista de grupos de uma conexão WhatsApp específica.

POST

https://api.atys.pro/api/whatsapp-group-list

Obter lista de grupos do WhatsApp

Headers Obrigatórios

Header Valor Descrição
Authorization Bearer YOUR_ACCESS_TOKEN Token de autenticação
Content-Type application/json Tipo do conteúdo enviado
Accept application/json Tipo de resposta esperada

Parâmetros do Body (JSON)

Parâmetro Tipo Obrigatório Descrição
id integer ⚠️ Sim* ID da conexão WhatsApp
key string ⚠️ Sim* Número de telefone com código do país (formato: 5511999999999)
Obrigatoriedade: Informe id ou key. Pelo menos um dos dois é obrigatório.

Exemplos de Código

JavaScript (Fetch API)
const response = await fetch('https://api.atys.pro/api/whatsapp-group-list', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    id: 123,
    key: '5511999999999'
  })
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

response = requests.post(
    'https://api.atys.pro/api/whatsapp-group-list',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    json={
        'id': 123,
        'key': '5511999999999'
    }
)

data = response.json()
print(data)
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/whatsapp-group-list');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'id' => 123,
    'key' => '5511999999999'
]));

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('https://api.atys.pro/api/whatsapp-group-list', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type' => 'application/json',
        'Accept' => 'application/json'
    ],
    'json' => [
        'id' => 123,
        'key' => '5511999999999'
    ]
]);

$data = json_decode($response->getBody(), true);
print_r($data);

?>
Go (net/http)
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "id": 123,
        "key": "5511999999999",
    }
    
    jsonData, _ := json.Marshal(payload)
    
    req, _ := http.NewRequest(
        "POST",
        "https://api.atys.pro/api/whatsapp-group-list",
        bytes.NewBuffer(jsonData),
    )
    
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Accept", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
cURL
curl -X POST https://api.atys.pro/api/whatsapp-group-list \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "id": 123,
    "key": "5511999999999"
  }'

9) Verificar Números no WhatsApp

Verifica se uma lista de números possui WhatsApp ativo. Útil para validação em massa de números.

POST

https://api.atys.pro/api/whatsapp-check-on-whatsapp

Verificar múltiplos números no WhatsApp

Headers Obrigatórios

Header Valor Descrição
Authorization Bearer YOUR_ACCESS_TOKEN Token de autenticação
Content-Type application/json Tipo do conteúdo enviado
Accept application/json Tipo de resposta esperada

Parâmetros do Body (JSON)

Parâmetro Tipo Obrigatório Descrição
id integer ⚠️ Sim* ID da conexão WhatsApp que fará a verificação
key string ⚠️ Sim* Número de telefone com código do país (formato: 5511999999999)
numbers array ✅ Sim Array de números a verificar (formato: ["5511999999999", "5511888888888"])
are_groups boolean ❌ Não Se os números são de grupos (padrão: false)

Exemplos de Código

JavaScript (Fetch API)
const response = await fetch('https://api.atys.pro/api/whatsapp-check-on-whatsapp', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    id: 123,
    key: '5511999999999',
    numbers: ['5511999999999', '5511988888888']
  })
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

response = requests.post(
    'https://api.atys.pro/api/whatsapp-check-on-whatsapp',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    json={
        'id': 123,
        'key': '5511999999999',
        'numbers': ['5511999999999', '5511988888888']
    }
)

data = response.json()
print(data)
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/whatsapp-check-on-whatsapp');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'id' => 123,
    'key' => '5511999999999',
    'numbers' => ['5511999999999', '5511988888888']
]));

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('https://api.atys.pro/api/whatsapp-check-on-whatsapp', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type' => 'application/json',
        'Accept' => 'application/json'
    ],
    'json' => [
        'id' => 123,
        'key' => '5511999999999',
        'numbers' => ['5511999999999', '5511988888888']
    ]
]);

$data = json_decode($response->getBody(), true);
print_r($data);

?>
Go (net/http)
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "id":      123,
        "key":     "5511999999999",
        "numbers": []string{"5511999999999", "5511988888888"},
    }
    
    jsonData, _ := json.Marshal(payload)
    
    req, _ := http.NewRequest(
        "POST",
        "https://api.atys.pro/api/whatsapp-check-on-whatsapp",
        bytes.NewBuffer(jsonData),
    )
    
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Accept", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
cURL
curl -X POST https://api.atys.pro/api/whatsapp-check-on-whatsapp \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "id": 123,
    "key": "5511999999999",
    "numbers": ["5511999999999", "5511988888888"]
  }'

10) Enviar Mensagem via WhatsApp

Para enviar mensagens via WhatsApp, utilize o endpoint de envio de mensagens. Este endpoint permite enviar mensagens de texto e arquivos.

Documentação Completa: Consulte a documentação de Envio de Mensagens para ver todos os detalhes, exemplos de código e parâmetros disponíveis.
POST

https://api.atys.pro/api/api-send-message

Enviar mensagem via WhatsApp

Headers Obrigatórios

Header Valor Descrição
Authorization Bearer YOUR_ACCESS_TOKEN Token de autenticação
Content-Type application/json Tipo do conteúdo enviado
Accept application/json Tipo de resposta esperada

Parâmetros Principais

Parâmetro Tipo Obrigatório Descrição
platform string ✅ Sim Deve ser "whatsapp"
sender_key string ✅ Sim Número do remetente (canal WhatsApp conectado)
contact_key string ✅ Sim Número do destinatário. Exemplo: para contato individual "5511999999999" e para grupo "5511999999999-1672123456" ou "5511999999999". Não é necessário @c.us, @g.us ou @s.whatsapp.net.
contact_is_group boolean ✅ Sim Se o destinatário é um grupo (true) ou contato individual (false)
Nota: Para grupos, o sender_key deve ser membro do grupo e ter permissão para enviar mensagens (não estar restrito por modo anúncio)
enqueue boolean ❌ Não Se true, enfileira a mensagem. Se false, envia imediatamente: você cuida do envio. (Padrão: true)
text string ⚠️ Sim* Texto da mensagem
file file ⚠️ Sim* Arquivo a ser enviado (imagem, PDF, vídeo, etc)
* Importante: Você deve fornecer text OU file. Pelo menos um dos dois é obrigatório.
⚠️ Atenção - Envio para Grupos: Se você está enviando uma mensagem para um grupo (contact_is_group: true), é obrigatório que o número do WhatsApp remetente (sender_key) seja membro do grupo de destino.

Validação automática: O sistema verifica automaticamente se o remetente é membro do grupo antes de tentar enviar a mensagem. Se não for membro, a requisição retornará erro 400 Bad Request e a mensagem será marcada como falha por falta de autorização.
Modo Anúncio: Se o grupo estiver em modo anúncio (announce mode), apenas administradores podem enviar mensagens. O sistema também valida isso automaticamente. Se o remetente não for administrador em um grupo com modo anúncio ativo, a requisição retornará erro 400 Bad Request e a mensagem será marcada como falha por falta de autorização.
Envio de arquivos: para enviar imagem, PDF, vídeo ou outros documentos, use Content-Type: multipart/form-data e envie o campo file. Não defina o header Content-Type manualmente quando usar FormData; o navegador/cliente cuidará disso.

Exemplos de Código

JavaScript (Fetch API)
const response = await fetch('https://api.atys.pro/api/api-send-message', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Content-Type': 'application/json',
    'Accept': 'application/json'
  },
  body: JSON.stringify({
    platform: 'whatsapp',
    sender_key: '5511999999999',
    contact_key: '5511988888888',
    contact_is_group: false,
    enqueue: true,
    text: 'Olá! Como posso ajudar?'
  })
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

response = requests.post(
    'https://api.atys.pro/api/api-send-message',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    json={
        'platform': 'whatsapp',
        'sender_key': '5511999999999',
        'contact_key': '5511988888888',
        'contact_is_group': False,
        'enqueue': True,
        'text': 'Olá! Como posso ajudar?'
    }
)

data = response.json()
print(data)
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/api-send-message');

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'platform' => 'whatsapp',
    'sender_key' => '5511999999999',
    'contact_key' => '5511988888888',
    'contact_is_group' => false,
    'enqueue' => true,
    'text' => 'Olá! Como posso ajudar?'
]));

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('https://api.atys.pro/api/api-send-message', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Content-Type' => 'application/json',
        'Accept' => 'application/json'
    ],
    'json' => [
        'platform' => 'whatsapp',
        'sender_key' => '5511999999999',
        'contact_key' => '5511988888888',
        'contact_is_group' => false,
        'enqueue' => true,
        'text' => 'Olá! Como posso ajudar?'
    ]
]);

$data = json_decode($response->getBody(), true);
print_r($data);

?>
Go (net/http)
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "platform":         "whatsapp",
        "sender_key":       "5511999999999",
        "contact_key":      "5511988888888",
        "contact_is_group": false,
        "enqueue":          true,
        "text":             "Olá! Como posso ajudar?",
    }
    
    jsonData, _ := json.Marshal(payload)
    
    req, _ := http.NewRequest(
        "POST",
        "https://api.atys.pro/api/api-send-message",
        bytes.NewBuffer(jsonData),
    )
    
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Accept", "application/json")
    
    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
cURL
curl -X POST https://api.atys.pro/api/api-send-message \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "platform": "whatsapp",
    "sender_key": "5511999999999",
    "contact_key": "5511988888888",
    "contact_is_group": false,
    "enqueue": true,
    "text": "Olá! Como posso ajudar?"
  }'

Exemplos de Código - Mensagem com Arquivo

Use multipart/form-data e envie file junto com os demais campos. Pelo menos text ou file deve ser enviado.

JavaScript (Fetch + FormData)
// Enviar arquivo com FormData
const formData = new FormData();
formData.append('platform', 'whatsapp');
formData.append('sender_key', '5511999999999');
formData.append('contact_key', '5511988888888');
formData.append('contact_is_group', 'false');
formData.append('text', 'Segue o documento solicitado');
formData.append('file', fileInput.files[0]); // arquivo do input type="file"

const response = await fetch('https://api.atys.pro/api/api-send-message', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer SEU_ACCESS_TOKEN',
    'Accept': 'application/json'
    // Não defina Content-Type aqui; o navegador define automaticamente
  },
  body: formData
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

files = {'file': open('caminho/para/arquivo.pdf', 'rb')}
data = {
    'platform': 'whatsapp',
    'sender_key': '5511999999999',
    'contact_key': '5511988888888',
    'contact_is_group': 'false',
    'text': 'Segue o documento solicitado'
}

response = requests.post(
    'https://api.atys.pro/api/api-send-message',
    headers={
        'Authorization': 'Bearer SEU_ACCESS_TOKEN',
        'Accept': 'application/json'
    },
    data=data,
    files=files
)

print(response.json())
PHP (cURL)
<?php

$ch = curl_init('https://api.atys.pro/api/api-send-message');

$payload = [
    'platform' => 'whatsapp',
    'sender_key' => '5511999999999',
    'contact_key' => '5511988888888',
    'contact_is_group' => 'false',
    'text' => 'Segue o documento solicitado',
    'file' => new CURLFile('/caminho/para/arquivo.pdf')
];

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_ACCESS_TOKEN',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);

print_r($data);

?>
PHP (Guzzle HTTP Client)
<?php
// composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

$client = new Client();

$response = $client->post('https://api.atys.pro/api/api-send-message', [
    'headers' => [
        'Authorization' => 'Bearer SEU_ACCESS_TOKEN',
        'Accept' => 'application/json',
    ],
    'multipart' => [
        ['name' => 'platform', 'contents' => 'whatsapp'],
        ['name' => 'sender_key', 'contents' => '5511999999999'],
        ['name' => 'contact_key', 'contents' => '5511988888888'],
        ['name' => 'contact_is_group', 'contents' => 'false'],
        ['name' => 'text', 'contents' => 'Segue o documento solicitado'],
        [
            'name' => 'file',
            'contents' => fopen('/caminho/para/arquivo.pdf', 'r'),
            'filename' => 'arquivo.pdf'
        ],
    ]
]);

echo $response->getBody();

?>
Go (multipart/form-data)
package main

import (
    "bytes"
    "fmt"
    "mime/multipart"
    "net/http"
    "os"
)

func main() {
    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)

    writer.WriteField("platform", "whatsapp")
    writer.WriteField("sender_key", "5511999999999")
    writer.WriteField("contact_key", "5511988888888")
    writer.WriteField("contact_is_group", "false")
    writer.WriteField("text", "Segue o documento solicitado")

    file, _ := os.Open("/caminho/para/arquivo.pdf")
    defer file.Close()

    part, _ := writer.CreateFormFile("file", "arquivo.pdf")
    io.Copy(part, file)
    writer.Close()

    req, _ := http.NewRequest("POST", "https://api.atys.pro/api/api-send-message", body)
    req.Header.Set("Authorization", "Bearer SEU_ACCESS_TOKEN")
    req.Header.Set("Accept", "application/json")
    req.Header.Set("Content-Type", writer.FormDataContentType())

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    respBody, _ := io.ReadAll(resp.Body)
    fmt.Println(string(respBody))
}
cURL
curl -X POST https://api.atys.pro/api/api-send-message \
  -H "Authorization: Bearer SEU_ACCESS_TOKEN" \
  -H "Accept: application/json" \
  -F "platform=whatsapp" \
  -F "sender_key=5511999999999" \
  -F "contact_key=5511988888888" \
  -F "contact_is_group=false" \
  -F "text=Segue o documento solicitado" \
  -F "file=@/caminho/para/arquivo.pdf"

11) Erros Comuns

Causa: Token de autenticação inválido, expirado ou não fornecido.

Solução: Obtenha um novo access_token através do endpoint de autenticação.

Causa: O ID da conexão WhatsApp especificado não existe ou não pertence à sua conta.

Solução: Verifique se o ID está correto usando o endpoint GET /api/whatsapps.

Causas possíveis:

  • Parâmetros obrigatórios não foram fornecidos ou estão em formato inválido
  • Envio para grupos: O número do WhatsApp remetente (sender_key) não é membro do grupo de destino
  • Modo anúncio: O grupo está em modo anúncio e o remetente não é administrador

Solução:

  • Verifique se todos os parâmetros obrigatórios estão presentes e no formato correto
  • Para grupos: certifique-se de que o sender_key é membro do grupo antes de enviar
  • Para grupos em modo anúncio: use um sender_key que seja administrador do grupo

Exemplos de resposta:

Remetente não é membro do grupo:

{
  "message": "Sender WhatsApp number is not a member of the group.",
  "sender_key": "5521999999999",
  "group_key": "120363123456789@g.us"
}

Grupo em modo anúncio e remetente não é admin:

{
  "message": "Sender cannot send messages to this group. Group is in announce mode and sender is not an admin.",
  "sender_key": "5521999999999",
  "group_key": "120363123456789@g.us",
  "is_announce_mode": true
}

Dicas e Boas Práticas

Recomendações
  • ✅ Sempre valide números antes de enviar mensagens
  • ✅ Mantenha suas conexões ativas e monitore o status
  • ✅ Use nomes descritivos para suas conexões
  • ✅ Armazene o QR code com segurança
  • ✅ Implemente tratamento de erros apropriado
  • ✅ Monitore logs de eventos no painel
Limitações
  • ⚠️ Cada conexão suporta apenas um número WhatsApp
  • ⚠️ QR codes expiram após alguns minutos
  • ⚠️ Respeite as políticas do WhatsApp para evitar bloqueios
  • ⚠️ Evite envio em massa não autorizado
  • ⚠️ A sessão pode expirar por inatividade
  • ⚠️ Não compartilhe suas credenciais de API