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

# Background check e sanções

> Os módulos ofac_realtime, criminal_records_federal e warrants_interpol consultam o documento lido em fontes de sanção e de antecedentes.

## Background check e sanções

Três módulos de **compliance** consultam o **documento lido** em fontes de sanção e antecedentes: `ofac_realtime` (nome e CPF do documento na lista OFAC SDN de sanções internacionais, na versão vigente publicada pelo Tesouro americano, com atestação datada da consulta, a data da publicação em `publication_date` e sem certidão em PDF), `criminal_records_federal` (Certidão de Antecedentes Criminais CAC/SINIC) e `warrants_interpol` (mandados de busca e apreensão BNMP/CNJ e alertas Interpol). Exigem Verificação de Identidade, Face Match e Liveness, pela mesma razão do PEP: o CPF consultado vem do documento, nunca digitado.

**Disponibilidade**: o `ofac_realtime` está à venda e pode ser ligado num flow. O `criminal_records_federal` e o `warrants_interpol` aparecem na tabela de preços e no `GET /v1/capabilities` com preço e status `coming_soon`, e não podem ser ligados num flow enquanto a entrega da fonte não for provada em produção. O estado vem do catálogo vivo, e esta página acompanha.

Como o `pep_sanctions`, **nunca reprovam sozinhos**: um hit sinaliza com evidência para **revisão humana** (nunca decline automático). Se a fonte não responder (indisponível), o módulo fica `pending` e **não é cobrado** (o`ofac_realtime` cobra sempre que responde, inclusive em nada consta, que é o produto: a evidência auditável; enquanto a versão vigente da lista não puder ser confirmada, ele fica `pending` e não cobra).

**A fonte só é consultada quando a verificação comprova que a pessoa presente é a dona do documento**: Face Match, Liveness e leitura do documento aprovados, sem indício de ataque. Sem essa prova a fonte não é consultada, o módulo sai `pending` e **não é cobrado**. Com `pending`, `flagged` e `clear_record` não afirmam nada: leia o `outcome`. A aprovação manual da verificação no painel não chama estas fontes: o módulo continua `pending`.

**Sobre a certidão em PDF, e leia isto antes de programar contra o campo.** A certidão do `criminal_records_federal` e do `warrants_interpol` vive no S3, e o payload **nunca** leva o conteúdo em base64 nem a chave do objeto no bucket. O que ele leva, no campo `pdf_media_id`, é o **identificador da mídia** da certidão na verificação. Para abrir o PDF, chame `GET /v1/verifications/{id}/media` com a sessão do painel (papel owner ou admin): a lista devolve o item com esse mesmo `id`, `kind` igual a `compliance_certificate` e uma URL pré-assinada de vida curta, e o acesso fica registrado como toda visualização de mídia. A certidão segue o prazo de retenção da mídia da verificação e é apagada junto com ela, no pedido do titular, no vencimento do prazo e no encerramento da conta. `null` significa que não veio PDF da fonte, ou que o envio ao S3 falhou sem derrubar o veredito, que já está em `clear_record`.

O `ofac_realtime` é um **add-on** que se soma ao `pep_sanctions` (traz a atestação datada da consulta e a busca por documento/passaporte mundial), não o substitui: em um flow com os dois, a afirmação OFAC aparece nas duas camadas.

```
// ofac_realtime: nada consta (aprovado, cobrado como evidência auditável)
{ "module": "ofac_realtime", "passed": true, "outcome": "approved", "score": 100,
  "data": { "sanctioned": false, "flagged": false, "matched_by": "none",
            "found_count": 0, "results": [], "list_updated_at": "2026-06-15" } }

// ofac_realtime: correspondência na SDN (review COM evidência, NUNCA decline)
{ "module": "ofac_realtime", "passed": false, "outcome": "failed", "score": 40,
  "data": { "sanctioned": true, "flagged": true, "matched_by": "document", "found_count": 1,
            "results": [ { "uid": "SDN-12345", "name": "FULANO DE TAL", "type": "Individual",
                             "list": "SDN List", "programs": ["SDGT"], "nationality": "BR" } ],
            "list_updated_at": "2026-06-15" } }

// criminal_records_federal: certidão em PDF no S3 (pdf_media_id = o id da mídia, NUNCA base64)
{ "module": "criminal_records_federal", "passed": true, "outcome": "approved", "score": 100,
  "data": { "clear_record": true, "flagged": false, "protocol_number": "SINIC-2026-000123",
            "pdf_media_id": "med_4Tz8" } }

// warrants_interpol: nada consta (aprovado)
{ "module": "warrants_interpol", "passed": true, "outcome": "approved", "score": 100,
  "data": { "warrants": [], "interpol": [], "clear_record": true, "flagged": false,
            "protocol_number": "BNMP-2026-000456",
            "pdf_media_id": "med_9Qx2" } }

// warrants_interpol: mandado ATIVO no BNMP -> review COM evidência, NUNCA decline
// os arrays "warrants" e "interpol" são passthrough da fonte: as chaves de cada item
// vêm como o BNMP/CNJ e a Interpol as publicam, e podem variar entre registros.
{ "module": "warrants_interpol", "passed": false, "outcome": "failed", "score": 40,
  "data": { "warrants": [ { "id": "bnmp-8831", "tribunal": "TJSP",
                            "tipoPeca": "Mandado de Prisão", "status": "ativo",
                            "dataExpedicao": "2025-05-01", "recaptura": false } ],
            "interpol": [], "clear_record": false, "flagged": true,
            "protocol_number": "BNMP-2026-000456", "pdf_media_id": null } }

// criminal_records_federal: identidade não comprovada -> fonte NÃO consultada, pending, sem cobrança
{ "module": "criminal_records_federal", "passed": null, "outcome": "pending", "score": 0,
  "data": { "clear_record": null, "flagged": false, "protocol_number": null, "pdf_media_id": null } }

// warrants_interpol: fonte indisponível -> pending, sem cobrança e SEM data
{ "module": "warrants_interpol", "passed": null, "outcome": "pending", "score": null, "data": {} }
```

Em sandbox o desfecho segue o sufixo do documento, como no resto do ambiente de testes, e a fonte paga nunca é chamada. O portão de identidade também vale no sandbox: com o Face Match, a Liveness ou a leitura do documento reprovados, a fonte não é consultada e o módulo sai `pending`, qualquer que seja o sufixo.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.