> ## 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.

# Adressnachweis-Bericht: Extrahierte Felder

> Der Adressnachweis-Bericht von Didit liefert extrahierte Adressen, Dokumenttypen, Aussteller, Datumsangaben, Namensabgleich und Warnungen.

## Übersicht

Die Adressnachweis-Verifizierung (POA) akzeptiert ein einzelnes PDF oder Bild (TIFF, JPG, JPEG, PNG, WEBP, optional ZIP-komprimiert) bis zu 15 MB, führt eine Dokumenttyp-Klassifizierung, LLM-basierte Extraktion sowie PDF/EXIF-Forensik durch und gibt Folgendes zurück:

* Die **extrahierte Adresse** – sowohl als Rohdaten als auch strukturiert (`street_1`, `city`, `region`, `postal_code`, lat/lng).
* **Dokumenten-Metadaten** – Dateigröße, Inhaltstyp, Erstellungs- und Änderungsdaten, EXIF-Daten (Datum/Uhrzeit), Signaturinformationen und etwaige Beweise für Overlay-Manipulationen aus der PDF-Forensik.
* **Übereinstimmungswerte für Namen** im Abgleich mit dem verifizierten Ausweisdokument und mit den bei der Sitzungserstellung angegebenen erwarteten Angaben.
* **Bankbezogene Zusatzfelder** (Kontonummer, IBAN, Sort Code, Routing Number, SWIFT/BIC, Filiale), wenn es sich bei dem Dokument um einen Kontoauszug handelt.

![Screenshot des Didit-Adressnachweis-Berichts mit extrahierten Adressfeldern und Dokumenttyp](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]
>
> Die POA-Extraktion liest unstrukturierten Text aus, was zu einer Latenz von **5–15 Sekunden** pro Dokument führt. Webhooks werden erst ausgelöst, wenn der gesamte Workflow-Schritt abgeschlossen ist – rufen Sie den Entscheidungs-Endpoint während dieses Fensters nicht häufiger als alle 5 s ab.

## Wo es in API-Antworten erscheint

Der Entscheidungs-Endpoint gibt POA als Plural-Array **`poa_verifications[]`** in `GET /v3/session/{sessionId}/decision/` zurück. Jeder Eintrag entspricht einer Ausführung des POA-Knotens in Ihrem Workflow; Sitzungen mit mehreren POA-Schritten (z. B. Kontoauszug + Verbrauchsabrechnung) erzeugen einen Eintrag pro Ausführung mit eigener `node_id`.

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

