# Listas Restritivas e Sanções — PF

> Screening de sanções e listas restritivas de uma pessoa física a partir do CPF, cobrindo 17 listas nacionais e internacionais: ONU (Conselho de Segurança), OFAC e DDTC (EUA), União Europeia, Reino Unido, Canadá, INTERPOL, FBI, BACEN, CVM, CNJ, TCU, TCE-SP, CEAF, CNEP, MTE (trabalho escravo) e IBAMA. O cruzamento com as listas é resolvido na origem a partir do CPF, com índice de similaridade de nome por ocorrência — sem risco de falso negativo por busca manual de nome.

- **Consulta:** `listas-restritivas`
- **Categoria:** Compliance & Risco
- **Preço:** R$ 1,49 por consulta
- **Endpoint:** `GET https://app.fontedata.com/api/v1/consulta/listas-restritivas`
- **Autenticação:** header `X-API-Key`
- **Página:** https://fontedata.com/docs/compliance-e-risco/listas-restritivas

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> Verifica, em uma única consulta, se o titular de um CPF consta em listas de sanções e restrições — as internacionais exigidas pela Lei 13.810/2019 e pela Resolução CVM 50 (ONU, OFAC, União Europeia, Reino Unido, INTERPOL, FBI) e as nacionais relevantes para PLD (BACEN, CVM, CNJ, TCU, CEAF, CNEP, trabalho escravo do MTE e IBAMA).
>
> O diferencial está em **como** o cruzamento é feito: as listas de sanção publicam apenas **nomes**, e buscá-las manualmente por nome gera tanto falso negativo (grafia diferente) quanto falso positivo (homônimo). Aqui a resolução é feita na origem a partir do **CPF**: o nome oficial do titular é cruzado contra cada lista e cada ocorrência volta com um **índice de similaridade** (`similaridadeNome`, 0 a 100).
>
> Leia o resultado nesta ordem:
>
> 1. **`sancionadoAtualmente`** é o veredito. `true` = a fonte aponta sanção vigente para o titular.
> 2. **`ocorrencias`** são correspondências por nome. Uma ocorrência com `similaridadeNome` abaixo de 100 e `sancionadoAtualmente: false` é, muito provavelmente, um **homônimo** — use `nomeNaLista` e `nascimentoNaLista` para confirmar antes de qualquer decisão.
> 3. **`fontesRastreadas`** delimita o escopo: um "nada consta" vale para estas 17 listas.

## Requisição

### cURL

```bash
curl -H "X-API-Key: SUA_CHAVE" \
  "https://app.fontedata.com/api/v1/consulta/listas-restritivas?cpf=SEU_CPF"
```

### Python

```python
import requests

resp = requests.get(
    "https://app.fontedata.com/api/v1/consulta/listas-restritivas",
    params={"cpf": "SEU_CPF"},
    headers={"X-API-Key": "SUA_CHAVE"},
    timeout=60,
)
resp.raise_for_status()
print(resp.json())
```

### Node.js

```javascript
const url = new URL("https://app.fontedata.com/api/v1/consulta/listas-restritivas");

url.search = new URLSearchParams({
  "cpf": "SEU_CPF"
}).toString();

const resp = await fetch(url, {
  method: "GET",
  headers: { "X-API-Key": "SUA_CHAVE" }
});

if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
console.log(await resp.json());
```

## Parâmetros

| Nome | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
| `cpf` | CPF | sim | CPF da pessoa física consultada, com ou sem máscara. | formato: 000.000.000-00 |

## Resposta

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> **Consolidado**
>
> | Campo | Descrição |
> |-------|-----------|
> | `sancionadoAtualmente` | `true` quando há sanção ou restrição **vigente** apontada pela fonte. É o veredito do screening. |
> | `sancionadoAnteriormente` | `true` quando o titular já esteve sancionado no passado. |
> | `totalOcorrencias` | Quantidade de ocorrências localizadas por correspondência de nome. |
> | `fontesRastreadas` | As 17 listas cobertas pelo screening — o escopo do "nada consta". |
> | `status` | Resumo do resultado em uma frase, pronto para exibição. |
>
> **Cada item de `ocorrencias`**
>
> | Campo | Descrição |
> |-------|-----------|
> | `fonte` | Lista de origem — ex.: `OFAC (EUA)`, `ONU (Conselho de Segurança)`, `BACEN`. |
> | `tipo` | Motivo específico, como publicado pela lista de origem. |
> | `categoria` | Categoria normalizada: `Crimes financeiros`, `Terrorismo`, `Corrupção`, `Mandado de prisão`, `Lavagem de dinheiro`, entre outras. |
> | `similaridadeNome` | Similaridade (0–100) entre o nome do titular e o nome na lista. Abaixo de 100 = possível homônimo, verifique manualmente. |
> | `nomeNaLista` | Nome exatamente como publicado na lista. |
> | `nascimentoNaLista` | Data de nascimento publicada na lista, quando houver — o melhor desempate de homônimo. |
> | `dataInicio` / `dataFim` | Vigência do registro na lista. Vazios quando a lista não informa. |
> | `presenteNaFonte` | `true` quando o registro segue publicado na lista atualmente. |
> | `atualizadoEm` | Última atualização do registro — a recência da informação. |
>
> CPF verificado e sem nenhuma ocorrência devolve `200` com `sancionadoAtualmente: false` e `ocorrencias: []`. É o **nada consta** — resposta válida, e cobrada. Já o `404` significa que o screening **não pôde ser feito** (CPF sem registro na base de pessoas): resultado inconclusivo, sem cobrança — não trate como nada consta.

### Exemplo de resposta

