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

# Relatório de comprovante de endereço: campos extraídos

> Relatório de comprovante de endereço da Didit: endereço extraído, tipo de documento, emissor, datas, correspondência de nome, fraude em PDF e avisos.

## Visão geral

A verificação de comprovante de endereço (POA) aceita um único PDF ou imagem (TIFF, JPG, JPEG, PNG, WEBP, opcionalmente compactados em ZIP) de até 15 MB, executa a classificação do tipo de documento, a extração baseada em LLM e a análise forense de PDF/EXIF, e retorna:

* O **endereço extraído**, tanto em formato bruto quanto estruturado (`street_1`, `city`, `region`, `postal_code`, lat/lng).
* **Metadados do documento**: tamanho do arquivo, tipo de conteúdo, datas de criação e modificação, datas EXIF, informações de assinatura e qualquer evidência de manipulação por sobreposição obtida na análise forense de PDF.
* **Pontuações de correspondência de nome** em relação ao documento de identidade verificado e aos detalhes esperados fornecidos na criação da sessão.
* **Campos extras bancários** (número da conta, IBAN, sort code, routing number, SWIFT/BIC, agência) quando o documento é um extrato bancário.

![Captura de tela do relatório de comprovante de endereço da Didit mostrando os campos de endereço extraídos e o tipo de documento](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/proof-of-address-report.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=099d1bd6cf0c215cc93c3a504b8aa9ee)

> [!NOTE]
>
> A extração de POA faz a leitura de texto não estruturado, o que adiciona uma latência de **5 a 15 segundos** por documento. Os webhooks só são disparados quando toda a etapa do fluxo é concluída. não consulte o endpoint de decisão com frequência maior que uma vez a cada 5 s durante esse período.

## Onde aparece nas respostas da API

O endpoint de decisão retorna o POA no array plural **`poa_verifications[]`** em `GET /v3/session/{sessionId}/decision/`. Cada entrada corresponde a uma execução do nó de POA no seu fluxo. Sessões com várias etapas de POA (por exemplo, extrato bancário + conta de consumo) geram uma entrada por execução, cada uma com seu próprio `node_id`.

```text theme={null}
GET /v3/session/{sessionId}/decision/
  ──▶ { "poa_verifications": [ { node_id, status, document_type, poa_address, … }, … ] }
```

