> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sherlocker.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Motores de Análise

> As APIs de análise de risco do Sherlocker: CPF/CNPJ individual e borderô CNAB 400

O Sherlocker expõe **dois motores de análise** pela mesma API `/v1` — mesma base, mesma chave `slhk_` e mesma feature de acesso:

* **[Motor de CPF/CNPJ](/motor-analise/introducao)** — análise de risco de um documento individual: você envia um CNPJ ou CPF e recebe um veredito consolidado (`verdict`) com o detalhamento de cada verificação (`blocks`) e das fontes consultadas (`coverage`).
* **[Motor de Borderô](/credito/introducao)** — análise de uma operação de desconto de duplicatas a partir de um arquivo **CNAB 400**: o motor faz o parse dos títulos, analisa o cedente e cada sacado único, valida cada título (com cruzamento opcional contra XMLs de NFe) e devolve um veredito por título e da operação.

<Warning>
  Os dois motores estão em **beta**. O acesso é liberado por workspace através da feature `analysis_engine` (necessária para qualquer chamada `/v1`) e, adicionalmente, `analysis_engine_pf` para análises de CPF. Sem a feature, as chamadas retornam `403 feature_not_enabled`. [Solicite acesso aqui](/api/access).
</Warning>

## Qual motor usar?

|               | Motor de CPF/CNPJ                                    | Motor de Borderô                                                                                    |
| ------------- | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| O que analisa | Um CNPJ ou CPF individual (cadastro, sanções, risco) | Um borderô completo em CNAB 400 (cedente, sacados, títulos e NFe)                                   |
| Entrada       | Body JSON com `document` (CNPJ ou CPF)               | `multipart/form-data` com o arquivo remessa (`file`), `cedente_cnpj` e ZIP de NFe opcional (`xmls`) |
| Endpoints     | `POST /analyses` e `GET /analyses/{id}`              | `POST /operations`, `GET /operations/{id}` e `GET /operations/{id}/result`                          |
| Cobrança      | Por análise                                          | Por entidade única do borderô (cedente + sacados únicos)                                            |
| Resultado     | `verdict` + `blocks` + `coverage`                    | Árvore cedente → sacados → títulos com `issues` por nó, `summary`, `coverage` e `degraded_rules`    |
| Caso típico   | Onboarding/KYC, due diligence de uma contraparte     | Esteira de FIDC, securitizadora ou factoring analisando uma remessa                                 |

Regra prática: se a pergunta é "**posso operar com esta empresa/pessoa?**", use o Motor de CPF/CNPJ. Se é "**o que fazer com cada título deste borderô?**", use o Motor de Borderô.

## Como os dois compõem

O Motor de Borderô usa o Motor de CPF/CNPJ por baixo: cada entidade única do arquivo (o cedente e cada sacado distinto) é analisada uma vez — e o detalhamento de cada entidade chega nas `issues` dos próprios nós `cedente` e `sacados[]` da árvore do `GET /operations/{id}/result`:

```mermaid theme={null}
sequenceDiagram
    participant C as Seu sistema
    participant B as Motor de Bordero
    participant A as Motor de CPF/CNPJ
    C->>B: POST /operations (multipart: file + cedente_cnpj)
    B->>A: 1 analise por entidade unica
    B-->>C: 202 (operation_id, status: queued)
    C->>B: GET /operations/{id}/result
    B-->>C: cedente, sacados, titulos, issues, summary
```

Ambos são assíncronos (polling — no CPF/CNPJ com `poll_after_seconds`/`Retry-After`, no borderô a cada \~2s), cobram tokens do mesmo pool do workspace (com estorno automático em `failed`) e retornam erros no mesmo formato RFC 7807 — veja a [referência comum de erros](/motor-analise/erros). O header `Idempotency-Key` é obrigatório no `POST /analyses` e opcional no `POST /operations` — veja [Idempotência](/motores/idempotencia).

<Note>
  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=`.
</Note>

## Collection do Postman

Disponibilizamos uma collection do Postman **só para os Motores**, com as requests dos dois motores (`POST`/`GET /analyses` e `POST`/`GET /operations`), autenticação `Bearer slhk_` já configurada e captura automática do `analysis_id`/`operation_id`.

<Steps>
  <Step title="Baixar a collection">
    Faça download do arquivo [sherlocker-motores-postman-collection.json](https://raw.githubusercontent.com/Sherlocker-LTDA/sherlocker-docs/refs/heads/main/sherlocker-motores-postman-collection.json).
  </Step>

  <Step title="Importar no Postman">
    No [Postman](https://www.postman.com/downloads/), clique em **Import** e selecione o arquivo. Você verá a collection **Sherlocker Motores de Análise v1** com as pastas **Motor de CPF/CNPJ** e **Motor de Borderô (CNAB 400)**.
  </Step>

  <Step title="Configurar a chave slhk_">
    Abra a aba **Variables** da collection e preencha `token` com sua chave `slhk_`. A collection já usa `Authorization: Bearer {{token}}` — **não** use `?token=`.
  </Step>

  <Step title="Testar">
    Rode **Criar análise - CNPJ (PJ)**: o `analysis_id` é salvo automaticamente. Em seguida rode **Consultar análise** e repita até o `status` ser `completed`. Para o borderô, selecione o arquivo `.REM` no campo `file` de **Criar operação**.
  </Step>
</Steps>

<Note>
  As variáveis `document` e `cedente_cnpj` já vêm com valores de exemplo. Preencha apenas o `token` para começar.
</Note>

<Warning>
  Nunca compartilhe a collection com o `token` preenchido. Use a coluna **Current value** (que não é exportada) em vez de **Initial value**.
</Warning>

## Próximos passos

<CardGroup cols={2}>
  <Card title="Motor de CPF/CNPJ" icon="user-check" href="/motor-analise/introducao">
    Análise de risco de um CNPJ ou CPF individual
  </Card>

  <Card title="Motor de Borderô" icon="file-invoice-dollar" href="/credito/introducao">
    Análise de borderôs CNAB 400 com validação de NFe
  </Card>

  <Card title="Autenticação" icon="key" href="/motor-analise/autenticacao">
    Uma chave `slhk_`, os dois motores
  </Card>

  <Card title="Solicitar acesso" icon="unlock" href="/api/access">
    Peça acesso ao beta para o seu workspace
  </Card>
</CardGroup>
