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

# Proof of Address Overview

> Verify residential addresses with AI-powered extraction from utility bills, bank statements, and government documents. Pay-per-call $0.20.

export const AgentPromptAccordion = ({prompt, title = "AI Agent Integration Prompt"}) => {
  const [copied, setCopied] = React.useState(false);
  const handleCopy = e => {
    e.stopPropagation();
    if (!prompt) return;
    navigator.clipboard.writeText(prompt.trim()).then(() => {
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    });
  };
  const agents = ["Claude Code", "Codex", "Cursor", "Devin", "Windsurf", "GitHub Copilot"];
  return <div className="didit-agent-card">
      {}
      <div className="didit-agent-titlebar">
        <div className="didit-agent-dots" aria-hidden="true">
          <span className="didit-agent-dot didit-agent-dot-red"></span>
          <span className="didit-agent-dot didit-agent-dot-yellow"></span>
          <span className="didit-agent-dot didit-agent-dot-green"></span>
        </div>
        <span className="didit-agent-filename">{title}</span>
        <button type="button" className={`didit-agent-copy ${copied ? "didit-agent-copy-copied" : ""}`} onClick={handleCopy} title="Copy prompt to clipboard" aria-label={copied ? "Copied!" : "Copy prompt to clipboard"}>
          {copied ? <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <path d="M3 8.5l3.5 3.5L13 4" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
              </svg>
              <span>Copied</span>
            </> : <>
              <svg width="13" height="13" viewBox="0 0 16 16" fill="none">
                <rect x="5" y="5" width="9" height="9" rx="1.5" stroke="currentColor" strokeWidth="1.5" />
                <path d="M11 5V3.5A1.5 1.5 0 0 0 9.5 2h-6A1.5 1.5 0 0 0 2 3.5v6A1.5 1.5 0 0 0 3.5 11H5" stroke="currentColor" strokeWidth="1.5" />
              </svg>
              <span>Copy</span>
            </>}
        </button>
      </div>

      {}
      <pre className="didit-agent-body"><code>{prompt.trim()}</code></pre>

      {}
      <div className="didit-agent-footer">
        <span className="didit-agent-footer-label">Paste into</span>
        <div className="didit-agent-chips">
          {agents.map(name => <span key={name} className="didit-agent-chip">{name}</span>)}
        </div>
      </div>
    </div>;
};

export const VideoEmbed = ({src, title = "Video", type = "iframe"}) => <div className={type === "iframe" ? "didit-video-embed" : "didit-video-embed didit-video-native"}>
    {type === "iframe" ? <iframe src={src} title={title} style={{
  width: "100%",
  height: "100%",
  border: 0,
  borderRadius: "12px"
}} allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen /> : <video controls autoPlay muted loop playsInline src={src} title={title} style={{
  width: "100%",
  height: "auto",
  display: "block",
  borderRadius: "12px"
}} />}
  </div>;

Proof of Address (PoA) verification allows you to verify a user's residential address through official documents. This feature simplifies the address verification process, enabling users to capture or upload documents that confirm their address.

