Do onboarding ao monitoramento contínuo: como, na prática, construir um pipeline completo que integra dados jurídicos ao core da sua Fintech.
Fintechs que operam crédito, seguros, BaaS ou qualquer produto financeiro no Brasil têm um problema em comum: os bureaus de crédito tradicionais não capturam o passivo judicial de um cliente. Uma pessoa pode ter score 800 no Serasa e ao mesmo tempo ter 15 execuções trabalhistas ativas.
Este artigo mostra como construir um pipeline de dados jurídicos robusto — desde a ingestão via API até o consumo em decisões de crédito — com arquitetura de referência e código funcional. Para uma visão geral da plataforma, acesse judit.io.
Por que fintechs precisam de dados jurídicos
Os dados que bureaus tradicionais fornecem (histórico de crédito, negativações, score comportamental) capturam o passado financeiro de um indivíduo ou empresa. O que eles não capturam é o passivo jurídico ativo — e esse passivo é frequentemente o melhor indicador de default iminente. A Judit foi construída exatamente para preencher essa lacuna, oferecendo acesso unificado ao Judiciário brasileiro via API.
Execuções fiscais ativas — dívidas com Fazenda, altamente correlacionadas com fluxo de caixa negativo.
Execuções trabalhistas — passivo escondido que pode consumir reservas rapidamente.
Recuperação judicial ou falência — sinal crítico que pode aparecer antes nos tribunais do que no bureau.
Volume crescente de processos consumeristas — indica insatisfação de clientes e risco reputacional.
Mandados de prisão ativos — dado de compliance crítico para KYC/PLD-FT.
Arquitetura de referência — o pipeline completo
Stack de tecnologia recomendada
Antes de implementar, consulte a documentação oficial da Judit para detalhes atualizados sobre endpoints, rate limits e autenticação.
Implementação — Fluxo de Onboarding com KYC Jurídico
O fluxo mais crítico para fintechs é o de onboarding. A cada novo cliente cadastrado, o pipeline precisa: consultar os dados cadastrais, verificar processos ativos, checar mandados de prisão e gerar um perfil de risco jurídico. Veja a referência completa dos parâmetros disponíveis na documentação da API.
from dataclasses import dataclass from enum import Enum import asyncio import aiohttp class RiscoJuridico(Enum): BAIXO = "low" MEDIO = "medium" ALTO = "high" CRITICO = "critical" @dataclass class PerfilRiscoJuridico: cpf_cnpj: str total_processos: int execucoes_fiscais: int execucoes_trabalhistas: int valor_total_causas: float tem_recuperacao_judicial: bool tem_mandado_prisao: bool nivel_risco: RiscoJuridico recomendacao: str class PipelineKYCJuridico: def __init__(self, api_key: str): self.api_key = api_key self.headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" } self.endpoint = "https://requests.prod.judit.io/requests" async def consultar_paralelo(self, cpf_cnpj: str) -> dict: """Faz todas as consultas necessárias em paralelo.""" async with aiohttp.ClientSession() as session: # Executa 3 consultas simultaneamente (mais rápido) tarefas = [ self._consultar(session, cpf_cnpj, "entity"), # dados cadastrais self._consultar(session, cpf_cnpj, "lawsuits"), # processos self._consultar(session, cpf_cnpj, "warrant"), # mandados de prisão ] resultados = await asyncio.gather(*tarefas, return_exceptions=True) return { "entity": resultados[0], "lawsuits": resultados[1], "warrants": resultados[2] } async def _consultar(self, session, cpf_cnpj, response_type): payload = {"search_type": "cpf_cnpj", "search_key": cpf_cnpj, "response_type": response_type} async with session.post(self.endpoint, headers=self.headers, json=payload) as r: return await r.json() def calcular_risco(self, dados: dict) -> PerfilRiscoJuridico: """Calcula o perfil de risco jurídico a partir dos dados coletados.""" processos = dados.get("lawsuits", {}).get("lawsuits", []) mandados = dados.get("warrants", {}).get("warrants", []) # Filtra por tipo de processo execucoes_fiscais = [p for p in processos if "Execução Fiscal" in p.get("subject", "")] execucoes_trab = [p for p in processos if p.get("court", "").startswith("TRT")] rec_judicial = any("Recuperação Judicial" in p.get("subject", "") for p in processos) valor_total = sum(p.get("value", 0) for p in processos) # Determina nível de risco if mandados or rec_judicial: risco = RiscoJuridico.CRITICO recomendacao = "BLOQUEAR - Mandado de prisão ou recuperação judicial ativa" elif len(execucoes_fiscais) > 5 or valor_total > 500_000: risco = RiscoJuridico.ALTO recomendacao = "REVISAR - Alto volume de execuções ou valor elevado" elif len(processos) > 10 or execucoes_trab: risco = RiscoJuridico.MEDIO recomendacao = "APROVAR COM LIMITE REDUZIDO" else: risco = RiscoJuridico.BAIXO recomendacao = "APROVAR" return PerfilRiscoJuridico( cpf_cnpj=dados["lawsuits"].get("search_key", ""), total_processos=len(processos), execucoes_fiscais=len(execucoes_fiscais), execucoes_trabalhistas=len(execucoes_trab), valor_total_causas=valor_total, tem_recuperacao_judicial=rec_judicial, tem_mandado_prisao=bool(mandados), nivel_risco=risco, recomendacao=recomendacao )
Fluxo de monitoramento contínuo da carteira
Após o onboarding, o pipeline precisa monitorar continuamente todos os clientes ativos. Quando um cliente aprovado abre novos processos ou tem uma deterioração de perfil, o sistema precisa ser notificado automaticamente. A Judit oferece um endpoint dedicado de tracking com suporte a webhooks para esse cenário.
import requests from typing import List def ativar_monitoramento_carteira(cnpjs: List[str], webhook_url: str) -> dict: """ Ativa monitoramento para toda a carteira de clientes. Cada movimentação relevante será notificada via webhook. """ resultados = [] for cnpj in cnpjs: payload = { "search_type": "cpf_cnpj", "search_key": cnpj, "webhook_url": webhook_url, "notification_config": { "on_new_lawsuit": True, "on_movement": True, "on_decision": True, # Filtra por tipos críticos para reduzir ruído "filter_subjects": [ "Execução Fiscal", "Recuperação Judicial", "Falência", "Execução de Título Extrajudicial" ] } } response = requests.post( "https://tracking.prod.judit.io/tracking", headers={"Authorization": f"Bearer {API_KEY}"}, json=payload ) resultados.append({"cnpj": cnpj, "status": response.status_code}) ativados = sum(1 for r in resultados if r["status"] == 201) print(f"✅ {ativados}/{len(cnpjs)} clientes em monitoramento ativo") return {"ativados": ativados, "detalhes": resultados} # Webhook que recebe alertas e reavalia risco do cliente def reavaliar_risco_cliente(evento_webhook: dict): cnpj = evento_webhook["search_key"] novo_processo = evento_webhook.get("lawsuit", {}) # Verifica se é processo crítico if "Recuperação Judicial" in novo_processo.get("subject", ""): bloquear_cliente(cnpj, motivo="Recuperação judicial detectada") notificar_time_risco(cnpj, urgencia="CRITICA") elif novo_processo.get("value", 0) > 100_000: reduzir_limite(cnpj, percentual=50) notificar_time_risco(cnpj, urgencia="ALTA")
Considerações de LGPD para fintechs
Dados jurídicos envolvem informações pessoais. Para operar em conformidade com a LGPD, seu pipeline precisa observar:
- Base legal: dados processuais são públicos por natureza (Art. 7, §3 da LGPD), mas o tratamento ainda exige finalidade legítima documentada
- Minimização: colete apenas o necessário — se você precisa saber se há execuções fiscais, não precisa armazenar todas as movimentações do processo
- Retenção: defina um prazo de retenção para dados de prospects rejeitados (60-90 dias é prática comum)
- Logs de acesso: registre quem acessou quais dados e quando — essencial para responder a solicitações do titular
- Criptografia: CPFs, CNPJs e dados processuais devem ser criptografados em repouso e em trânsito
Resumo: checklist de implementação
- Criar conta na Judit e escolher o plano adequado em judit.io/planos
- Gerar API Key e explorar a documentação de introdução
- Implementar cliente de API com retry e backoff exponencial
- Construir fluxo de onboarding com consultas paralelas (entity + lawsuits + warrant)
- Implementar função de classificação de risco baseada em regras
- Configurar monitoramento de carteira com webhook URL seguro
- Implementar fila (SQS/RabbitMQ) para desacoplar ingestão do processamento
- Criar tabela de perfis de risco jurídico no banco de dados
- Documentar base legal LGPD para tratamento dos dados
Comece a construir seu pipeline agora
A Judit oferece documentação completa, exemplos de código e suporte técnico para integração com sua fintech.






