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/json

Enviar mensagem de texto

POST https://api.zaptive.com.br/api/instances/{INSTANCE_UUID}/messages/text

CampoRegra
phoneObrigatório. DDI + DDD + número; aceita de 8 a 20 caracteres numéricos.
messageObrigató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

HTTPCódigoSignificado
401UNAUTHENTICATEDToken ausente, inválido ou pertencente a outra instância.
409SUBSCRIPTION_INACTIVEO período de teste ou a assinatura não permite novos envios.
422VALIDATION_ERRORTelefone ou mensagem não passaram pela validação.
429TOO_MANY_REQUESTSMuitas solicitações em pouco tempo. Aguarde e tente novamente.
502/503NEXLY_UNAVAILABLEO conector do WhatsApp está temporariamente indisponível ou não configurado.

Pronto para testar?

Crie sua conta, conecte o número e copie as credenciais da instância.

Criar conta