Supported Documents
| Document Type | Code | Notes |
|---|---|---|
| Utility bill | utility_bill | Electric, gas, water, internet, phone |
| Bank statement | bank_statement | Checking, savings, credit card statements |
| Tax document | tax_document | Tax returns, tax assessments |
| Government letter | government_letter | Official correspondence from government agencies |
| Insurance document | insurance_document | Home, health, or auto insurance statements |
| Rental agreement | rental_agreement | Lease or tenancy agreements |
How It Works
Upload PoA document
The user uploads a proof-of-address document through the hosted flow or via
POST /v1/sessions/{id}/address-proof.OCR extraction
AI extracts the full name, address components, document date, and issuer from the document.
Name cross-reference
The extracted name is compared against the name on the identity document to verify they belong to the same person.
Extracted Fields
| Field | Type | Description |
|---|---|---|
full_name | string | Full name as it appears on the document |
address_line_1 | string | Primary street address |
address_line_2 | string | Apartment, suite, unit (if present) |
city | string | City or town |
state | string | State, province, or region |
postal_code | string | ZIP or postal code |
country | string | ISO 3166-1 alpha-2 country code |
document_date | string | Date on the document (ISO 8601) |
document_type | string | Detected document type |
issuer | string | Document issuer (e.g., utility company name) |
Configuration
Set address verification requirements when creating a session:| Field | Type | Default | Description |
|---|---|---|---|
max_age_days | integer | 90 | Maximum document age in days |
name_match_threshold | number | 0.8 | Minimum name similarity score (0-1) |
accepted_types | array | all | Restrict accepted document types |
API Response
Address extraction data is included in the session detail response:Response Fields
| Field | Type | Description |
|---|---|---|
status | string | verified, failed, or pending |
document_type | string | Detected PoA document type |
issuer | string | Document issuer name |
document_date | string | Date on the document |
recency_check.passed | boolean | Whether the document meets the age requirement |
recency_check.document_age_days | integer | Document age in days |
name_match.passed | boolean | Whether the name matches the identity document |
name_match.similarity_score | number | Name similarity score (0-1) |
extracted_address | object | Structured address fields |

