Skip to main content
Uma engine é a configuração de uma análise: ela define quais blocos de verificação rodam e a ação aplicada quando um bloco é acionado — bloqueio, alerta ou ignorar. Todo POST /analyses e todo POST /operations roda com exatamente uma engine, e é ela que determina o resultado — os verdicts no Motor de CPF/CNPJ, os status e as issues no Motor de Borderô.

Ações e efeito no resultado

Se nenhuma verificação é acionada, o resultado é aprovado (CPF/CNPJ) ou approved (borderô). Se o motor termina mas uma fonte de dados falhou: no CPF/CNPJ o verdict fica incompleto; no borderô, a regra afetada vai para degraded_rules e os títulos afetados contam como alerted no summary. Veja Ciclo de vida. Blocos marcados como ignorar nos templates são opt-in: vêm desligados por padrão e passam a contar quando você muda a ação para alerta ou bloqueio em uma engine própria.

Como a engine é resolvida

O campo é opcional nos dois motores — engine_id no body JSON do Motor de CPF/CNPJ, engine_id como parte de texto do multipart no Motor de Borderô:
  1. Explícito — a engine precisa existir e pertencer ao seu workspace (ou ser um template do sistema).
  2. Omitido — no Motor de CPF/CNPJ, a API usa a engine padrão do workspace para o subject_type e, na falta dela, o template do sistema (PJ ou PF). No Motor de Borderô, engine_id omitido ou com o valor template-padrao usa a engine template de borderô do sistema.

Erros de resolução

No Motor de CPF/CNPJ, engine_id inexistente ou de outro workspace retorna 404 not_found — a API não revela a existência de engines de outros workspaces.

Exemplo com engine explícita

Os Motores usam a mesma base da API 221b (https://221b-api.sherlocker.com.br/api/v1), mas autenticam via Authorization: Bearer slhk_…não via ?token=.

Onde as engines são geridas

Engines são criadas, editadas, definidas como padrão e arquivadas no app Sherlocker (interface web). A API /v1 não tem endpoints de CRUD de engines — ela só consome uma engine já existente via engine_id ou pela resolução automática. Para criar uma política própria (mudar ações, ajustar parâmetros, ativar blocos opt-in), use o app.
No borderô, a resposta do GET /operations/{id} sempre traz o engine_id efetivamente usado — inclusive quando você omitiu o campo (ou enviou template-padrao) e a operação rodou com o template do sistema. Guarde-o se quiser reproduzir a mesma política em operações futuras.

O que cada motor verifica

Quando o workspace não tem engine padrão e o engine_id é omitido, a análise roda com o template global do Sherlocker para o subject_type. São políticas conservadoras: irregularidade cadastral, óbito, sanção nacional, trabalho escravo e eventos de falência/recuperação judicial bloqueiam; sinais financeiros (Serasa, dívida ativa) e processos judiciais relevantes geram alerta.Os parâmetros listados abaixo são os valores padrão do template. Cada bloco aceita parâmetros configuráveis por engine no app — o catálogo completo está em Blocos.

Sherlocker PJ (template) — 23 blocos

Usado em análises de CNPJ (subject_type: "pj").BloqueioAlertaIgnorado (opt-in)

Sherlocker PF (template) — 18 blocos

Usado em análises de CPF (subject_type: "pf"). Lembre que análises de CPF exigem a feature analysis_engine_pf no workspace, além de analysis_engine.BloqueioAlertaIgnorado (opt-in)
Os blocos SERASA_* dependem da integração Serasa habilitada no workspace. Sem ela, esses blocos saem com status unavailable e o verdict fica incompleto — nunca um bloqueio falso. Confira o campo coverage da resposta para ver qual fonte ficou indisponível.

Próximos passos

Blocos (CPF/CNPJ)

Catálogo completo de blocos de verificação, com escopo, grupo e descrição

Títulos e NFe (Borderô)

As validações de título e o cruzamento com XMLs de NFe

Ciclo de vida

Como a engine determina o resultado de cada motor

Erros

Formato RFC 7807, incluindo not_found e no_engine