{"components":{"parameters":{"IdempotencyKey":{"description":"Chave de idempot\u00eancia (ex: UUID). Retries com mesma key retornam a resposta original (TTL 24h).","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":128,"type":"string"}},"PaginationCursor":{"description":"Token opaco da p\u00e1gina seguinte (campo `next_cursor` da resposta anterior). Omita para primeira p\u00e1gina.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},"PaginationLimit":{"description":"Itens por p\u00e1gina (padr\u00e3o 50, m\u00e1x 200).","in":"query","name":"limit","required":false,"schema":{"default":50,"maximum":200,"minimum":1,"type":"integer"}}},"schemas":{"ConsultaResult":{"properties":{"cobranca":{"properties":{"api_key_prefix":{"type":"string"},"valor_cobrado":{"type":"number"}},"type":"object"},"dados":{"type":"object"},"documento":{"type":"string"},"score_contactabilidade":{"properties":{"breakdown":{"type":"object"},"nivel":{"enum":["A","B","C","D"],"type":"string"},"score":{"type":"number"}},"type":"object"},"tipo":{"enum":["CPF","CNPJ"],"type":"string"}},"type":"object"},"Error":{"properties":{"error":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Monitor":{"properties":{"ativo":{"type":"boolean"},"criado_em":{"format":"date-time","type":"string"},"documento":{"type":"string"},"id":{"type":"integer"},"tipo":{"type":"string"},"ultima_mudanca_em":{"format":"date-time","nullable":true,"type":"string"},"ultima_verificacao_em":{"format":"date-time","nullable":true,"type":"string"},"webhook_url":{"nullable":true,"type":"string"}},"type":"object"}},"securitySchemes":{"ApiKeyAuth":{"in":"header","name":"X-API-Key","type":"apiKey"},"OAuth2ClientCredentials":{"flows":{"clientCredentials":{"scopes":{"batch:write":"Submeter jobs em batch","consulta:read":"Consultas CPF/CNPJ (leitura)","monitor:admin":"Criar/deletar monitores + webhooks","monitor:read":"Listar monitores da empresa"},"tokenUrl":"/api/v1/oauth/token"}},"type":"oauth2"}}},"info":{"contact":{"name":"FinderPro","url":"https://finderpro.com.br"},"description":"API REST para consulta e enriquecimento de dados cadastrais (CPF/CNPJ) com monitoramento cont\u00ednuo. Autentica\u00e7\u00e3o por API key (header `X-API-Key`, formato `hex_*`) ou OAuth2 `client_credentials` (Bearer).\n\n**Idempot\u00eancia:** POSTs aceitam header `Idempotency-Key` (qualquer string \u00fanica ASCII, at\u00e9 128 chars, ex: UUID). Retries com mesma key retornam a resposta original por 24h. Reuso com payload diferente \u2192 409. R\u00e9plica indicada por header `Idempotent-Replayed: true`.","title":"FinderPro API","version":"1.0.0"},"openapi":"3.0.3","paths":{"/":{"get":{"description":"P\u00e1gina HTML com SDK install, quickstart e links para Redoc.","responses":{"200":{"description":"HTML do developer portal"}},"security":[],"summary":"Landing page para desenvolvedores"}},"/asaas/checkout":{"post":{"description":"Gera link hospedado pelo Asaas onde o cliente escolhe a forma de pagamento. Suporta cobran\u00e7a \u00fanica ou assinatura recorrente (subscription_cycle=MONTHLY/YEARLY).","requestBody":{"content":{"application/json":{"schema":{"properties":{"billing_types":{"items":{"enum":["PIX","BOLETO","CREDIT_CARD"],"type":"string"},"type":"array"},"cancel_url":{"type":"string"},"descricao":{"type":"string"},"expired_url":{"type":"string"},"plano_id":{"type":"integer"},"subscription_cycle":{"enum":["MONTHLY","YEARLY","WEEKLY","BIWEEKLY","QUARTERLY","SEMIANNUALLY"],"type":"string"},"success_url":{"type":"string"},"tipo":{"enum":["assinatura_nova","renovacao_mensal","payg","pre_pago"],"type":"string"},"valor":{"example":97.5,"type":"number"}},"required":["valor"],"type":"object"}}},"required":true},"responses":{"201":{"description":"checkout criado com checkoutUrl"},"400":{"description":"valor inv\u00e1lido ou plano inativo"},"502":{"description":"falha ao falar com Asaas"}},"summary":"Cria Checkout Asaas multi-billing (PIX/Boleto/Cart\u00e3o)"}},"/asaas/checkout/{pagamento_id}":{"get":{"parameters":[{"in":"path","name":"pagamento_id","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"estado completo (status, billing, etc)"},"404":{"description":"n\u00e3o encontrado ou de outra empresa"}},"summary":"Consulta estado de um checkout/pagamento da empresa"}},"/asaas/checkout/{pagamento_id}/sync":{"post":{"description":"\u00datil quando o webhook n\u00e3o chegou (timeout, downtime). Consulta a API e dispara o processamento de pagamento se o Asaas confirmar RECEIVED/CONFIRMED.","parameters":[{"in":"path","name":"pagamento_id","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"estado atualizado; campo `sync` presente quando houve libera\u00e7\u00e3o de cr\u00e9dito nesta chamada"},"404":{"description":"checkout n\u00e3o encontrado para esta empresa"},"502":{"description":"falha ao falar com Asaas"}},"summary":"Reconcilia status com a API Asaas e libera cr\u00e9dito se pago"}},"/asaas/postman.json":{"get":{"description":"Cole\u00e7\u00e3o Postman pronta com 9 steps encadeados: health, criar customer, criar checkout, consultar, sync, simular webhook, balance, refund, listagem. Vari\u00e1veis pr\u00e9-configuradas pro usu\u00e1rio preencher.","responses":{"200":{"description":"JSON Postman Collection"}},"security":[],"summary":"Postman Collection v2.1.0 com fluxo Asaas completo"}},"/bi/resumo":{"get":{"description":"M\u00e9tricas consolidadas da empresa em JSON flat, ideal pra ferramentas de BI que puxam via HTTP. Inclui saldo atual, consultas 30 dias, KYC, resumo do m\u00eas e s\u00e9rie di\u00e1ria pra gr\u00e1fico. Atualiza\u00e7\u00e3o em tempo real \u2014 o resultado muda a cada consulta feita.","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"consultas_30d":{"type":"object"},"empresa_id":{"type":"integer"},"enriquecimentos_por_tipo_30d":{"type":"array"},"kyc":{"type":"object"},"saldo":{"type":"object"},"serie_diaria_30d":{"type":"array"}},"type":"object"}}},"description":"agregados"},"401":{"description":"API key inv\u00e1lida"}},"summary":"Resumo agregado pra BI (PowerBI/Metabase/Looker)"}},"/changelog":{"get":{"description":"Retorna releases curados + endpoints deprecados auto-descobertos com sunset, successor e link pra guia de migra\u00e7\u00e3o. Vers\u00e3o HTML em `/changelog`.","responses":{"200":{"content":{"application/json":{"example":{"api_version":"1.0.0","deprecados":[{"dias_restantes":183,"path":"/info","successor":"/api/v1/version","sunset":"2026-10-22"}],"gerado_em":"2026-04-22T10:00:00","releases":[{"categoria":"feature","data":"2026-04-22","descricao":"...","links":[],"titulo":"Cursor pagination","versao":"1.3.0"}],"total_deprecados":1,"total_releases":4}}},"description":"snapshot"}},"security":[],"summary":"Changelog p\u00fablico da API"}},"/consulta/batch":{"get":{"description":"Retorna `{jobs, next_cursor, has_more}` ordenado pelos mais recentes. Filtro opcional: `?status=pendente|em_andamento|concluido|falhou_final`.","parameters":[{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/PaginationLimit"},{"$ref":"#/components/parameters/PaginationCursor"}],"responses":{"200":{"description":"lista paginada"}},"summary":"Lista jobs de batch (cursor pagination)"},"post":{"description":"Submete lista de at\u00e9 10.000 documentos para consulta em m\u00faltiplas categorias. Processa via scheduler em chunks; cliente recebe 202 + job_id e poll via `/batch/<id>`. Webhook opcional dispara ao concluir. Idempotente via `ref_key`.","requestBody":{"content":{"application/json":{"example":{"categorias":["sancoes","pep","obito"],"documentos":["11144477735","52998224725","11222333000181"],"ref_key":"kyc-batch-2026-04-22","webhook_url":"https://meu-app.com/webhooks/finderpro"},"schema":{"properties":{"categorias":{"example":["sancoes","pep"],"items":{"type":"string"},"type":"array"},"documentos":{"example":["11144477735","11222333000181"],"items":{"type":"string"},"type":"array"},"ref_key":{"description":"idempot\u00eancia","type":"string"},"webhook_url":{"type":"string"}},"required":["documentos","categorias"],"type":"object"}}},"required":true},"responses":{"202":{"content":{"application/json":{"example":{"api_key_prefix":"hex_a1b2c3","job_id":42,"results_url":"/consulta/batch/42/results","status":"pendente","status_url":"/consulta/batch/42","total_docs":3}}},"description":"job aceito"},"400":{"description":"payload inv\u00e1lido"},"401":{"description":"API key inv\u00e1lida"}},"summary":"Cria job de consulta em batch (ass\u00edncrono)"}},"/consulta/batch/{job_id}":{"get":{"parameters":[{"in":"path","name":"job_id","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"status JSON"},"403":{"description":"job pertence a outra empresa"},"404":{"description":"job n\u00e3o encontrado"}},"summary":"Status e progresso do job"}},"/consulta/batch/{job_id}/cancelar":{"post":{"parameters":[{"in":"path","name":"job_id","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"job cancelado"},"404":{"description":"job n\u00e3o encontrado ou j\u00e1 conclu\u00eddo"}},"summary":"Cancela job em andamento"}},"/consulta/batch/{job_id}/results":{"get":{"parameters":[{"in":"path","name":"job_id","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"resultados"},"403":{"description":"n\u00e3o pertence \u00e0 empresa"},"404":{"description":"job n\u00e3o encontrado"}},"summary":"Resultados do job (parcial se em andamento)"}},"/consulta/cnpj/{numero}":{"get":{"parameters":[{"description":"CNPJ (com ou sem pontua\u00e7\u00e3o)","in":"path","name":"numero","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsultaResult"}}},"description":"dados retornados"},"401":{"description":"API key ausente/inv\u00e1lida"},"402":{"description":"cota esgotada"},"422":{"description":"CNPJ inv\u00e1lido (DV n\u00e3o confere)"},"502":{"description":"falha do provider externo"}},"summary":"Consulta CNPJ"}},"/consulta/cnpj/{numero}/acordos-leniencia":{"get":{"description":"Retorna acordos de leni\u00eancia firmados entre o CNPJ e a CGU (Lei 12.846/2013). Requer `CGU_API_KEY` configurada no tenant. Indica alto risco reputacional/regulat\u00f3rio.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"lista de acordos (ou vazia)"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Acordos de Leni\u00eancia CGU (Lei Anticorrup\u00e7\u00e3o)"}},"/consulta/cnpj/{numero}/ans":{"get":{"description":"Retorna se o CNPJ \u00e9 operadora de plano de sa\u00fade registrada na ANS. Modalidade, porte, situa\u00e7\u00e3o. Fonte: dados.ans.gov.br.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"registros ANS"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Operadora de sa\u00fade (ANS)"}},"/consulta/cnpj/{numero}/baixa":{"get":{"description":"Classifica o CNPJ em ATIVA | SUSPENSA | INAPTA | BAIXADA | NULA. `problema=true` sinaliza qualquer situa\u00e7\u00e3o fora de ATIVA; `grave=true` \u00e9 reservado para BAIXADA/NULA. Cache por 3 dias.","parameters":[{"description":"CNPJ","in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"cache_hit":{"type":"boolean"},"categoria":{"enum":["baixa_cnpj"],"type":"string"},"dados":{"properties":{"data_situacao":{"nullable":true,"type":"string"},"grave":{"type":"boolean"},"motivo":{"nullable":true,"type":"string"},"problema":{"type":"boolean"},"situacao":{"type":"string"}},"type":"object"},"status":{"type":"string"},"valor_cobrado":{"type":"number"}},"type":"object"}}},"description":"situa\u00e7\u00e3o cadastral"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Situa\u00e7\u00e3o cadastral do CNPJ (baixa/suspensa/inapta)"}},"/consulta/cnpj/{numero}/bcb":{"get":{"description":"Indica se o CNPJ \u00e9 institui\u00e7\u00e3o financeira regulada (banco, cooperativa, DTVM, corretora), com segmento, tipo e situa\u00e7\u00e3o. Fonte: bcb.gov.br (CSVs configur\u00e1veis via DADOS_BCB_DATASETS). Detecta licen\u00e7a cassada ou em liquida\u00e7\u00e3o (red flag).","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"registros BCB"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Registro no BCB (Banco Central)"}},"/consulta/cnpj/{numero}/certidao-fiscal":{"get":{"parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"status da certid\u00e3o"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Certid\u00e3o negativa fiscal do CNPJ"}},"/consulta/cnpj/{numero}/certidao-trabalhista":{"get":{"parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"status CNDT"},"401":{},"422":{}},"summary":"CNDT (TST) do CNPJ"}},"/consulta/cnpj/{numero}/cnes":{"get":{"description":"Retorna registros do CNPJ no Cadastro Nacional de Estabelecimentos de Sa\u00fade (DATASUS). Indica se o CNPJ opera como hospital, cl\u00ednica, laborat\u00f3rio, etc., com tipo, UF, situa\u00e7\u00e3o e c\u00f3digo CNES. Fonte: opendatasus.saude.gov.br (CSVs mensais, configur\u00e1veis via DADOS_CNES_DATASETS).","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"cadastro CNES"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Cadastro CNES (estabelecimento de sa\u00fade)"}},"/consulta/cnpj/{numero}/completo":{"get":{"description":"Executa em paralelo os m\u00f3dulos aplic\u00e1veis ao CNPJ: baixa, san\u00e7\u00f5es, societ\u00e1rio, processos, protestos, certid\u00f5es fiscal e trabalhista. Retorna score de risco agregado.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"modulos","schema":{"type":"string"}}],"responses":{"200":{"description":"agregado"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Consulta consolidada de CNPJ (todos os m\u00f3dulos)"}},"/consulta/cnpj/{numero}/cvm":{"get":{"description":"Retorna registros do CNPJ na CVM: fundos de investimento administrados, registro como administrador/gestor, registro como companhia aberta. Fonte: dados.cvm.gov.br (CSVs configur\u00e1veis via DADOS_CVM_DATASETS).","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"registros CVM"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Registros CVM (fundos, administradores, cias abertas)"}},"/consulta/cnpj/{numero}/doador-politico":{"get":{"description":"Mesmo que /cpf/.../doador-politico mas por CNPJ. Pessoas jur\u00eddicas s\u00f3 podiam doar at\u00e9 2015 \u2014 resultados t\u00edpicos cobrem elei\u00e7\u00f5es 2014 pra tr\u00e1s.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"hist\u00f3rico de doa\u00e7\u00f5es"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Doa\u00e7\u00f5es eleitorais por CNPJ (TSE)"}},"/consulta/cnpj/{numero}/grafo":{"get":{"description":"Expande QSA recursivamente at\u00e9 `nivel` (1\u20133). Retorna estrutura de grafo pronta para renderiza\u00e7\u00e3o (vis-network, cytoscape, d3). Cada CNPJ \u00fanico \u00e9 cobrado uma vez; s\u00f3cios PF n\u00e3o expandem. Detecta ciclos.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"nivel","schema":{"default":2,"maximum":3,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"consultas_realizadas":{"type":"integer"},"edges":{"type":"array"},"nivel_max":{"type":"integer"},"nodes":{"type":"array"},"root":{"type":"string"},"valor_total_cobrado":{"type":"number"}},"type":"object"}}},"description":"grafo"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Grafo societ\u00e1rio expandido (nodes + edges)"}},"/consulta/cnpj/{numero}/ibama":{"get":{"description":"Hist\u00f3rico de autua\u00e7\u00f5es ambientais (multas, embargos, apreens\u00f5es) do CNPJ. Fonte: dadosabertos.ibama.gov.br (CSVs mensais, configur\u00e1veis via DADOS_IBAMA_DATASETS). Retorna qtd, total multado, anos, UFs, tipos. Severidade: alta \u2265 R$500k ou 5+ autua\u00e7\u00f5es ou qualquer embargo/apreens\u00e3o; m\u00e9dia \u2265 R$50k ou 2+; baixa caso contr\u00e1rio.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"autua\u00e7\u00f5es IBAMA"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Autua\u00e7\u00f5es ambientais IBAMA"}},"/consulta/cnpj/{numero}/processos":{"get":{"parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"lista de processos"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Processos judiciais do CNPJ (DataJud/CNJ)"}},"/consulta/cnpj/{numero}/protestos":{"get":{"parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"resultado de protestos"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"CNPJ tem protestos?"}},"/consulta/cnpj/{numero}/risco-pdf":{"get":{"description":"Mesmo que a vers\u00e3o CPF, para pessoa jur\u00eddica.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/pdf":{}},"description":"PDF do relat\u00f3rio"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"},"503":{"description":"reportlab indispon\u00edvel"}},"summary":"Relat\u00f3rio de risco consolidado em PDF (CNPJ)"}},"/consulta/cnpj/{numero}/rj-falencia":{"get":{"description":"Detecta se o CNPJ est\u00e1 em recupera\u00e7\u00e3o judicial, fal\u00eancia ou recupera\u00e7\u00e3o extrajudicial. Consulta tribunais brasileiros via API p\u00fablica DataJud do CNJ, filtrando apenas classes processuais de insolv\u00eancia (129, 130, 131, 159). Analisa movimentos pra deduzir status atual (decreta\u00e7\u00e3o, concess\u00e3o do plano, encerramento). Retorna flags em_recuperacao_judicial/em_falencia + processo principal + lista de processos + hist\u00f3rico de insolv\u00eancia.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"dados de RJ/Fal\u00eancia"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Recupera\u00e7\u00e3o Judicial / Fal\u00eancia (CNJ \u00b7 DataJud)"}},"/consulta/cnpj/{numero}/sancoes":{"get":{"description":"Mesma l\u00f3gica do endpoint de san\u00e7\u00f5es por CPF, aplicado a CNPJ (CEIS/CNEP principalmente). Cache 1 dia.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"resultado san\u00e7\u00f5es"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"Lista restritiva: CNPJ aparece em san\u00e7\u00f5es?"}},"/consulta/cnpj/{numero}/societario":{"get":{"description":"Retorna s\u00f3cios diretos do CNPJ com qualifica\u00e7\u00e3o e participa\u00e7\u00e3o (quando dispon\u00edvel). Use `/grafo` para expans\u00e3o recursiva de s\u00f3cios PJ.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"QSA"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"QSA \u2014 Quadro societ\u00e1rio (n\u00edvel 1)"}},"/consulta/cpf/{numero}":{"get":{"parameters":[{"description":"CPF (com ou sem pontua\u00e7\u00e3o)","in":"path","name":"numero","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsultaResult"}}},"description":"dados retornados"},"401":{"description":"API key ausente/inv\u00e1lida"},"402":{"description":"cota esgotada"},"422":{"description":"CPF inv\u00e1lido (DV n\u00e3o confere)"},"502":{"description":"falha do provider externo"}},"summary":"Consulta CPF"}},"/consulta/cpf/{numero}/certidao-eleitoral":{"get":{"parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"status eleitoral"},"401":{},"422":{}},"summary":"Certid\u00e3o eleitoral do CPF (TSE)"}},"/consulta/cpf/{numero}/certidao-fiscal":{"get":{"parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"status da certid\u00e3o"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"Certid\u00e3o negativa fiscal (Receita/PGFN) do CPF"}},"/consulta/cpf/{numero}/certidao-trabalhista":{"get":{"parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"status CNDT"},"401":{},"422":{}},"summary":"CNDT (TST) do CPF"}},"/consulta/cpf/{numero}/cnes":{"get":{"description":"Retorna v\u00ednculos do CPF como profissional de sa\u00fade no CNES (m\u00e9dicos, enfermeiros, dentistas etc.).","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"cadastro CNES"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"CNES \u2014 profissional de sa\u00fade"}},"/consulta/cpf/{numero}/completo":{"get":{"description":"Executa em paralelo os m\u00f3dulos aplic\u00e1veis ao CPF: \u00f3bito, PEP, san\u00e7\u00f5es, processos, protestos, certid\u00f5es (fiscal, trabalhista, eleitoral). Retorna cada resposta individual + score de risco agregado (0-100) com n\u00edvel limpo/baixo/medio/alto e lista de alertas textuais.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"description":"Lista CSV opcional pra subset (ex: 'obito,pep').","in":"query","name":"modulos","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"documento":{"type":"string"},"modulos":{"type":"object"},"risco":{"properties":{"alertas":{"type":"array"},"nivel":{"type":"string"},"score":{"type":"integer"}},"type":"object"},"tipo":{"type":"string"}},"type":"object"}}},"description":"agregado com risco"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"Consulta consolidada de CPF (todos os m\u00f3dulos)"}},"/consulta/cpf/{numero}/cvm":{"get":{"description":"Retorna se o CPF \u00e9 administrador de carteira registrado na CVM (cad_adm_cart).","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"registro CVM"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"Registro CVM como administrador PF"}},"/consulta/cpf/{numero}/doador-politico":{"get":{"description":"Retorna total doado, anos, partidos e candidatos beneficiados pelo CPF. Fonte: dadosabertos.tse.jus.br (datasets CSV hashados, configur\u00e1veis via DADOS_DOADOR_DATASETS). Severidade: alta \u2265 R$100k ou 3+ anos; m\u00e9dia \u2265 R$10k ou 2 anos.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"hist\u00f3rico de doa\u00e7\u00f5es"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"Hist\u00f3rico de doa\u00e7\u00f5es eleitorais (TSE)"}},"/consulta/cpf/{numero}/ibama":{"get":{"description":"Mesmo que a vers\u00e3o CNPJ, para pessoa f\u00edsica.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"autua\u00e7\u00f5es IBAMA"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"Autua\u00e7\u00f5es ambientais IBAMA (CPF)"}},"/consulta/cpf/{numero}/obito":{"get":{"description":"Consulta fontes m\u00faltiplas (Receita Federal situa\u00e7\u00e3o cadastral, base TSE de eleitores falecidos) e retorna se o CPF consta como falecido. Cache por 30 dias; use ?refresh=1 para for\u00e7ar.","parameters":[{"description":"CPF","in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"description":"For\u00e7a re-consulta.","in":"query","name":"refresh","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"cache_hit":{"type":"boolean"},"categoria":{"enum":["obito"],"type":"string"},"dados":{"properties":{"falecido":{"type":"boolean"},"fonte":{"type":"string"},"motivo":{"nullable":true,"type":"string"}},"type":"object"},"status":{"type":"string"},"valor_cobrado":{"type":"number"}},"type":"object"}}},"description":"resultado do enriquecimento (falecido: bool)"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"Indica\u00e7\u00e3o de \u00f3bito do CPF"}},"/consulta/cpf/{numero}/pep":{"get":{"description":"Consulta datasets CGU configurados (PEP, expuls\u00f5es) e retorna se o CPF aparece em alguma lista. Cache 7 dias.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"categoria":{"enum":["pep"],"type":"string"},"dados":{"properties":{"fontes_consultadas":{"type":"integer"},"matches":{"type":"array"},"pep":{"type":"boolean"}},"type":"object"}},"type":"object"}}},"description":"resultado PEP"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"CPF \u00e9 Pessoa Exposta Politicamente"}},"/consulta/cpf/{numero}/processos":{"get":{"description":"Consulta a API p\u00fablica DataJud/CNJ em tribunais configurados (TJs estaduais, TRTs e TRFs por padr\u00e3o) e/ou datasets locais. Retorna lista de processos com tribunal, classe, assuntos e \u00f3rg\u00e3o julgador. Limitado a 50 resultados. Cache 6h.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"lista de processos"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"documento inv\u00e1lido"}},"summary":"Processos judiciais do CPF (DataJud/CNJ)"}},"/consulta/cpf/{numero}/protestos":{"get":{"description":"Consulta datasets locais e/ou API CENPROT/IEPTB configurada e retorna se o documento tem t\u00edtulos protestados. Inclui quantidade estimada e detalhes por cart\u00f3rio. Cache 1 dia.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"resultado de protestos"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"documento inv\u00e1lido"}},"summary":"CPF tem protestos? (CENPROT/IEPTB)"}},"/consulta/cpf/{numero}/risco-pdf":{"get":{"description":"Executa todos os m\u00f3dulos aplic\u00e1veis ao CPF em paralelo, agrega score de risco e gera PDF pronto para compliance/onboarding. Headers de resposta: `X-Report-Hash` (SHA-256 do conte\u00fado can\u00f4nico, para valida\u00e7\u00e3o de integridade), `X-Report-Score`, `X-Report-Nivel`.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/pdf":{}},"description":"PDF do relat\u00f3rio"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"},"503":{"description":"reportlab indispon\u00edvel"}},"summary":"Relat\u00f3rio de risco consolidado em PDF (CPF)"}},"/consulta/cpf/{numero}/rj-falencia":{"get":{"description":"Vers\u00e3o CPF \u2014 cobre produtor rural e empres\u00e1rio individual (EI) em insolv\u00eancia.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"dados de RJ/Fal\u00eancia"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"Recupera\u00e7\u00e3o Judicial / Fal\u00eancia (CPF)"}},"/consulta/cpf/{numero}/sancoes":{"get":{"description":"Cruza documento com listas restritivas federais e internacionais (CGU CEIS/CNEP/Expuls\u00f5es, OFAC, ONU). Retorna severidade agregada (alta/media) e detalhes de cada match. Cache 1 dia.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"resultado san\u00e7\u00f5es"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"documento inv\u00e1lido"}},"summary":"Lista restritiva: CPF aparece em san\u00e7\u00f5es?"}},"/consulta/cpf/{numero}/servidor-federal":{"get":{"description":"Retorna v\u00ednculos de servidor civil do Executivo Federal associados ao CPF: cargo, \u00f3rg\u00e3o, situa\u00e7\u00e3o. \u00datil para due diligence de ocupa\u00e7\u00e3o informada. Requer `CGU_API_KEY` configurada.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"refresh","schema":{"type":"boolean"}}],"responses":{"200":{"description":"v\u00ednculos servidor federal"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"Servidor do Executivo Federal (CGU)"}},"/consulta/dominio/{dominio}/rdap":{"get":{"description":"Consulta dados de registro do dom\u00ednio via Registro.br (para .br) ou via bootstrap IANA (para TLDs gen\u00e9ricos). Retorna registrant (com CPF/CNPJ quando Registro.br exp\u00f5e), nameservers, status, datas de registro/expira\u00e7\u00e3o, DNSSEC. TLDs ICANN gen\u00e9ricos costumam ocultar o registrant por privacy \u2014 neste caso `registrant` vem sem documento.","parameters":[{"in":"path","name":"dominio","required":true,"schema":{"example":"finderpro.com.br","type":"string"}}],"responses":{"200":{"description":"dados RDAP do dom\u00ednio"},"401":{"description":"API key inv\u00e1lida"},"404":{"description":"dom\u00ednio n\u00e3o encontrado"},"422":{"description":"dom\u00ednio inv\u00e1lido ou TLD n\u00e3o suportado"}},"summary":"RDAP (WHOIS estruturado) de dom\u00ednio"}},"/consulta/dominio/{dominio}/verificar-cnpj/{cnpj}":{"get":{"description":"\u00datil em KYC: cliente informa dom\u00ednio oficial \u2014 sistema valida via RDAP. Retorna `match=true|false|null`, sendo `null` quando o RDAP n\u00e3o exp\u00f4s o CNPJ do registrant (privacy ICANN em TLDs gen\u00e9ricos).","parameters":[{"in":"path","name":"dominio","required":true,"schema":{"type":"string"}},{"in":"path","name":"cnpj","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"resultado da verifica\u00e7\u00e3o"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"dom\u00ednio ou CNPJ inv\u00e1lido"}},"summary":"Verifica se dom\u00ednio pertence ao CNPJ informado"}},"/consultas":{"get":{"description":"Lista ConsultaLog mais recentes primeiro. Filtros opcionais: `?tipo=CPF|CNPJ`, `?sucesso=true|false`, `?finalidade=api_rest|web|batch`.","parameters":[{"in":"query","name":"tipo","required":false,"schema":{"enum":["CPF","CNPJ"],"type":"string"}},{"in":"query","name":"sucesso","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"finalidade","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/PaginationLimit"},{"$ref":"#/components/parameters/PaginationCursor"}],"responses":{"200":{"content":{"application/json":{"example":{"consultas":[{"data_hora":"2026-04-22T10:15:30","documento":"11144477735","finalidade":"api_rest","id":42,"sucesso":true,"tipo":"CPF","valor_consulta":0.12}],"has_more":true,"next_cursor":"eyJpZCI6NDF9"}}},"description":"lista paginada"}},"summary":"Hist\u00f3rico de consultas da empresa (cursor pagination)"}},"/datajud/{documento}":{"get":{"description":"Consulta a base nacional CNJ DataJud (gratuita, oficial) buscando processos onde o CPF/CNPJ aparece como parte. Retorna total, distribui\u00e7\u00e3o por tribunal, classes top e score de litigiosidade 0-100. Default agrega TJSP+TJRJ+TJMG+STJ+TST. Cache 6h. Complementa o provider Escavador.","parameters":[{"in":"path","name":"documento","required":true,"schema":{"type":"string"}},{"in":"query","name":"tribunais","schema":{"description":"CSV de slugs (ex: tjsp,tjrj,trf3)","type":"string"}},{"in":"query","name":"limite","schema":{"default":10,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"agregado de processos"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"documento inv\u00e1lido"}},"summary":"CNJ DataJud \u2014 processos judiciais por documento"}},"/docs":{"get":{"responses":{"200":{"description":"p\u00e1gina HTML"}},"security":[],"summary":"Documenta\u00e7\u00e3o interativa (Redoc)"}},"/docs/asaas":{"get":{"description":"P\u00e1gina p\u00fablica com guide passo-a-passo: pr\u00e9-requisitos, criar checkout, consultar status, receber webhook (com valida\u00e7\u00e3o HMAC), split, refund. Inclui exemplos curl e links pra SDK/Postman.","responses":{"200":{"description":"p\u00e1gina HTML"}},"security":[],"summary":"Onboarding HTML B2B da integra\u00e7\u00e3o Asaas"}},"/extrato":{"get":{"parameters":[{"in":"query","name":"limite","schema":{"default":50,"maximum":500,"minimum":1,"type":"integer"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"type":"integer"}},{"in":"query","name":"dias","schema":{"default":90,"maximum":365,"minimum":1,"type":"integer"}},{"in":"query","name":"moeda","schema":{"enum":["BRL","CNT"],"type":"string"}},{"in":"query","name":"categoria","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"limite":{"type":"integer"},"movimentacoes":{"items":{"type":"object"},"type":"array"},"offset":{"type":"integer"},"total":{"type":"integer"}},"type":"object"}}},"description":"lista paginada de movimenta\u00e7\u00f5es"},"400":{"description":"par\u00e2metros inv\u00e1lidos"},"401":{"description":"API key inv\u00e1lida"}},"summary":"Extrato de movimenta\u00e7\u00f5es (ledger)"}},"/health":{"get":{"description":"Sem autentica\u00e7\u00e3o. Verifica conectividade do DB, quantidade de providers registrados e estado dos jobs de sincroniza\u00e7\u00e3o de datasets externos. Retorna 200 se saud\u00e1vel, 503 se degradado. Usado por load balancers e uptime checks.","responses":{"200":{"description":"saud\u00e1vel"},"503":{"description":"degradado"}},"security":[],"summary":"Healthcheck p\u00fablico consolidado"}},"/inbox/{chave}":{"post":{"description":"Endpoint p\u00fablico autenticado pela chave no path (formato `ix_*`). Aceita JSON livre; extrai o documento usando o `path_documento` configurado na inbox (ex: `$.contact.cpf`) e roda os m\u00f3dulos de enriquecimento listados. Opcionalmente envia callback HMAC com o resultado pro CRM atualizar o registro. Use no Zapier/Make/n8n/HubSpot Workflows.","parameters":[{"description":"Chave da inbox (ix_*)","in":"path","name":"chave","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Payload livre \u2014 apenas precisa conter o documento no path configurado","type":"object"}}},"required":true},"responses":{"200":{"description":"enriquecimento realizado"},"400":{"description":"JSON inv\u00e1lido ou documento n\u00e3o encontrado no path"},"401":{"description":"inbox inexistente ou revogada"},"422":{"description":"documento extra\u00eddo inv\u00e1lido"}},"security":[],"summary":"Webhook inbound \u2014 recebe payload de CRM e enriquece"}},"/info":{"get":{"deprecated":true,"description":"**Deprecado desde 2026-04-22**, remo\u00e7\u00e3o em **2026-10-22**. Use `GET /api/v1/version`.\n\nResposta emite headers:\n- `Deprecation: @<epoch>` (RFC 9745)\n- `Sunset: <http-date>` (RFC 8594)\n- `Link: <url>; rel=\"successor-version\"`","responses":{"200":{"description":"id\u00eantico a /version"}},"security":[],"summary":"[DEPRECATED] Alias de /version"}},"/insomnia.json":{"get":{"description":"Download direto do workspace Insomnia. Importe via Insomnia \u2192 Preferences \u2192 Data \u2192 Import. Inclui environment com `base_url` e `api_key`.","responses":{"200":{"content":{"application/json":{}},"description":"arquivo JSON Insomnia Export"}},"security":[],"summary":"Insomnia Export v4 (auto-gerado)"}},"/kyc/iniciar":{"post":{"description":"Cria uma sess\u00e3o pendente e devolve um `token` p\u00fablico que pode ser usado no fluxo embedado (iframe/webview). Provedores suportados: stub (sandbox), datavalid, caf, unico.","requestBody":{"content":{"application/json":{"schema":{"properties":{"cpf":{"type":"string"},"nascimento":{"format":"date","type":"string"},"nome":{"type":"string"},"provedor":{"enum":["stub","datavalid","caf","unico"],"type":"string"}},"type":"object"}}},"required":false},"responses":{"201":{"description":"sess\u00e3o criada"},"400":{"description":"par\u00e2metros inv\u00e1lidos"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"Inicia sess\u00e3o de verifica\u00e7\u00e3o de identidade (KYC)"}},"/kyc/{token}":{"get":{"parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"status + resultado"},"401":{"description":"API key inv\u00e1lida"},"404":{"description":"sess\u00e3o n\u00e3o encontrada"}},"summary":"Status da sess\u00e3o KYC"}},"/kyc/{token}/validar":{"post":{"description":"Aceita multipart com campos `documento` e `selfie` (imagens) OU JSON com `documento_b64` e `selfie_b64`. Limite de 10 MB por arquivo. Resposta traz `status`, `score` (0-100) e `decisao` (aprovar/reprovar/revisar).","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"resultado KYC"},"400":{"description":"arquivos ausentes ou sess\u00e3o inv\u00e1lida"},"401":{"description":"API key inv\u00e1lida"},"404":{"description":"sess\u00e3o n\u00e3o encontrada"},"413":{"description":"arquivo excede 10 MB"}},"summary":"Envia documento + selfie para valida\u00e7\u00e3o"}},"/legal/estimate":{"post":{"description":"Devolve search_type detectado, mode resolvido e cr\u00e9ditos estimados. Usar antes de POST /search pra mostrar custo na UI.","requestBody":{"content":{"application/json":{"schema":{"properties":{"include_attachments":{"type":"boolean"},"mode":{"default":"auto","type":"string"},"purpose":{"type":"string"},"query":{"type":"string"}},"required":["query","purpose"],"type":"object"}}},"required":true},"responses":{"200":{"description":"estimativa devolvida"},"422":{"description":"query/purpose inv\u00e1lidos"}},"summary":"Preview de custo da consulta (n\u00e3o cobra, n\u00e3o cria job)"}},"/legal/jobs/{job_id}":{"get":{"parameters":[{"in":"path","name":"job_id","required":true,"schema":{"example":"job_0000abc1","type":"string"}}],"responses":{"200":{"description":"status atual"},"404":{"description":"job n\u00e3o encontrado"}},"summary":"Status do job de busca jur\u00eddica"}},"/legal/jobs/{job_id}/result":{"get":{"parameters":[{"in":"path","name":"job_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"resultado + subject + summary"},"404":{"description":"job n\u00e3o encontrado"},"409":{"description":"job ainda n\u00e3o conclu\u00eddo"}},"summary":"Resultado consolidado (ap\u00f3s completed)"}},"/legal/judit-webhook":{"post":{"description":"Endpoint p\u00fablico chamado pelo provider Judit. Valida\u00e7\u00e3o por header x-judit-signature (HMAC-SHA256). N\u00c3O usa X-API-Key. Idempotente por payload.event_id. Sempre devolve 200 (mesmo em falha) pra evitar replay.","responses":{"200":{"description":"evento aceito"},"401":{"description":"assinatura inv\u00e1lida"}},"summary":"Webhook receiver Judit (provider \u2192 FinderPro)"}},"/legal/lawsuits/{lawsuit_id}":{"get":{"parameters":[{"in":"path","name":"lawsuit_id","required":true,"schema":{"example":"law_0000abc1","type":"string"}}],"responses":{"200":{"description":"lawsuit completo + parties"},"404":{"description":"n\u00e3o encontrado"}},"summary":"Detalhes do processo (snapshot atual)"}},"/legal/lawsuits/{lawsuit_id}/attachments/{attachment_id}/fetch":{"post":{"parameters":[{"in":"path","name":"lawsuit_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"attachment_id","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"anexo baixado e armazenado"},"404":{"description":"anexo n\u00e3o encontrado"},"502":{"description":"falha no provider"}},"summary":"Baixa anexo do processo (proxy via storage FinderPro)"}},"/legal/lawsuits/{lawsuit_id}/steps":{"get":{"parameters":[{"in":"path","name":"lawsuit_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"lista cronol\u00f3gica de steps"}},"summary":"Timeline jur\u00eddica (movimentos do processo)"}},"/legal/search":{"post":{"description":"Cria um job de busca jur\u00eddica via Judit. Detec\u00e7\u00e3o autom\u00e1tica de tipo (CPF/CNPJ/OAB/CNJ/nome) e modo (triage/historical/complete) baseado no purpose. Cobra 0.5\u20133 cr\u00e9ditos por consulta + anexos sob demanda.","requestBody":{"content":{"application/json":{"schema":{"properties":{"include_attachments":{"default":false,"type":"boolean"},"include_steps":{"default":true,"type":"boolean"},"mode":{"default":"auto","enum":["auto","triage","complete","historical"],"type":"string"},"priority":{"default":"normal","type":"string"},"purpose":{"enum":["onboarding","compliance","cobranca","contencioso","due_diligence","monitoramento"],"type":"string"},"query":{"type":"string"}},"required":["query","purpose"],"type":"object"}}},"required":true},"responses":{"202":{"description":"job criado (ass\u00edncrono)"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"query/purpose inv\u00e1lidos"},"429":{"description":"rate limit"}},"summary":"FinderPro Legal Ops \u2014 busca processual (job ass\u00edncrono)"}},"/legal/subjects/{subject_id}/dossier":{"get":{"parameters":[{"in":"path","name":"subject_id","required":true,"schema":{"example":"sub_0000abc1","type":"string"}}],"responses":{"200":{"description":"scores + lawsuits + perfil"},"404":{"description":"subject n\u00e3o encontrado"}},"summary":"Dossi\u00ea 360 da entidade jur\u00eddica"}},"/legal/trackings":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"alert_policy":{"default":"critical_changes","type":"string"},"recurrence_days":{"default":1,"type":"integer"},"search_key":{"type":"string"},"search_type":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"tracking_type":{"enum":["document","lawsuit"],"type":"string"}},"required":["tracking_type","search_type","search_key"],"type":"object"}}},"required":true},"responses":{"201":{"description":"tracking criado"},"422":{"description":"payload inv\u00e1lido"}},"summary":"Cria monitoramento cont\u00ednuo (document|lawsuit)"}},"/legal/trackings/{tracking_id}/events":{"get":{"parameters":[{"in":"path","name":"tracking_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"lista de eventos com severity"},"404":{"description":"tracking n\u00e3o encontrado"}},"summary":"Eventos detectados pelo monitoramento"}},"/legal/usage":{"get":{"description":"Agregados de jobs e trackings da empresa nos \u00faltimos N dias. \u00datil pra dashboards de finance/ops.","parameters":[{"in":"query","name":"dias","schema":{"default":30,"maximum":365,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"agregados de uso"},"401":{"description":"API key inv\u00e1lida"}},"summary":"Consumo Legal Ops da empresa autenticada"}},"/match/deduplicar":{"post":{"description":"Recebe uma lista de registros (nome, doc, telefone, email) e retorna grupos de duplicatas. Usa blocking por prefixos + similaridade composta (nome SequenceMatcher + telefone/email exatos). Threshold padr\u00e3o 0.85. M\u00e1ximo 10.000 registros.","requestBody":{"content":{"application/json":{"schema":{"properties":{"registros":{"items":{"type":"object"},"type":"array"},"threshold":{"default":0.85,"maximum":1.0,"minimum":0.5,"type":"number"}},"required":["registros"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"duplicadas":{"type":"integer"},"exemplos":{"type":"array"},"grupos":{"type":"array"},"total_grupos":{"type":"integer"},"total_registros":{"type":"integer"}},"type":"object"}}},"description":"grupos detectados"},"400":{"description":"body inv\u00e1lido"},"401":{"description":"API key inv\u00e1lida"},"413":{"description":"mais de 10.000 registros"}},"summary":"Deduplica\u00e7\u00e3o fuzzy de lista de registros"}},"/metrics":{"get":{"description":"Formato text/plain Prometheus 0.0.4. Protegido por token simples: `?token=...` ou header `Authorization: Bearer ...`. Token configurado em env `METRICS_TOKEN` ou SystemConfig. Retorna 503 se n\u00e3o configurado, 401 se token inv\u00e1lido.","parameters":[{"in":"query","name":"token","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"exposi\u00e7\u00e3o Prometheus"},"401":{"description":"token inv\u00e1lido"},"503":{"description":"endpoint n\u00e3o configurado"}},"security":[],"summary":"M\u00e9tricas Prometheus"}},"/monitores":{"get":{"description":"Retorna `{monitores, next_cursor, has_more}`. Use `next_cursor` da resposta anterior em `?cursor=` pra buscar a pr\u00f3xima p\u00e1gina.","parameters":[{"in":"query","name":"ativos","required":false,"schema":{"default":true,"type":"boolean"}},{"$ref":"#/components/parameters/PaginationLimit"},{"$ref":"#/components/parameters/PaginationCursor"}],"responses":{"200":{"description":"lista paginada"}},"summary":"Lista monitores da empresa (cursor pagination)"},"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"documento":{"type":"string"},"webhook_url":{"format":"uri","type":"string"}},"required":["documento"],"type":"object"}}},"required":true},"responses":{"201":{"description":"criado; retorna webhook_secret"},"409":{"description":"j\u00e1 existe monitor ativo para esse documento"},"422":{"description":"documento inv\u00e1lido"}},"summary":"Cria monitor de CPF/CNPJ"}},"/monitores/{monitor_id}":{"delete":{"parameters":[{"in":"path","name":"monitor_id","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"desativado"},"404":{"description":"n\u00e3o encontrado ou de outra empresa"}},"summary":"Desativa monitor (soft delete)"}},"/oauth/token":{"post":{"description":"RFC 6749 \u00a74.4 \u2014 troca `client_id`+`client_secret` por access token Bearer de curta dura\u00e7\u00e3o (default 1h). Aceita `application/x-www-form-urlencoded` (padr\u00e3o RFC) ou JSON. Envie o token retornado em `Authorization: Bearer <token>` nas demais rotas como alternativa a `X-API-Key`. Rate-limited em 10 req/min por IP.","requestBody":{"content":{"application/x-www-form-urlencoded":{"example":{"client_id":"hxc_...","client_secret":"hxs_...","grant_type":"client_credentials","scope":"consulta:read"},"schema":{"properties":{"client_id":{"type":"string"},"client_secret":{"type":"string"},"grant_type":{"enum":["client_credentials"],"type":"string"},"scope":{"description":"Escopos separados por espa\u00e7o. Subset dos escopos do client.","type":"string"}},"required":["grant_type","client_id","client_secret"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"access_token":"eyJ...","expires_in":3600,"scope":"consulta:read","token_type":"Bearer"}}},"description":"token emitido"},"400":{"description":"invalid_request / invalid_scope / unsupported_grant_type"},"401":{"description":"invalid_client"},"429":{"description":"rate limit excedido"}},"security":[],"summary":"OAuth2 \u00b7 client_credentials grant"}},"/openapi.json":{"get":{"responses":{"200":{"description":"ok"}},"security":[],"summary":"Especifica\u00e7\u00e3o OpenAPI desta API"}},"/ping":{"get":{"responses":{"200":{"description":"credencial v\u00e1lida"},"401":{"description":"n\u00e3o autenticado"}},"summary":"Valida credencial sem custo"}},"/portfolio/analise":{"post":{"description":"Recebe lista de CPFs/CNPJs e devolve distribui\u00e7\u00e3o FinderPro Score (AAA-F), alertas agregados (falecidos, sancionados, CNPJ baixados, com protesto/processo), concentra\u00e7\u00e3o de risco e clusters de s\u00f3cios em comum (potencial fraude estruturada). Cobra 1 cr\u00e9dito por documento pontuado.","requestBody":{"content":{"application/json":{"schema":{"properties":{"detectar_cluster":{"default":true,"type":"boolean"},"documentos":{"items":{"type":"string"},"maxItems":5000,"type":"array"}},"required":["documentos"],"type":"object"}}},"required":true},"responses":{"200":{"description":"relat\u00f3rio consolidado"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"payload inv\u00e1lido / lista grande"},"429":{"description":"rate limit"}},"summary":"An\u00e1lise consolidada de carteira (at\u00e9 5000 docs)"}},"/postman.json":{"get":{"description":"Download direto da cole\u00e7\u00e3o Postman. Importe em File \u2192 Import para exercitar todos os endpoints. Vari\u00e1veis `base_url` e `api_key` pr\u00e9-configuradas \u2014 substitua pelo seu `hex_*` real.","responses":{"200":{"content":{"application/json":{}},"description":"arquivo JSON Postman Collection"}},"security":[],"summary":"Postman Collection v2.1.0 (auto-gerada)"}},"/saldo":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"bloqueado_payg":{"type":"boolean"},"divida_acumulada_brl":{"type":"number"},"empresa_id":{"type":"integer"},"resumo_mes":{"type":"object"},"saldo_brl":{"type":"number"},"saldo_consultas_prepago":{"type":"integer"}},"type":"object"}}},"description":"snapshot do saldo"},"401":{"description":"API key inv\u00e1lida"}},"summary":"Saldo da carteira (BRL + consultas pr\u00e9-pagas + d\u00edvida PAYG)"}},"/sancoes/intl":{"get":{"description":"Pesquisa fuzzy por nome contra a lista OFAC SDN (US Treasury). Retorna matches com score 0..1; sancionado=true quando o melhor match >= score_min. Lista \u00e9 atualizada semanalmente pelo scheduler.","parameters":[{"in":"query","name":"nome","required":true,"schema":{"minLength":3,"type":"string"}},{"in":"query","name":"score_min","schema":{"default":0.92,"type":"number"}},{"in":"query","name":"limite","schema":{"default":10,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"matches encontrados"},"400":{"description":"nome ausente"},"401":{"description":"API key inv\u00e1lida"}},"summary":"San\u00e7\u00f5es internacionais \u2014 busca por nome (OFAC SDN)"}},"/sancoes/intl/status":{"get":{"responses":{"200":{"description":"status JSON com linhas e ultima_sync"},"401":{"description":"API key inv\u00e1lida"}},"summary":"Status de sincroniza\u00e7\u00e3o da lista OFAC"}},"/score-master/cnpj/{numero}":{"get":{"description":"Score consolidado combinando 3 dimens\u00f5es: Credit (60%), Litigiosidade DataJud (25%), Territorial IBGE (15%). Pesos override via query (peso_credit, peso_litigiosidade, peso_territorial). Dimens\u00f5es ausentes renormalizam pesos das presentes. Faixa A+|A|B|C|D|E|F.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"codigo_ibge","schema":{"description":"habilita dimens\u00e3o territorial","type":"string"}},{"in":"query","name":"incluir_datajud","schema":{"default":"1","enum":["0","1"],"type":"string"}},{"in":"query","name":"incluir_territorial","schema":{"default":"1","enum":["0","1"],"type":"string"}},{"in":"query","name":"peso_credit","schema":{"default":0.6,"type":"number"}},{"in":"query","name":"peso_litigiosidade","schema":{"default":0.25,"type":"number"}},{"in":"query","name":"peso_territorial","schema":{"default":0.15,"type":"number"}}],"responses":{"200":{"description":"score master + dimens\u00f5es + explica\u00e7\u00e3o"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"documento inv\u00e1lido"}},"summary":"FinderPro Score MASTER \u2014 multi-dimensional 0-1000"}},"/score-master/cpf/{numero}":{"get":{"parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"codigo_ibge","schema":{"type":"string"}}],"responses":{"200":{"description":"score master + dimens\u00f5es"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"FinderPro Score MASTER de CPF (multi-dimensional)"}},"/score-master/lote":{"post":{"description":"Recebe lista de CPFs/CNPJs e retorna Score MASTER de cada um, agregado em distribuicao_faixas, score_medio e risco_alto_qtd (D/E/F). \u00datil pra financeiras/factoring aprovando carteira de propostas.","requestBody":{"content":{"application/json":{"schema":{"properties":{"documentos":{"items":{"type":"string"},"maxItems":1000,"type":"array"},"incluir_datajud":{"default":true,"type":"boolean"},"incluir_territorial":{"default":false,"type":"boolean"},"pesos":{"type":"object"}},"required":["documentos"],"type":"object"}}},"required":true},"responses":{"200":{"description":"lote pontuado + agregados"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"payload inv\u00e1lido / lista grande"},"429":{"description":"rate limit (5/min)"}},"summary":"Score MASTER em lote (at\u00e9 1000 docs)"}},"/score/cnpj/{numero}":{"get":{"description":"Calcula score 0-1000 baseado em baixa CNPJ, san\u00e7\u00f5es, processos, protestos e certid\u00f5es. Suporta CNPJ alfanum\u00e9rico (Lei 14.451/2022).","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"scorer","schema":{"default":"credit","enum":["credit","contato"],"type":"string"}},{"in":"query","name":"com_summary","schema":{"default":"1","enum":["0","1"],"type":"string"}}],"responses":{"200":{"description":"score + faixa + explica\u00e7\u00e3o + summary"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"FinderPro Score consolidado de CNPJ + AI summary"}},"/score/contato/cnpj/{numero}":{"get":{"parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"score"},"401":{},"422":{}},"summary":"Score de contatabilidade do CNPJ (0-100, A/B/C/D/F)"}},"/score/contato/cpf/{numero}":{"get":{"description":"Estima probabilidade de alcan\u00e7ar o titular via telefone/email. A=80+, B=60+, C=40+, D=20+, F<20. Zera se CPF falecido.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"score"},"401":{},"422":{}},"summary":"Score de contatabilidade do CPF (0-100, A/B/C/D/F)"}},"/score/cpf/{numero}":{"get":{"description":"Calcula score 0-1000 (faixa AAA..F) baseado em consulta consolidada de \u00f3bito, PEP, san\u00e7\u00f5es, processos, protestos e certid\u00f5es. Inclui sum\u00e1rio em pt-BR (rule-based determin\u00edstico ou LLM se cliente optar in). Cobra 1 cr\u00e9dito + custos das consultas internas.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}},{"in":"query","name":"scorer","schema":{"default":"credit","enum":["credit","contato"],"type":"string"}},{"in":"query","name":"com_summary","schema":{"default":"1","enum":["0","1"],"type":"string"}}],"responses":{"200":{"description":"score + faixa + explica\u00e7\u00e3o + summary"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"documento inv\u00e1lido"}},"summary":"FinderPro Score consolidado de CPF + AI summary"}},"/score/credit/cnpj/{numero}":{"get":{"parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"score"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CNPJ inv\u00e1lido"}},"summary":"FinderPro Credit Score do CNPJ (0-1000)"}},"/score/credit/cpf/{numero}":{"get":{"description":"Pontua\u00e7\u00e3o de cr\u00e9dito 0-1000 com faixa AAA/AA/A/B/C/D/E/F, derivada do consolidado de enriquecimento (\u00f3bito, san\u00e7\u00f5es, protestos, processos, certid\u00f5es). Inclui `explicacao[]` humanamente leg\u00edvel de cada fator que afetou o score.","parameters":[{"in":"path","name":"numero","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"score"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"CPF inv\u00e1lido"}},"summary":"FinderPro Credit Score do CPF (0-1000)"}},"/territorio/{codigo_ibge}":{"get":{"description":"Devolve popula\u00e7\u00e3o, PIB, renda m\u00e9dia e score territorial 0-100 (faixa baixa/m\u00e9dia/alta atratividade) a partir do c\u00f3digo IBGE do munic\u00edpio (7 d\u00edgitos). Fonte: IBGE SIDRA. Cache 30 dias \u2014 dado oficial muda anualmente.","parameters":[{"in":"path","name":"codigo_ibge","required":true,"schema":{"description":"C\u00f3digo IBGE 7 d\u00edgitos (ex: 3550308)","type":"string"}}],"responses":{"200":{"description":"perfil + score territorial"},"401":{"description":"API key inv\u00e1lida"},"422":{"description":"c\u00f3digo IBGE inv\u00e1lido"}},"summary":"Perfil territorial IBGE (munic\u00edpio)"}},"/version":{"get":{"description":"Endpoint p\u00fablico de descoberta. Cliente pode usar `features[]` e `providers_ativos[]` para negociar capacidades antes de chamar endpoints espec\u00edficos.","responses":{"200":{"content":{"application/json":{"example":{"api_base":"/api/v1","api_version":"1.0.0","cutoff_policy":"Breaking changes anunciadas com 90 dias de aviso","features":["bulk_api","consulta_cnpj","consulta_completo","consulta_cpf","lgpd_titular_portal","rate_limit_por_plano","risco_pdf","sandbox_keys","webhooks_durable"],"providers_ativos":["acordos_leniencia","ans","baixa_cnpj","bcb","cnes","cvm","doador_politico","ibama","obito","pep","processo","protesto","rj_falencia","sancoes","servidor_federal","societario"],"total_providers":16}}},"description":"vers\u00e3o + features"}},"security":[],"summary":"Vers\u00e3o + features dispon\u00edveis"}}},"security":[{"ApiKeyAuth":[]},{"OAuth2ClientCredentials":[]}],"servers":[{"description":"base da API","url":"/api/v1"}]}