Die folgende Struktur spiegelt das kanonische Schema wider – siehe [Datenmodelle](https://docs.didit.me/de/reference/data-models.md#adressnachweis).

## Schema

Siehe [Adressnachweis in der Datenmodell-Referenz](https://docs.didit.me/de/reference/data-models.md#adressnachweis) für das kanonische Schema.

```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
}
```

Jeder Eintrag in `warnings[]` ist ein [Warnungsobjekt](https://docs.didit.me/de/reference/data-models.md#warnungsobjekt): `{ feature, risk, additional_data, log_type, short_description, long_description, node_id }`, wobei `feature` für diesen Bericht immer `"PROOF_OF_ADDRESS"` ist.

## Statuswerte

`status` verwendet das Status-Enum auf Feature-Ebene (`FeatureStatusChoices`).

| Wert | Bedeutung |
| - | - |
| `Not Finished` | Der POA-Knoten wurde für diese Sitzung noch nicht abgeschlossen (Standardstatus). |
| `Approved` | Das Dokument wurde fehlerfrei verarbeitet, und keine Warnung führte zu einer Ablehnung oder einer Überprüfung. |
| `In Review` | Mindestens eine konfigurierbare Warnung ist für Ihren Workflow auf **Überprüfung** gesetzt (und nichts wurde abgelehnt). |
| `Declined` | Eine Warnung mit harter Ablehnung wurde ausgelöst (`MISSING_ADDRESS_INFORMATION`, `POA_DOCUMENT_EXPIRED`, `INVALID_DOCUMENT_TYPE`, `UNABLE_TO_VALIDATE_DOCUMENT_AGE`) oder eine konfigurierbare Warnung ist für Ihren Workflow auf **Ablehnen** gesetzt. |

Benutzerdefinierte Statusregeln, die auf dem Workflow-Knoten konfiguriert sind, können den berechneten Status weiter anpassen; Regeln werden mit der Rangfolge Declined > In Review > Approved kombiniert. Siehe [Adressnachweis-Warnungen](https://docs.didit.me/de/core-technology/proof-of-address/warnings-proof-of-address.md) für das vollständige Mapping von Risiken zu Aktionen, einschließlich des reinen Workflow-Wiederholungsverhaltens von `FUTURE_ISSUE_DATE`.

## PDF-Nachweise zur Overlay-Manipulation

Wenn das eingereichte Dokument eine PDF-Datei ist, kann `document_metadata.overlay_manipulation` forensische Nachweise für vermutete Text-Overlays enthalten:

* `detected`: `true`, wenn die Prüfung Nachweise für eine Manipulation gefunden hat.
* `analyzed`: `true`, wenn die PDF-Datei überhaupt analysiert werden konnte.
* `analysis_incomplete`: Das Feld ist vorhanden und nur dann `true`, wenn die Datei nicht vollständig geprüft werden konnte. Die Ergebnisse der tatsächlich durchgeführten Prüfungen bleiben, soweit möglich, erhalten, und das Dokument löst `POA_DOCUMENT_UNPROVEN_TEXT_REPLACEMENT` aus.
* `signals`: die Prüfungen, die ausgelöst wurden (`duplicate_font_subset`, `glyph_fragmentation`).
* `manipulated_regions`: Rechtecke in Seitenkoordinaten um den vermutlich bearbeiteten Text. Jedes Rechteck verwendet das Seitenkoordinatensystem der PDF-Datei (`x`, `y`, `width`, `height`, `page_width`, `page_height`), damit Prüfer den betroffenen Bereich in einer PDF-Vorschau hervorheben können.

Das Feld ist `null`, wenn das Dokument keine PDF-Datei ist oder die PDF-Datei nicht analysiert werden konnte. Wenn `detected=true` gesetzt ist, gibt das System außerdem eine Warnung `SUSPECTED_DOCUMENT_MANIPULATION` aus, deren `additional_data` die oben genannten Signale und Rechtecke widerspiegelt. Ausgenommen ist der Fall, dass ein stärkeres Signal Vorrang hat, etwa eine Änderung nach der digitalen Signatur oder `is_tampered=true`. In diesem Fall beschreibt `additional_data` stattdessen die Manipulation der Signatur.

## QR-Codes und Barcodes

Jeder POA-Bericht enthält `detected_codes`, die jede verarbeitete Seite abdecken. Jeder Eintrag enthält:

| Feld | Beschreibung |
| - | - |
| `type` | Erkannte Symbologie, wie `QR_CODE`, `CODE_128`, `EAN_13`, `DATA_MATRIX` oder `PDF_417` |
| `page_number` | 1-basierte Seitennummer |
| `position` | Erkanntes Polygon in Pixeln der gerenderten Seite oder `null`, wenn keine verlässliche Position verfügbar ist |
| `x`, `y`, `width`, `height` | Begrenzungsrahmen in Pixeln der gerenderten Seite oder `null`, wenn keine verlässliche Position verfügbar ist |
| `page_width`, `page_height` | Dimensionen der gerenderten Seite, die von den Koordinaten verwendet werden |
| `parsed_payload` | Dekodierter String oder strukturierter Wert oder `null`, wenn der Code nur lokalisiert werden kann |
| `raw_payload` | Rohe Decoder-Payload als Base64-String, sofern verfügbar; andernfalls ein leerer String |

`detected_codes` ist ein leeres Array, wenn kein unterstützter Code gefunden wird. Didit errät niemals eine Payload: Beschädigte oder unleserliche Codes können mit ihrer Position und `parsed_payload: null` zurückgegeben werden, während Fehler bei der Code-Erkennung nicht zum Fehlschlagen der POA-Verifizierung führen.

## Beispiele

### Genehmigt – Kontoauszug

```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": []
    }
  ]
}
```

### Abgelehnt – Overlay-Manipulation + Namensdiskrepanz

```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"
        }
      ]
    }
  ]
}
```

## Verwandte Themen

* [Adressnachweis-Warnungen](https://docs.didit.me/de/core-technology/proof-of-address/warnings-proof-of-address.md) – alle Warnungscodes, die POA ausgeben kann
* [Übersicht über den Adressnachweis](https://docs.didit.me/de/core-technology/proof-of-address/overview.md) – akzeptierte Dokumenttypen und Verifizierungsregeln
* [Datenmodelle – Adressnachweis](https://docs.didit.me/de/reference/data-models.md#adressnachweis) – kanonisches Schema
* [Webhooks](https://docs.didit.me/de/integration/webhooks.md) – `status.updated` überträgt POA-Payloads

> [!NOTE]
>
> `document_file` und `extra_files[]` sind vorab signierte URLs, die nach etwa 4 Stunden ablaufen. Rufen Sie den Entscheidungs-Endpoint erneut auf, um URLs zu aktualisieren. Speichern Sie auf Ihrer Seite nur den Verifizierungsstatus und die geparsten Adressfelder – minimieren Sie die gespeicherten Dokumentdaten.


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