> For the complete documentation index, see [llms.txt](https://docs.caf.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caf.io/caf-api/caf-api-pt-br/api-core/transaction-details/background-check/kyc/documents.md).

# Documentos

## VerifAI Docs - Detecção de manipulação de arquivos - NOVO (PF99)

Retorna informações sobre manipulações digitais em arquivos, como contratos sociais, notas fiscais e recibos, analisando seus metadados. Para maior precisão, recomendamos que você envie arquivos em formato PDF. Atualmente, essa funcionalidade está disponível em inglês e português, com o espanhol como o próximo idioma a ser adicionado.

**Seção**: `pfVerifaiDocs`

**Arquivos obrigatórios:** `Qualquer arquivo no formato .pdf, .jpg ou .jpeg`

**Parâmetro opcional:** `CPF`

{% tabs %}
{% tab title="Esquema" %}

| Atributo                             | Tipo             | Descrição                                                                                                                                                 |
| ------------------------------------ | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| statusCode                           | String           | Status da consulta ([detalhes](/caf-api/caf-api-pt-br/api-core/transaction-details/background-check/data-structure.md#status-code))                       |
| message                              | String           | Mensagem descritiva do resultado da consulta                                                                                                              |
| dados                                | Array            | Uma lista com os resultados da análise de cada documento enviado                                                                                          |
| data\[x].status                      | String           | Status da análise                                                                                                                                         |
| data\[x].analysisTime                | String           | Carimbo de data e hora da análise                                                                                                                         |
| data\[x].queryId                     | String           | ID interno da análise                                                                                                                                     |
| data\[x].sha256                      | String           | Sha256 do arquivo de entrada                                                                                                                              |
| data\[x].fileType                    | String           | Tipo do documento analisado                                                                                                                               |
| data\[x].mimeType                    | String           | Tipo MIME do documento de entrada: `application/pdf`, `image/jpeg`                                                                                        |
| data\[x].score                       | String           | Pontuação de fraude produzida pela análise do documento: `NORMAL`, `TRUSTED`, `WARNING`, `HIGH_RISK`                                                      |
| data\[x].decision                    | String           | Nível de risco associado ao documento analisado: `LOW_RISK`, `MEDIUM_RISK`, `HIGH_RISK`                                                                   |
| data\[x].numPages                    | String           | Número de páginas no documento enviado                                                                                                                    |
| data\[x].fileName                    | String           | Nome do arquivo                                                                                                                                           |
| data\[x].submissionId                | String           | Identificador único do documento                                                                                                                          |
| data\[x].reason                      | Objeto           | Objeto de detalhes que descreve o motivo da decisão                                                                                                       |
| data\[x].reason.value                | String           | Rótulo do motivo                                                                                                                                          |
| data\[x].reason.label                | String           | Descrição do motivo                                                                                                                                       |
| data\[x].sampleMetadata              | Objeto           | Metadados de um documento analisado                                                                                                                       |
| data\[x].sampleMetadata.producer     | String           | Produtor do documento                                                                                                                                     |
| data\[x].sampleMetadata.creator      | String           | Criador do documento                                                                                                                                      |
| data\[x].sampleMetadata.creationDate | String           | Data de criação do documento                                                                                                                              |
| data\[x].sampleMetadata.modDate      | String           | Data de modificação do documento                                                                                                                          |
| data\[x].sampleMetadata.author       | String           | Autor do documento                                                                                                                                        |
| data\[x].sampleMetadata.title        | String           | Título do documento                                                                                                                                       |
| data\[x].sampleMetadata.keywords     | String           | Palavras-chave do documento                                                                                                                               |
| data\[x].sampleMetadata.subject      | String           | Assunto do documento                                                                                                                                      |
| data\[x].indicators                  | Array de objetos | Informações detalhadas sobre os resultados específicos da análise. Este campo contém observações detalhadas que o sistema conseguiu fazer sobre o arquivo |
| data\[x].indicators\[x].type         | String           | Tipo de um indicador de qualidade: `RISK`, `TRUST`, `INFO`                                                                                                |
| data\[x].indicators\[x].category     | String           | Categoria do indicador                                                                                                                                    |
| data\[x].indicators\[x].title        | String           | Título do indicador                                                                                                                                       |
| data\[x].indicators\[x].description  | String           | Descrição do indicador                                                                                                                                    |
| data\[x].indicators\[x].origin       | String           | Origem do indicador: `fraud`, `quality`                                                                                                                   |
| data\[x].documentClass               | Objeto           | O tipo de arquivo enviado para análise                                                                                                                    |
| data\[x].documentClass.id            | String           | ID do tipo de documento                                                                                                                                   |
| data\[x].documentClass.type          | String           | Tipo de documento                                                                                                                                         |
| data\[x].documentClass.detailedType  | String           | Tipo de documento detalhado                                                                                                                               |
| {% endtab %}                         |                  |                                                                                                                                                           |

{% tab title="Exemplo" %}

```json
{
  "pfVerifaiDocs": {
    "statusCode": "01",
    "data": [
      {
        "status": "SUCCESS",
        "analysisTime": "2025-07-01T19:39:20.605088Z",
        "deploymentVersion": "4f59fea5",
        "queryId": "3512299f-8385-4152-93c2-eaa2dea85983-6864382d16941a000265d233-conta-internet-20-05",
        "fileType": "pdf",
        "mimeType": "application/pdf",
        "sha256": "63d5d349a6610d048c05a620aa3f7afbda3be2686c6791418ac8c7d2b099db71",
        "score": "HIGH_RISK",
        "sampleMetadata": {
          "producer": "Producer 1.91a ",
          "creator": "Dox PDF",
          "creationDate": "2024-12-20T09:41:35+01:00",
          "modDate": "2025-01-09T17:48:56+01:00",
          "author": "Document Designer Development Group",
          "title": "Vivo conta 20/05/2025",
          "keywords": "Ver 6.0",
          "subject": "Internet"
        },
        "indicators": [
          {
            "type": "RISK",
            "category": "document_structure",
            "title": "Documento conhecido com padrões inesperados",
            "Vimos muitos documentos assim da Telefônica Brasil S.A., e este se destaca - da maneira errada. Sua estrutura, layout e outros elementos não seguem o padrão esperado. Esses indícios sugerem fortemente que o documento foi modificado, recriado ou produzido usando um software diferente.",
            "origin": "fraud"
          },
          {
            "type": "RISK",
            "category": "modifications",
            "title": "Conteúdo foi modificado",
            "Este documento foi produzido em várias versões. Esta versão do documento difere do original.",
            "origin": "fraud"
          },
          {
            "type": "RISK",
            "category": "modifications",
            "title": "Editado usando editor",
            "Este documento contém tags usadas por editores de PDF, que indicam modificações no documento.",
            "origin": "fraud"
          },
          {
            "type": "TRUST",
            "category": "visual_appearance",
            "title": "Logo da Telefônica Brasil S.A.",
            "Este documento contém um logotipo comumente associado à Telefônica Brasil S.A., sugerindo que foi emitido por essa concessionária.",
            "origin": "fraud"
          },
          {
            "type": "RISK",
            "category": "metadata_modifications",
            "title": "Evidência de modificação com base nos metadados do documento",
            "O horário de criação é 2024-12-20T08:41:35+00:00, mas o horário de modificação é 2025-01-09T16:48:56+00:00. Isso pode indicar que o documento foi atualizado ou modificado. O intervalo entre criação e modificação é de 20 dias, 8:07:21.",
            "origin": "fraud"
          },
          {
            "type": "RISK",
            "category": "modifications",
            "title": "Fontes anômalas",
            "Algumas das fontes usadas aqui normalmente não são usadas pelo emissor nesse tipo de documento.",
            "origin": "fraud"
          },
          {
            "type": "RISK",
            "category": "anomalous_metadata",
            "title": "Documento possui metadados anômalos",
            "Os metadados (criador, produtor etc.) diferem do documento típico do mesmo emissor. ",
            "origin": "fraud"
          }
        ],
        "documentClass": {
          "id": "utility_bill_vivo",
          "type": "utility_bill",
          "documentClassType": "UtilityBillDocumentClass",
          "detailedType": "internet_mobile_television"
        },
        "numPages": 3,
        "fileName": "conta-internet-20-05.pdf",
        "submissionId": "bdd50bc4-fa5c-46ba-a9d6-5c715af98daa",
        "decision": "HIGH_RISK",
        "reason": {
            "value": "DIGITAL_MODIFICATION_HIGH_CONFIDENCE",
            "label": "O documento contém traços de modificação digital, provavelmente com intenção fraudulenta"
        }
      },
      {
          "status": "SUCCESS",
          "analysisTime": "2025-07-02T13:11:30.099104Z",
          "deploymentVersion": "4f59fea5",
          "queryId": "49dc9bda-fa86-41c0-9c9c-8a8cff5e6ecd-68652fdfdf165d00021c9f44-comprovante-pix",
          "fileType": "pdf",
          "mimeType": "application/pdf",
          "sha256": "55662b513518cf0bedf695febedbfd489924b1ec92de3aabfdc6dcf97e2822dc",
          "score": "NORMAL",
          "sampleMetadata": {
            "producer": "mPDF 7.1.9",
            "creator": null,
            "creationDate": "2019-11-29T06:33:40+03:00",
            "modDate": "2019-11-29T06:33:40+03:00",
            "author": null,
            "title": "Tiny",
            "keywords": null,
            "subject": null
          },
          "indicators": [
            {
              "indicatorId": "is_pdf_unmodified_per_metadata",
              "type": "TRUST",
              "category": "authenticity",
              "title": "Sem modificação nos metadados do documento",
              "Os carimbos de data e hora nos metadados deste documento não indicam que o arquivo foi atualizado incrementalmente ou modificado.",
              "origin": "fraud"
            },
            {
              "indicatorId": "has_mpdf_metadata",
              "type": "INFO",
              "category": "known_creator",
              "title": "Salvo no mPDF",
              "O documento foi processado e salvo no mPDF - biblioteca de software (linguagem PHP) para gerar arquivos PDF a partir de documentos HTML.",
              "origin": "fraud"
            }
          ],
          "documentClass": {
            "id": "unknown",
            "type": "unknown",
            "documentClassType": "DocumentClass"
          },
          "numPages": 1,
          "fileName": "comprovante-pix.pdf",
          "submissionId": "a441c5d6-b2d2-4fef-8aaa-799ae7308f4b",
          "decision": "LOW_RISK",
          "reason": {
              "value": "NO_DIGITAL_MODIFICATION",
              "label": "O documento não apresenta sinais de modificação digital"
          }
        }
    ]
  }
}
```

{% endtab %}

{% tab title="Regras de Validação" %}

| Regra                                 | Descrição                                                                           |
| ------------------------------------- | ----------------------------------------------------------------------------------- |
| verifai\_docs\_available\_analysis    | Verifica se os resultados da análise estão disponíveis para os documentos enviados. |
| verifai\_docs\_analysis\_medium\_risk | Verifica se o resultado da análise de algum documento enviado indica risco médio.   |
| verifai\_docs\_analysis\_high\_risk   | Verifica se o resultado da análise de algum documento enviado indica risco alto.    |
| {% endtab %}                          |                                                                                     |
| {% endtabs %}                         |                                                                                     |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.caf.io/caf-api/caf-api-pt-br/api-core/transaction-details/background-check/kyc/documents.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
