Documentação
Envie sua primeira mensagem.
A API usa o UUID e o token de cada instância. Você encontra os dois dados na área do cliente depois de conectar seu número.
Autenticação
Envie o token da instância no cabeçalho Authorization. Não exponha esse token no navegador nem em repositórios públicos.
Authorization: Bearer INSTANCE_TOKEN
Content-Type: application/json
Accept: application/jsonEnviar mensagem de texto
POST https://api.zaptive.com.br/api/instances/{INSTANCE_UUID}/messages/text
| Campo | Regra |
|---|---|
| phone | Obrigatório. DDI + DDD + número; aceita de 8 a 20 caracteres numéricos. |
| message | Obrigatório. Texto com até 4.096 caracteres. |
Exemplos
Node.js
const response = await fetch(
"https://api.zaptive.com.br/api/instances/INSTANCE_UUID/messages/text",
{
method: "POST",
headers: {
"Authorization": "Bearer INSTANCE_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
},
body: JSON.stringify({
phone: "5581999999999",
message: "Seu pedido saiu para entrega"
})
}
);
const result = await response.json();PHP
$response = Http::withToken(env('ZAPTIVE_INSTANCE_TOKEN'))
->acceptJson()
->post(
'https://api.zaptive.com.br/api/instances/' . env('ZAPTIVE_INSTANCE_UUID') . '/messages/text',
[
'phone' => '5581999999999',
'message' => 'Seu pedido saiu para entrega',
]
);
$result = $response->json();Python
import requests
url = "https://api.zaptive.com.br/api/instances/INSTANCE_UUID/messages/text"
headers = {
"Authorization": "Bearer INSTANCE_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json",
}
payload = {
"phone": "5581999999999",
"message": "Seu pedido saiu para entrega",
}
response = requests.post(url, headers=headers, json=payload, timeout=30)
result = response.json()Resposta de sucesso
O código 202 Accepted confirma que a mensagem entrou na fila. O campo status será queued.
{
"data": {
"uuid": "UUID_DO_REGISTRO",
"direction": "sent",
"type": "text",
"status": "queued",
"payload": {
"job_id": "ID_DO_JOB"
}
}
}Erros possíveis
| HTTP | Código | Significado |
|---|---|---|
| 401 | UNAUTHENTICATED | Token ausente, inválido ou pertencente a outra instância. |
| 409 | SUBSCRIPTION_INACTIVE | O período de teste ou a assinatura não permite novos envios. |
| 422 | VALIDATION_ERROR | Telefone ou mensagem não passaram pela validação. |
| 429 | TOO_MANY_REQUESTS | Muitas solicitações em pouco tempo. Aguarde e tente novamente. |
| 502/503 | NEXLY_UNAVAILABLE | O conector do WhatsApp está temporariamente indisponível ou não configurado. |