HomeDocsIntegracoes
Webhooks e API

Integracoes e Webhooks

Conecte a Lex Platform ao seu sistema via webhooks com entrega garantida, gerenciamento de API Keys e integracoes nativas com ferramentas populares do mercado juridico.

Configuracao de Webhooks

Webhooks enviam requisicoes HTTP POST para a URL configurada sempre que um evento ocorre na plataforma. Configure via API ou diretamente no portal em Configuracoes > Integracoes > Webhooks.

POST/v1/webhooks

Cria um novo endpoint de webhook com os eventos e configuracoes desejados.

curl -X POST \
  -H "X-API-Key: $LEX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://meuapp.com/lex-webhook",
    "eventos": ["movimentacao.nova", "prazo.vencendo", "publicacao.nova"],
    "ativo": true,
    "secret": "whsec_minha_chave_secreta_32chars"
  }' \
  "https://api.lex.com.br/v1/webhooks"

# Resposta 201 Created
{
  "id": "wh_a1b2c3d4e5f6",
  "url": "https://meuapp.com/lex-webhook",
  "eventos": ["movimentacao.nova", "prazo.vencendo", "publicacao.nova"],
  "ativo": true,
  "created_at": "2024-12-15T10:00:00Z"
}

Tipos de Eventos

Subscreva apenas nos eventos relevantes para o seu sistema. Cada webhook pode escutar multiplos tipos de evento.

EventoDescricaoPlanos
movimentacao.novaNova movimentacao detectada em processo monitoradoTodos
prazo.vencendoPrazo processual a 5, 3 ou 1 dia(s) do vencimentoTodos
publicacao.novaNova publicacao no diario oficial com match nos filtros configuradosPro / Enterprise
processo.atualizadoDados cadastrais do processo foram atualizados (status, classe, valor)Todos
peticao.protocoladaPeticao foi protocolada com sucesso no tribunalTodos
peticao.falhouTentativa de protocolo eletronico falhou — requer acao manualTodos
monitoramento.inativoProcesso monitorado foi arquivado ou extinto no tribunalTodos

Formato do Payload

Todos os webhooks seguem um envelope padrao com os campos evento, timestamp e dados. O campo dados varia conforme o tipo de evento.

movimentacao.nova
{
  "id": "evt_abc123",
  "evento": "movimentacao.nova",
  "timestamp": "2024-12-15T10:30:00Z",
  "dados": {
    "processo": "1234567-89.2024.8.26.0100",
    "tribunal": "TJSP",
    "movimentacao": {
      "id": "uuid",
      "data": "2024-12-15",
      "tipo": "Despacho",
      "descricao": "Vistos. Defiro o pedido de tutela antecipada..."
    }
  }
}
prazo.vencendo
{
  "id": "evt_def456",
  "evento": "prazo.vencendo",
  "timestamp": "2024-12-15T08:00:00Z",
  "dados": {
    "processo": "1234567-89.2024.8.26.0100",
    "descricao_prazo": "Contestacao",
    "vence_em": "2024-12-18",
    "dias_restantes": 3
  }
}
publicacao.nova
{
  "id": "evt_ghi789",
  "evento": "publicacao.nova",
  "timestamp": "2024-12-15T07:30:00Z",
  "dados": {
    "diario": "DJE-TJSP",
    "edicao": "3748",
    "data_publicacao": "2024-12-15",
    "processo": "1234567-89.2024.8.26.0100",
    "trecho": "VISTOS. Fls. 234. Defiro a gratuidade..."
  }
}

Politica de Retry e Entrega

O sistema garante a entrega com politica de retry automatico com backoff exponencial. A URL de destino deve responder com HTTP 2xx em ate 30 segundos; caso contrario, a tentativa e considerada falha.

Sequencia de Retry (Backoff Exponencial)

0

Tentativa inicial

Entrega imediata apos o evento ser disparado.

t + 0s
1

1o retry

Primeira retentativa apos falha.

t + 1 min
2

2o retry

Segunda retentativa com backoff aumentado.

t + 5 min
3

3o retry (ultimo)

Terceira e ultima retentativa. Apos falha, o evento e registrado como nao entregue no log.

t + 30 min

Reenvio manual: Eventos nao entregues podem ser reenviados manualmente pelo portal em Configuracoes > Webhooks > Log de Entregas. Webhooks com mais de 10 falhas consecutivas sao desativados automaticamente com notificacao por email.

Verificacao de Assinatura

Cada requisicao de webhook inclui o header X-Lex-Signature com assinatura HMAC-SHA256 do payload usando o secret configurado. Sempre verifique a assinatura antes de processar o payload.

Node.js / TypeScript
import crypto from 'crypto';

function verificarAssinatura(
  payload: string,
  assinatura: string,
  secret: string
): boolean {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload, 'utf8')
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(`sha256=${expected}`),
    Buffer.from(assinatura)
  );
}
Python
import hmac
import hashlib

def verificar_assinatura(payload: str, assinatura: str, secret: str) -> bool:
    expected = "sha256=" + hmac.new(
        secret.encode("utf-8"),
        payload.encode("utf-8"),
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, assinatura)

Gerenciamento de API Keys

API Keys sao vinculadas ao escritorio (tenant) e podem ter permissoes granulares por recurso. Cada escritorio pode ter ate 10 API Keys ativas simultaneamente. Chaves prefixadas com sk_live_ sao de producao; sk_test_ sao de sandbox.

MetodoEndpointDescricao
GET/v1/api-keysLista todas as API Keys do escritorio com status e ultimo uso
POST/v1/api-keysCria uma nova API Key com permissoes e nome descritivo
DELETE/v1/api-keys/{id}Revoga imediatamente uma API Key (irreversivel)
PUT/v1/api-keys/{id}Atualiza nome, permissoes ou rate limit customizado da chave
# Criar nova API Key com permissoes limitadas
curl -X POST \
  -H "X-API-Key: $LEX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "nome": "Integracao CRM Juridico",
    "permissoes": ["processos:read", "monitoramentos:write"],
    "expires_at": "2025-12-31"
  }' \
  "https://api.lex.com.br/v1/api-keys"

# Resposta — a chave secreta so e exibida uma vez
{
  "id": "key_xyz789",
  "nome": "Integracao CRM Juridico",
  "chave": "sk_live_abc123...",
  "permissoes": ["processos:read", "monitoramentos:write"],
  "expires_at": "2025-12-31",
  "created_at": "2024-12-15T10:00:00Z"
}

Atencao: O valor da chave (sk_live_...) e exibido apenas uma vez no momento da criacao. Guarde-a com seguranca. Em caso de perda, revogue e crie uma nova chave.

Integracoes Nativas

Alem dos webhooks, a plataforma oferece integracoes pre-configuradas com ferramentas populares. Configure em Configuracoes > Integracoes.

Slack / Microsoft Teams

Receba alertas de movimentacoes e prazos diretamente no canal do escritorio. Configure por carteira ou advogado responsavel.

Email

Notificacoes por email com resumo diario, alertas instantaneos de prazos criticos ou digest semanal configuravel.

Google Sheets

Exporte automaticamente dados de processos, movimentacoes e relatorios gerenciais para planilhas Google.

Zapier / Make (n8n)

Conecte com centenas de aplicativos via automacao no-code usando os triggers de webhook da plataforma.