<AgentPromptAccordion
  title="Proof of Address Integration Prompt"
  prompt={`# Goal
Integrate Didit Proof of Address (utility bill, bank statement, government letter OCR + cross-checks) into your app. Pick ONE mode.

# Mode A — Session-based
Use this when the user uploads the document in a hosted Didit flow.

1. Add the PROOF_OF_ADDRESS feature to the workflow (Business Console or POST /v3/workflows/). Configure: poa_languages_allowed, poa_document_age_months, and the per-risk actions (poa_issuer_not_identified_action, poa_name_mismatch_action, poa_address_mismatch_action, poa_document_expired_action, poa_language_not_allowed_action).
2. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
3. Open session.url for the user (or mount the Web/Mobile SDK).
4. Fetch the decision — GET /v3/session/{sessionId}/decision/ or subscribe to session.status.updated.

Decision surface: \`poa_verifications[]\` array on the decision payload.

# Mode B — Standalone API (server-to-server)
Use when you already have the document and want a one-shot check decoupled from a hosted flow.

POST https://verification.didit.me/v3/poa/
multipart/form-data — x-api-key: YOUR_API_KEY

Latency: OCR typically takes 5–15s (up to ~30s for multi-page PDFs). Use a client timeout of **at least 45s**. Max upload 15 MB (PDF, JPG, PNG, TIFF, WebP). Encrypted PDFs require \`document_password\` or you get HTTP 400.

curl example:
\`\`\`bash
curl -X POST 'https://verification.didit.me/v3/poa/' \\
-H "x-api-key: $DIDIT_API_KEY" \\
-F "document=@./utility-bill.pdf" \\
-F "expected_address=Av. Monseñor Tavella 3396, Salta" \\
-F "expected_country=ARG" \\
-F "expected_first_name=Sophia" \\
-F "expected_last_name=Martinez" \\
-F "poa_languages_allowed=en,es" \\
-F "vendor_data=user-1234"
\`\`\`
Returns: { request_id, poa: { status, parsed_address, document_type, issuer, issue_date, language, document_metadata: { overlay_manipulation }, warnings: [...] } }.

# Status enum (per poa_verifications[].status / poa.status)
"Not Started" | "In Progress" | "Approved" | "In Review" | "Declined" | "Abandoned" | "Kyc Expired"

# Warnings (LogWarningChoices.PROOF_OF_ADDRESS)
warnings[] risk codes include:
ISSUER_NOT_IDENTIFIED, LANGUAGE_NOT_ALLOWED, DOCUMENT_EXPIRED, DOCUMENT_TOO_OLD, NAME_MISMATCH, ADDRESS_MISMATCH, COUNTRY_MISMATCH, OVERLAY_MANIPULATION_DETECTED, UNREADABLE_DOCUMENT.
Full catalogue: /core-technology/proof-of-address/warnings-proof-of-address.

# Failure modes to handle
- HTTP 400 "The PDF is encrypted..." — supply \`document_password\`.
- HTTP 403 — out of credits.
- Client timeout — bump to 45s+ before retrying.
- status="Declined" with NAME_MISMATCH / ADDRESS_MISMATCH — the extracted fields don't match expected_*; do not approve.
- OVERLAY_MANIPULATION_DETECTED — PDF forensics caught edits; reject.

# See also
- Canonical schema: /reference/data-models#proof-of-address
- Per-feature report: /core-technology/proof-of-address/report-proof-of-address
- Risk catalogue: /core-technology/proof-of-address/warnings-proof-of-address
- Full integration playbook: /integration/integration-prompt`}
/>

<VideoEmbed src="https://www.youtube.com/embed/h0i9Q0-izcw?start=2584&rel=0&playsinline=1" title="Proof of Address (Utility Bills & Bank Statements)" />

## How it works

Didit's Proof of Address Verification delivers a robust solution for verifying a user's residential address through official documentation. Our solution combines advanced AI, computer vision, and comprehensive security checks to provide fast, reliable address verification at scale.

