# Documents

## VerifAI Docs - File manipulation detection - NEW (PF99)

Returns information about digital manipulations in files, such as social contracts, invoices, receipts, etc., through metadata analysis. For greater accuracy, it is recommended to send files in PDF format.

**Section**: `pfVerifaiDocs`

**Required files:** `Any file in .pdf, .jpg, or .jpeg format`

**Optional parameter:** `CPF`

{% tabs %}
{% tab title="Schema" %}
| Attribute                            | Type             | Description                                                                                                                                                |
| ------------------------------------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| statusCode                           | String           | Query status ([details](../../data-structure#status-code))                                                                                                 |
| message                              | String           | Query result descriptive message                                                                                                                           |
| data                                 | Array            | A list with the analysis results for each submitted document                                                                                               |
| data\[x].status                      | String           | Status of the analysis                                                                                                                                     |
| data\[x].analysisTime                | String           | Timestamp of analysis                                                                                                                                      |
| data\[x].queryId                     | String           | Internal ID of the analysis                                                                                                                                |
| data\[x].sha256                      | String           | Sha256 of the input file                                                                                                                                   |
| data\[x].fileType                    | String           | Type of analyzed document                                                                                                                                  |
| data\[x].mimeType                    | String           | Mime type of the input document : `application/pdf`, `image/jpeg`                                                                                          |
| data\[x].score                       | String           | Fraud score produced by the document analysis: `NORMAL`, `TRUSTED`, `WARNING`, `HIGH_RISK`                                                                 |
| data\[x].decision                    | String           | Level of risk associated with the analyzed document: `LOW_RISK`, `MEDIUM_RISK`, `HIGH_RISK`                                                                |
| data\[x].numPages                    | String           | Number of pages in submitted document                                                                                                                      |
| data\[x].fileName                    | String           | File name                                                                                                                                                  |
| data\[x].submissionId                | String           | Document unique identifier                                                                                                                                 |
| data\[x].reason                      | Object           | Details object describing the reason for the decision                                                                                                      |
| data\[x].reason.value                | String           | Reason label                                                                                                                                               |
| data\[x].reason.label                | String           | Reason description                                                                                                                                         |
| data\[x].sampleMetadata              | Object           | Metadata of an analyzed document                                                                                                                           |
| data\[x].sampleMetadata.producer     | String           | Document produce                                                                                                                                           |
| data\[x].sampleMetadata.creator      | String           | Document creator                                                                                                                                           |
| data\[x].sampleMetadata.creationDate | String           | Document creation date                                                                                                                                     |
| data\[x].sampleMetadata.modDate      | String           | Document modification date                                                                                                                                 |
| data\[x].sampleMetadata.author       | String           | Document author                                                                                                                                            |
| data\[x].sampleMetadata.title        | String           | Document title                                                                                                                                             |
| data\[x].sampleMetadata.keywords     | String           | Document keywords                                                                                                                                          |
| data\[x].sampleMetadata.subject      | String           | Document subject                                                                                                                                           |
| data\[x].indicators                  | Array of objects | Detailed information about the specific results of the analysis. This field contains detailed observations that the system was able to make about the file |
| data\[x].indicators\[x].type         | String           | Type of a quality indicator: `RISK`, `TRUST`, `INFO`                                                                                                       |
| data\[x].indicators\[x].category     | String           | Category of indicator                                                                                                                                      |
| data\[x].indicators\[x].title        | String           | Indicator title                                                                                                                                            |
| data\[x].indicators\[x].description  | String           | Description of the indicator                                                                                                                               |
| data\[x].indicators\[x].origin       | String           | Indicator origin: `fraud`, `quality`                                                                                                                       |
| data\[x].documentClass               | Object           | The type of file submitted for analysis                                                                                                                    |
| data\[x].documentClass.id            | String           | Document type ID                                                                                                                                           |
| data\[x].documentClass.type          | String           | Document type                                                                                                                                              |
| data\[x].documentClass.detailedType  | String           | Document type detailed                                                                                                                                     |
{% endtab %}

{% tab title="Example" %}
```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": "Known document with unexpected patterns",
            "description": "We’ve seen many documents like this from Telefonica Brasil S.A., and this one stands out - in the wrong way. Its structure, layout, and other elements don’t follow the expected pattern. These clues strongly suggest the document was modified, recreated, or produced using different software.",
            "origin": "fraud"
          },
          {
            "type": "RISK",
            "category": "modifications",
            "title": "Content was modified",
            "description": "This document was produced in several versions. This version of the document differs from the original.",
            "origin": "fraud"
          },
          {
            "type": "RISK",
            "category": "modifications",
            "title": "Edited using editor",
            "description": "This document contains tags used by PDF editors, which indicate modifications of the document.",
            "origin": "fraud"
          },
          {
            "type": "TRUST",
            "category": "visual_appearance",
            "title": "Telefonica Brasil S.A. logo",
            "description": "This document contains a logo commonly associated with Telefonica Brasil S.A., suggesting it was issued by that utility.",
            "origin": "fraud"
          },
          {
            "type": "RISK",
            "category": "metadata_modifications",
            "title": "Evidence of modification based on document metadata",
            "description": "Time of creation is 2024-12-20T08:41:35+00:00 but the time of modification is 2025-01-09T16:48:56+00:00. This may indicate that the document was updated or modified. The time span between creation and modification is 20 days, 8:07:21.",
            "origin": "fraud"
          },
          {
            "type": "RISK",
            "category": "modifications",
            "title": "Anomalous fonts",
            "description": "Some of the fonts in use here are not typically used by the issuer in this kind of document.",
            "origin": "fraud"
          },
          {
            "type": "RISK",
            "category": "anomalous_metadata",
            "title": "Document has anomalous metadata",
            "description": "The metadata (creator, producer, etc.) differs from the typical document from the same issuer. ",
            "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": "Document contains traces of digital modification, likely with fraudulent intent"
        }
      },
      {
          "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": "No modification in document metadata",
              "description": "Timestamps in this document's metadata do not indicate that the file was incrementally updated or modified.",
              "origin": "fraud"
            },
            {
              "indicatorId": "has_mpdf_metadata",
              "type": "INFO",
              "category": "known_creator",
              "title": "Saved in mPDF",
              "description": "The document was processed and saved in mPDF - software library (PHP language) for generating PDF files from HTML documents.",
              "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": "Document shows no signs of digital modification"
          }
        }
    ]
  }
}
```
{% endtab %}

{% tab title="Validations Rules" %}
| Rule                                  | Description                                                                         |
| ------------------------------------- | ----------------------------------------------------------------------------------- |
| verifai\_docs\_available\_analysis    | Checks if analysis results are available for the submitted documents.               |
| verifai\_docs\_analysis\_medium\_risk | Checks whether the analysis result of any submitted document indicates medium risk. |
| verifai\_docs\_analysis\_high\_risk   | Checks whether the analysis result of any submitted document indicates high risk.   |
{% endtab %}
{% endtabs %}