A estrutura abaixo reflete o schema canônico. Consulte [Modelos de dados](https://docs.didit.me/pt-br/reference/data-models.md#comprovante-de-endereço).

## Schema

Consulte [Comprovante de endereço na referência de modelos de dados](https://docs.didit.me/pt-br/reference/data-models.md#comprovante-de-endereço) para ver o schema canônico.

```typescript theme={null}
interface POAV3 {
  status: 'Not Finished' | 'Approved' | 'Declined' | 'In Review';
  node_id: string | null;

  issuing_state: string | null;         // ISO 3166-1 alpha-3
  document_type:                        // never null — falls back to 'UNKNOWN'
    | 'UTILITY_BILL'
    | 'BANK_STATEMENT'
    | 'GOVERNMENT_ISSUED_DOCUMENT'
    | 'OTHER_POA_DOCUMENT'
    | 'UNKNOWN';
  document_subtype: string;             // e.g. 'ELECTRICITY_BILL', 'ACCOUNT_STATEMENT';
                                        // never null — falls back to 'UNKNOWN'
  issuer: string | null;
  issue_date: string | null;            // YYYY-MM-DD
  expiration_date: string | null;       // YYYY-MM-DD when present

  // Extracted address
  poa_address: string | null;           // raw, single-line
  poa_formatted_address: string | null; // geocoded/formatted
  poa_parsed_address: {
    address_type?: string;
    street_1?: string;
    street_2?: string;
    city?: string;
    region?: string;
    postal_code?: string;
    country?: string;                   // ISO 3166-1 alpha-2
    raw_results?: object;
    document_location?: { latitude: number; longitude: number };
  } | null;

  document_file: string | null;         // presigned URL, expires after ~4 hours
  document_language: string | null;     // ISO 639-1, e.g. 'en'
  name_on_document: string | null;

  // Expected details (when supplied at session creation)
  expected_details_address: string | null;
  expected_details_formatted_address: string | null;
  expected_details_parsed_address: object | null;

  // Match scores (float, 0-100)
  name_match_score_expected_details: number | null;
  name_match_score_id_verification: number | null;

  // PDF + image forensics
  document_metadata: {
    file_size: number | null;
    content_type: string | null;
    creation_date: string | null;
    modified_date: string | null;
    creator: string | null;
    producer: string | null;
    software: string | null;
    encryption: string | null;
    is_signed: boolean | null;
    is_tampered: boolean | null;
    signature_info: object | null;
    exif_original_date: string | null;
    exif_digitized_date: string | null;
    processed_by_known_editor: boolean | string | null;
    has_different_creation_mod_date: boolean | null;
    overlay_manipulation: {
      detected: boolean;
      analyzed: boolean;
      signals: string[];                // 'duplicate_font_subset', 'glyph_fragmentation'
      duplicate_font_subsets: object[];
      fragmented_fonts: object[];
      manipulated_regions: {
        page: number;
        x: number;
        y: number;
        width: number;
        height: number;
        page_width: number;
        page_height: number;
      }[];
    } | null;                           // null for non-PDF uploads or when not analyzed
  } | null;

  // Bank-related and custom fields
  extra_fields: {
    bank_account_number: string | null;
    bank_iban: string | null;
    bank_sort_code: string | null;
    bank_routing_number: string | null;
    bank_swift_bic: string | null;
    bank_branch_name: string | null;
    bank_branch_address: string | null;
    document_phone_number: string | null;
    additional_names: string[];
    [customField: string]: unknown;
  };

  extra_files: string[];                // presigned URLs for additional uploaded files

  // QR codes and barcodes
  detected_codes: {
    type: string;                       // 'QR_CODE', 'CODE_128', 'EAN_13', 'DATA_MATRIX', 'PDF_417', …
    page_number: number;                // 1-based
    position: [number, number][] | null;
    x: number | null;
    y: number | null;
    width: number | null;
    height: number | null;
    page_width: number;
    page_height: number;
    raw_payload: string;                // base64, empty string when unavailable
    parsed_payload: unknown | null;      // null when located but undecodable
  }[];

  warnings: Warning[];                  // see Data Models — Warning object
}
```

Cada entrada em `warnings[]` é um [objeto Warning](https://docs.didit.me/pt-br/reference/data-models.md#objeto-de-aviso): `{ feature, risk, additional_data, log_type, short_description, long_description, node_id }`, sendo `feature` sempre `"PROOF_OF_ADDRESS"` neste relatório.

## Valores de status

`status` usa o enum de status no nível do recurso (`FeatureStatusChoices`).

| Valor | Significado |
| - | - |
| `Not Finished` | O nó de POA ainda não foi concluído para esta sessão (estado padrão). |
| `Approved` | O documento foi analisado corretamente e nenhum aviso resultou em **Decline** ou **Review**. |
| `In Review` | Pelo menos um aviso configurável está definido como **Review** no seu fluxo (e nada foi recusado). |
| `Declined` | Foi disparado um aviso de recusa obrigatória (`MISSING_ADDRESS_INFORMATION`, `POA_DOCUMENT_EXPIRED`, `INVALID_DOCUMENT_TYPE`, `UNABLE_TO_VALIDATE_DOCUMENT_AGE`) ou um aviso configurável está definido como **Decline** no seu fluxo. |

Regras de status personalizadas configuradas no nó do fluxo podem ajustar ainda mais o status calculado. As regras são combinadas com a precedência Declined > In Review > Approved. Consulte [Avisos de comprovante de endereço](https://docs.didit.me/pt-br/core-technology/proof-of-address/warnings-proof-of-address.md) para ver o mapeamento completo de risco para ação, incluindo o comportamento de nova tentativa exclusivo do fluxo para `FUTURE_ISSUE_DATE`.

## Evidência de manipulação por sobreposição em PDF

Quando o documento enviado é um PDF, `document_metadata.overlay_manipulation` pode conter evidências forenses de sobreposições de texto suspeitas:

* `detected`: `true` quando a verificação encontrou evidências de manipulação.
* `analyzed`: `true` quando foi possível analisar o PDF.
* `signals`: as verificações que foram disparadas (`duplicate_font_subset`, `glyph_fragmentation`).
* `manipulated_regions`: retângulos em coordenadas da página ao redor do texto com suspeita de edição. Cada retângulo usa o espaço de coordenadas da página do PDF (`x`, `y`, `width`, `height`, `page_width`, `page_height`), para que os revisores possam destacar a área afetada em uma pré-visualização do PDF.

O campo é `null` quando o documento não é um PDF ou quando não foi possível analisar o PDF. Quando `detected=true`, o sistema também emite um aviso `SUSPECTED_DOCUMENT_MANIPULATION` cujo `additional_data` reflete os sinais e retângulos acima (a menos que um sinal mais forte, como modificação após a assinatura digital, `is_tampered=true`, tenha prioridade; nesse caso, `additional_data` descreve a adulteração da assinatura).

## QR codes e códigos de barras

Todo relatório de POA inclui `detected_codes`, abrangendo todas as páginas processadas. Cada item contém:

| Campo | Descrição |
| - | - |
| `type` | Simbologia detectada, como `QR_CODE`, `CODE_128`, `EAN_13`, `DATA_MATRIX` ou `PDF_417` |
| `page_number` | Número da página, começando em 1 |
| `position` | Polígono detectado em pixels da página renderizada, ou `null` quando não há uma localização confiável disponível |
| `x`, `y`, `width`, `height` | Caixa delimitadora em pixels da página renderizada, ou `null` quando não há uma localização confiável disponível |
| `page_width`, `page_height` | Dimensões da página renderizada usadas pelas coordenadas |
| `parsed_payload` | String decodificada ou valor estruturado, ou `null` quando o código só pode ser localizado |
| `raw_payload` | Payload bruto do decodificador como string base64, quando disponível; caso contrário, uma string vazia |

`detected_codes` é um array vazio quando nenhum código compatível é encontrado. A Didit nunca adivinha um payload: códigos danificados ou ilegíveis podem ser retornados com sua localização e `parsed_payload: null`, enquanto falhas na detecção de códigos não causam falha na verificação de POA.

## Exemplos

### Aprovado: extrato bancário

```json theme={null}
{
  "poa_verifications": [
    {
      "status": "Approved",
      "node_id": "feature_poa_1",
      "issuing_state": "USA",
      "document_type": "BANK_STATEMENT",
      "document_subtype": "ACCOUNT_STATEMENT",
      "issuer": "National Bank",
      "issue_date": "2026-04-15",
      "expiration_date": null,
      "document_language": "en",
      "name_on_document": "John A. Smith",
      "poa_address": "123 Main St, Apartment 4B, New York, NY 10001",
      "poa_formatted_address": "123 Main St, Apartment 4B, New York, NY 10001, USA",
      "poa_parsed_address": {
        "address_type": "Street",
        "street_1": "123 Main St",
        "street_2": "Apartment 4B",
        "city": "New York",
        "region": "NY",
        "postal_code": "10001",
        "country": "US",
        "document_location": { "latitude": 40.7128, "longitude": -74.0060 }
      },
      "document_file": "https://<media-host>/.../poa.pdf?X-Amz-Expires=14400",
      "document_metadata": {
        "file_size": 246810,
        "content_type": "application/pdf",
        "creation_date": "2026-04-15",
        "modified_date": "2026-04-15",
        "creator": "PDFKit",
        "producer": "Quartz",
        "software": null,
        "encryption": null,
        "is_signed": false,
        "is_tampered": false,
        "signature_info": null,
        "exif_original_date": null,
        "exif_digitized_date": null,
        "processed_by_known_editor": false,
        "has_different_creation_mod_date": false,
        "overlay_manipulation": null
      },
      "name_match_score_expected_details": 100,
      "name_match_score_id_verification": 98,
      "expected_details_address": null,
      "expected_details_formatted_address": null,
      "expected_details_parsed_address": null,
      "extra_fields": {
        "bank_account_number": "****1234",
        "bank_iban": null,
        "bank_sort_code": null,
        "bank_routing_number": "021000089",
        "bank_swift_bic": "NABNUS33",
        "bank_branch_name": "Manhattan Midtown",
        "bank_branch_address": "111 Wall St, New York, NY",
        "document_phone_number": null,
        "additional_names": []
      },
      "extra_files": [],
      "detected_codes": [
        {
          "type": "QR_CODE",
          "page_number": 1,
          "position": [[820, 1120], [1002, 1120], [1002, 1302], [820, 1302]],
          "x": 820,
          "y": 1120,
          "width": 182,
          "height": 182,
          "page_width": 1190,
          "page_height": 1684,
          "raw_payload": "aHR0cHM6Ly9uYXRpb25hbGJhbmsuZXhhbXBsZS9zdG10Lzk5ODE=",
          "parsed_payload": "https://nationalbank.example/stmt/9981"
        },
        {
          "type": "CODE_128",
          "page_number": 1,
          "position": [[112, 1480], [560, 1480], [560, 1540], [112, 1540]],
          "x": 112,
          "y": 1480,
          "width": 448,
          "height": 60,
          "page_width": 1190,
          "page_height": 1684,
          "raw_payload": "MDAxMjM0NTY3ODk=",
          "parsed_payload": "001234567 89"
        }
      ],
      "warnings": []
    }
  ]
}
```

### Recusado: manipulação por sobreposição + nome divergente

```json theme={null}
{
  "poa_verifications": [
    {
      "status": "Declined",
      "node_id": "feature_poa_1",
      "issuing_state": "GBR",
      "document_type": "UTILITY_BILL",
      "document_subtype": "ELECTRICITY_BILL",
      "issuer": "BritishEnergy",
      "issue_date": "2026-03-10",
      "expiration_date": null,
      "document_language": "en",
      "name_on_document": "JOHN B SMYTH",
      "poa_address": "44 King's Road, London, SW3 4UD",
      "poa_formatted_address": "44 King's Road, London, SW3 4UD, United Kingdom",
      "poa_parsed_address": {
        "street_1": "44 King's Road",
        "city": "London",
        "postal_code": "SW3 4UD",
        "country": "GB",
        "document_location": { "latitude": 51.4880, "longitude": -0.1690 }
      },
      "document_file": "https://<media-host>/.../poa.pdf?X-Amz-Expires=14400",
      "document_metadata": {
        "file_size": 412910,
        "content_type": "application/pdf",
        "creation_date": "2026-03-10",
        "modified_date": "2026-05-12",
        "creator": "Adobe Acrobat Pro",
        "producer": "Adobe PDF Library",
        "software": "Adobe Acrobat",
        "encryption": null,
        "is_signed": false,
        "is_tampered": false,
        "signature_info": null,
        "exif_original_date": null,
        "exif_digitized_date": null,
        "processed_by_known_editor": false,
        "has_different_creation_mod_date": true,
        "overlay_manipulation": {
          "detected": true,
          "analyzed": true,
          "signals": ["duplicate_font_subset", "glyph_fragmentation"],
          "duplicate_font_subsets": [{ "page": 1, "base_font": "Helvetica" }],
          "fragmented_fonts": [],
          "manipulated_regions": [
            { "page": 1, "x": 102.4, "y": 318.1, "width": 187.0, "height": 18.0, "page_width": 595, "page_height": 842 }
          ]
        }
      },
      "name_match_score_expected_details": 62,
      "name_match_score_id_verification": 60,
      "expected_details_address": null,
      "expected_details_formatted_address": null,
      "expected_details_parsed_address": null,
      "extra_fields": {
        "bank_account_number": null, "bank_iban": null, "bank_sort_code": null,
        "bank_routing_number": null, "bank_swift_bic": null,
        "bank_branch_name": null, "bank_branch_address": null,
        "document_phone_number": null, "additional_names": []
      },
      "extra_files": [],
      "detected_codes": [],
      "warnings": [
        {
          "feature": "PROOF_OF_ADDRESS",
          "risk": "SUSPECTED_DOCUMENT_MANIPULATION",
          "additional_data": {
            "reason": "Overlay-text manipulation detected: same base font embedded with multiple subset prefixes on 1 page(s).",
            "detection_method": "overlay_text_manipulation",
            "signals": ["duplicate_font_subset", "glyph_fragmentation"],
            "duplicate_font_subsets": [{ "page": 1, "base_font": "Helvetica" }],
            "fragmented_fonts": [],
            "manipulated_regions": [
              { "page": 1, "x": 102.4, "y": 318.1, "width": 187.0, "height": 18.0, "page_width": 595, "page_height": 842 }
            ]
          },
          "log_type": "error",
          "short_description": "Suspected document manipulation",
          "long_description": "The system detected signs of potential document manipulation or editing.",
          "node_id": "feature_poa_1"
        },
        {
          "feature": "PROOF_OF_ADDRESS",
          "risk": "NAME_MISMATCH_ID_VERIFICATION",
          "additional_data": {
            "poa_name": "JOHN B SMYTH",
            "kyc_name": "John A. Smith",
            "match_score": 60
          },
          "log_type": "warning",
          "short_description": "Name mismatch with ID verification",
          "long_description": "The full name on the document does not match the name from the user's verified identity documents.",
          "node_id": "feature_poa_1"
        }
      ]
    }
  ]
}
```

## Relacionados

* [Avisos de comprovante de endereço](https://docs.didit.me/pt-br/core-technology/proof-of-address/warnings-proof-of-address.md): todos os códigos de aviso que o POA pode emitir
* [Visão geral do comprovante de endereço](https://docs.didit.me/pt-br/core-technology/proof-of-address/overview.md): tipos de documento aceitos e regras de verificação
* [Modelos de dados: Comprovante de endereço](https://docs.didit.me/pt-br/reference/data-models.md#comprovante-de-endereço): schema canônico
* [Webhooks](https://docs.didit.me/pt-br/integration/webhooks.md): `status.updated` contém os payloads de POA

> [!NOTE]
>
> `document_file` e `extra_files[]` são URLs pré-assinadas que expiram após cerca de 4 horas. Chame novamente o endpoint de decisão para atualizar as URLs. Armazene do seu lado apenas o status da verificação e os campos de endereço extraídos, minimizando os dados de documentos retidos.


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