<Steps>
  <Step title="Intelligent Document Capture" icon="camera">
    Users can verify their address through:

    | Method                 | Description                                                                                                |
    | ---------------------- | ---------------------------------------------------------------------------------------------------------- |
    | **Auto Capture**       | Our AI automatically detects optimal document positioning and captures automatically at the perfect moment |
    | **Upload Option**      | Users can upload existing documents in various formats (PDF, JPG, PNG)                                     |
    | **Multi-Page Support** | Seamlessly handles multi-page documents like bank statements                                               |
  </Step>

  <Step title="Advanced Data Extraction & Verification" icon="file-lines">
    Powerful processing capabilities:

    * High-precision OCR for extracting address information
    * Intelligent document classification to identify document types
    * Name matching with identity documents for cross-verification
    * Issue date extraction and validation against configured requirements
    * Format and pattern matching for all address fields
  </Step>

  <Step title="Comprehensive Validation" icon="shield-check">
    Our AI-powered system performs extensive checks:

    | Check                       | Description                                               |
    | --------------------------- | --------------------------------------------------------- |
    | **Document Authenticity**   | Verification of document legitimacy                       |
    | **Tamper Detection**        | Image integrity analysis to detect manipulation           |
    | **Address Standardization** | Formatting and normalizing address fields                 |
    | **Geocoding**               | Providing location coordinates from the extracted address |
    | **Language Detection**      | Identifying and validating document language              |
  </Step>

  <Step title="Seamless Results Delivery" icon="file-export">
    Access verification results through multiple channels:

    * Real-time dashboard updates
    * Instant webhook notifications
    * RESTful API integration
    * Comprehensive reports with detailed verification session information
  </Step>
</Steps>

## Document Requirements

To ensure successful address verification, documents should meet these criteria:

#### Accepted Document Types

The following table lists the accepted document types and their respective subtypes. All documents must be issued within the last 3 months unless otherwise specified.

| Document Type                  | Subtypes                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Utility Bill**               | Electricity Bill, Water Bill, Gas Bill, Internet Bill, Phone Bill, Cable TV Bill, Satellite TV Bill, Trash Collection Bill, Sewage Bill, Heating Bill, Combined Utilities Bill, Municipal Services Bill                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **Bank Statement**             | Account Statement, Credit Card Statement, Bank Letter Confirming Address, Mortgage Statement, Loan Statement, Savings Account Statement, Checking Account Statement, Investment Account Statement, Business Account Statement, Credit Union Statement, Debit Card Statement, Line of Credit Statement                                                                                                                                                                                                                                                                                                                                                                                 |
| **Government-Issued Document** | Tax Assessment, Voter Registration Card, ID document, Residency Certificate, Government Letter/Notification, Census Letter, Individual Registration Certificate, Property Tax Bill, Vehicle Registration, Social Security Statement, Unemployment Benefits Letter, Disability Benefits Letter, Pension Statement, Court Summons, Jury Duty Notice, Municipal Permit, Immigration Document                                                                                                                                                                                                                                                                                             |
| **Other Proof of Address**     | Lease Agreement, Rental Agreement, Employer Letter Confirming Address, Insurance Policy Document, School Enrollment Letter, Notarized Affidavit of Address, Solicitor Letter Confirming Address, Student Loan Statement, Court Document Confirming Address, Homeowners Insurance Policy, Renters Insurance Policy, Auto Insurance Policy, Health Insurance Statement, Medical Bill, Hospital Bill, Subscription Service Bill, Gym Membership Statement, Property Management Letter, Homeowners Association Statement, University Transcript, College Enrollment Verification, Payroll Stub, Employment Verification Letter, Retirement Account Statement, Brokerage Account Statement |

<Frame>
  <img src="https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/proof-of-address-id-table.png?fit=max&auto=format&n=z6T2GHM4Zh-iSj-K&q=85&s=b065b2bb6f64408442b49d89ab16cb46" alt="Didit proof of address accepted document types — utility bills, bank and government statements" width="1504" height="816" data-path="images/proof-of-address-id-table.png" />
</Frame>

#### General Requirements

* Valid document within 90 days of issue date
* Physically intact (free from damage, scratches, or stains)
* Complete address information clearly visible
* Document issuer name and logo visible
* Name on document should match the user's verified identity
* Different from ID document (cannot be the same document used for ID verification)

#### Image Requirements

* Original document captured in real-time or high-quality scan
* Supported formats: JPG, JPEG, PNG, TIFF, PDF
* Maximum file size: 15MB
* Full-color image with all corners visible
* No digital editing or manipulation
* All pages included for multi-page documents
