Guias de Integracao

Inicio Rapido

Comece a usar a API do Janus em 3 passos simples:

1

Crie sua conta

Acesse o formulario de registro e crie sua conta de desenvolvedor.

2

Gere uma API Key

No Dashboard > API Keys, crie uma nova chave com os escopos necessarios.

# Sua API key tera o formato:
jns_live_abc123def456ghi789jkl012mno345

# Para sandbox/desenvolvimento:
jns_test_xyz789abc123def456ghi789jkl012
3

Faca sua primeira requisicao

curl -X GET https://api.janus.pactum.ai/v1/sales/prospects \
  -H "Authorization: Bearer jns_live_abc123..." \
  -H "Content-Type: application/json"

Autenticacao

A API do Janus suporta dois metodos de autenticacao:

API Key (Recomendado para integrações)

Use sua API key no header Authorization com o prefixo Bearer.

curl -H "Authorization: Bearer jns_live_sua_chave_aqui" \
  https://api.janus.pactum.ai/v1/sales/prospects

JWT Token (Para aplicacoes web)

Faca login para obter um token JWT e use-o nas requisicoes.

# 1. Obter token
curl -X POST https://api.janus.pactum.ai/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "usuario@empresa.com", "password": "senha123"}'

# Resposta: {"access_token": "eyJhbG...", "expires_in": 3600}

# 2. Usar token
curl -H "Authorization: Bearer eyJhbG..." \
  https://api.janus.pactum.ai/v1/sales/prospects

Gerenciar Prospects

A API de Prospects permite criar, listar e atualizar prospects no seu pipeline de vendas.

Listar Prospects

curl https://api.janus.pactum.ai/v1/sales/prospects?status=qualified&limit=10 \
  -H "Authorization: Bearer jns_live_..."

# Resposta:
{
  "prospects": [
    {
      "id": "prs_123",
      "name": "Empresa XYZ",
      "status": "qualified",
      "score": 85,
      "created_at": "2026-02-15"
    }
  ],
  "total": 150
}

Criar Prospect

curl -X POST https://api.janus.pactum.ai/v1/sales/prospects \
  -H "Authorization: Bearer jns_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Maria Santos",
    "company": "Tech Corp",
    "email": "maria@techcorp.com",
    "phone": "+5511888888888",
    "source": "website"
  }'

Agente IA

O Agente IA do Janus usa Vertex AI para fornecer insights inteligentes sobre vendas, prospects e pipeline. Ele tem acesso aos dados do seu tenant e pode responder perguntas contextualizadas.

Conversar com o Agente

curl -X POST https://api.janus.pactum.ai/v1/agent/chat \
  -H "Authorization: Bearer jns_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Quais sao os prospects mais quentes esta semana?",
    "session_id": "sess_abc123"
  }'

# Resposta:
{
  "response": "Baseado nos dados do seu pipeline, os 3 prospects mais quentes sao...",
  "session_id": "sess_abc123",
  "sources": ["pipeline_data", "prospect_scores"]
}

Webhooks

Configure webhooks para receber notificacoes em tempo real quando eventos ocorrem na plataforma.

Eventos Disponiveis

prospect.createdprospect.updatedprospect.convertedcontact.createdtask.completedmessage.receivedinvoice.createdinvoice.paid

Formato do Payload

POST https://seu-app.com/webhooks/janus
Content-Type: application/json
X-Janus-Signature: sha256=abc123...
X-Janus-Event: prospect.created

{
  "event": "prospect.created",
  "timestamp": "2026-03-07T10:00:00Z",
  "data": {
    "id": "prs_124",
    "name": "Maria Santos",
    "company": "Tech Corp",
    "status": "new"
  }
}

Verificacao de Assinatura

Sempre verifique a assinatura do webhook para garantir autenticidade:

import hmac
import hashlib

def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(
        secret.encode(),
        payload,
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

Integracao WhatsApp

Conecte o WhatsApp Business para enviar mensagens automatizadas e gerenciar conversas com prospects.

Pre-requisitos

  1. Tenha um numero de telefone registrado no portal Janus
  2. Gere uma chave de ativacao em Perfil > Secrets
  3. Ative o WhatsApp enviando a chave via mensagem

Enviar Mensagem

curl -X POST https://api.janus.pactum.ai/v1/whatsapp/send \
  -H "Authorization: Bearer jns_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "+5511999999999",
    "message": "Ola! Gostaria de agendar uma demonstracao."
  }'

Tratamento de Erros

A API usa codigos HTTP padrao para indicar sucesso ou falha.

CodigoSignificadoDescricao
200OKRequisicao bem-sucedida
201CreatedRecurso criado com sucesso
400Bad RequestParametros invalidos
401UnauthorizedAPI key invalida ou ausente
403ForbiddenSem permissao para acessar o recurso
404Not FoundRecurso nao encontrado
409ConflictConflito com estado atual
429Too Many RequestsRate limit excedido
500Server ErrorErro interno do servidor

Formato de Erro

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "O campo 'email' e obrigatorio",
    "details": [
      {
        "field": "email",
        "message": "Este campo e obrigatorio"
      }
    ]
  }
}

Rate Limits

A API implementa rate limiting para garantir estabilidade. Os limites variam por plano:

PlanoRequisicoes/minRequisicoes/dia
Starter6010.000
Professional300100.000
Enterprise1.000Ilimitado

Headers de Rate Limit

X-RateLimit-Limit: 300
X-RateLimit-Remaining: 295
X-RateLimit-Reset: 1709808000

Exemplos de Codigo

Python

import requests

API_KEY = "jns_live_sua_chave"
BASE_URL = "https://api.janus.pactum.ai/v1"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# Listar prospects qualificados
response = requests.get(
    f"{BASE_URL}/sales/prospects",
    headers=headers,
    params={"status": "qualified", "limit": 10}
)
prospects = response.json()

# Criar novo prospect
new_prospect = requests.post(
    f"{BASE_URL}/sales/prospects",
    headers=headers,
    json={
        "name": "Maria Santos",
        "company": "Tech Corp",
        "email": "maria@techcorp.com"
    }
)
print(new_prospect.json())

Node.js / TypeScript

const API_KEY = 'jns_live_sua_chave';
const BASE_URL = 'https://api.janus.pactum.ai/v1';

const headers = {
  'Authorization': `Bearer ${API_KEY}`,
  'Content-Type': 'application/json',
};

// Listar prospects qualificados
const response = await fetch(
  `${BASE_URL}/sales/prospects?status=qualified&limit=10`,
  { headers }
);
const prospects = await response.json();

// Criar novo prospect
const newProspect = await fetch(`${BASE_URL}/sales/prospects`, {
  method: 'POST',
  headers,
  body: JSON.stringify({
    name: 'Maria Santos',
    company: 'Tech Corp',
    email: 'maria@techcorp.com',
  }),
});
console.log(await newProspect.json());