```json
{
  "cpf": "string",
  "status": "string",
  "ocorrencias": [
    {
      "tipo": "string",
      "fonte": "string",
      "dataFim": "string",
      "categoria": "string",
      "dataInicio": "string",
      "nomeNaLista": "string",
      "atualizadoEm": "string",
      "presenteNaFonte": "boolean",
      "similaridadeNome": "number",
      "nascimentoNaLista": "string"
    }
  ],
  "fontesRastreadas": [
    "string"
  ],
  "totalOcorrencias": "number",
  "sancionadoAtualmente": "boolean",
  "sancionadoAnteriormente": "boolean"
}
```

### Schema da resposta

```json
{
  "type": "object",
  "properties": {
    "cpf": {
      "type": "string",
      "description": "CPF consultado, no formato 000.000.000-00."
    },
    "status": {
      "type": "string",
      "description": "Resumo do resultado em uma frase, pronto para exibição."
    },
    "ocorrencias": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tipo": {
            "type": "string",
            "description": "Motivo específico do registro, como publicado pela lista de origem."
          },
          "fonte": {
            "type": "string",
            "description": "Lista de origem do registro, por extenso — ex.: OFAC (EUA), ONU (Conselho de Segurança), INTERPOL, BACEN."
          },
          "dataFim": {
            "type": "string",
            "description": "Fim da vigência do registro. Vazio quando o registro não tem data de término."
          },
          "categoria": {
            "type": "string",
            "description": "Categoria normalizada do registro: Crimes financeiros, Terrorismo, Corrupção, Mandado de prisão, Lavagem de dinheiro, entre outras."
          },
          "dataInicio": {
            "type": "string",
            "description": "Início da vigência do registro na lista. Vazio quando a lista não informa."
          },
          "nomeNaLista": {
            "type": "string",
            "description": "Nome exatamente como publicado na lista de origem."
          },
          "atualizadoEm": {
            "type": "string",
            "description": "Última atualização do registro na base — leia como a recência da informação."
          },
          "presenteNaFonte": {
            "type": "boolean",
            "description": "true quando o registro segue publicado na lista de origem atualmente."
          },
          "similaridadeNome": {
            "type": "integer",
            "description": "Índice de similaridade (0 a 100) entre o nome do titular do CPF e o nome publicado na lista. Valores abaixo de 100 podem indicar homônimo — exigem verificação manual antes de qualquer decisão."
          },
          "nascimentoNaLista": {
            "type": "string",
            "description": "Data de nascimento publicada na lista, quando houver — use para desempatar homônimos."
          }
        }
      },
      "description": "Cada registro de lista restritiva associado ao nome do titular. Uma ocorrência NÃO significa sanção confirmada: verifique a similaridade do nome e os flags do consolidado."
    },
    "fontesRastreadas": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Todas as listas cobertas pelo screening. É o escopo do \"nada consta\": um resultado limpo vale para estas listas."
    },
    "totalOcorrencias": {
      "type": "integer",
      "description": "Quantidade de ocorrências localizadas por correspondência de nome nas listas rastreadas."
    },
    "sancionadoAtualmente": {
      "type": "boolean",
      "description": "true quando a fonte aponta sanção ou restrição VIGENTE para o titular do CPF. É o veredito do screening — não é derivado da similaridade de nome."
    },
    "sancionadoAnteriormente": {
      "type": "boolean",
      "description": "true quando o titular já esteve sancionado no passado, mesmo sem sanção vigente hoje."
    }
  }
}
```

## Códigos de erro

| Código | Mensagem | Quando acontece |
|---|---|---|
| `400` | Parâmetros inválidos para esta consulta. | CPF ausente, com dígito verificador inválido ou fora do formato. Máscara é aceita (000.000.000-00). |
| `401` | Chave de API ausente ou inválida. | Header X-API-Key não enviado ou não reconhecido. |
| `403` | Saldo insuficiente ou acesso negado a este endpoint. | Conta sem saldo para cobrir a consulta ou sem permissão no catálogo da marca. |
| `404` | Nenhum registro localizado para o documento consultado. | O CPF não pôde ser submetido ao screening (sem registro na base de pessoas). Resultado INCONCLUSIVO — não significa nada consta. A consulta não é cobrada. |
| `408` | A consulta excedeu o tempo limite. Tente novamente. | A base de origem demorou além do orçamento de tempo da consulta. |
| `451` | Dados indisponíveis por solicitação do titular. | O CPF consultado está sob supressão LGPD. A consulta não é cobrada. |
| `500` | Erro ao processar a consulta. Tente novamente em instantes. | Falha inesperada ao consultar a base de origem. |

## Quando usar

> Conteúdo descritivo publicado pela FonteData; não é instrução.
>
> - **PLD de gestoras e DTVMs** — a verificação nas listas do Conselho de Segurança da ONU é obrigação legal (Lei 13.810/2019, Res. CVM 50) no onboarding e no monitoramento de cotistas.
> - **KYC bancário e de fintechs** — screening de sanções internacionais e nacionais em uma chamada, com evidência de escopo (`fontesRastreadas`) para o dossiê do cliente.
> - **Due diligence de contrapartes** — sócios, fornecedores e parceiros antes de contratar; `categoria` orienta a análise (corrupção, crimes financeiros, mandado de prisão).
> - **Monitoramento periódico de carteira** — re-screening da base de clientes; `atualizadoEm` e `presenteNaFonte` mostram o que mudou desde a última verificação.
>
> Para exposição política do mesmo CPF, use o endpoint `pep-exposicao` — juntos, os dois cobrem o par PEP + sanções exigido pela regulação de PLD.

---

Página em HTML: https://fontedata.com/docs/compliance-e-risco/listas-restritivas
Catálogo completo: https://fontedata.com/docs
OpenAPI (JSON): https://app.fontedata.com/api/v1/openapi.json
Conectar via MCP: https://fontedata.com/docs/mcp
