Proof of address
Proof of address (PoA) verifies that a user can present acceptable evidence of residency (utility bills, bank statements, and similar documents), with checks on type, recency, name match, and address extraction.
What it does
- Collects an allowed address document
- Validates document type against your configuration
- Checks name consistency with the verified identity where applicable
- Enforces recency (documents that are too old fail with
DATE_TOO_OLD) - Returns a step result with optional structured
reason
Where it sits in a flow
Usually after core identity (document ± liveness), when regulation or risk policy requires residency evidence. It can also run in flows that already know the user from reusable credentials.
Outcomes you should handle
| Reason (examples) | Meaning |
|---|---|
DOCUMENT_TYPE_NOT_ALLOWED | User must upload a different type |
NAME_MISMATCH | Name does not match identity |
DATE_TOO_OLD | Document outside allowed age |
UNRECOGNIZED_ADDRESS | Address could not be parsed confidently |
Full list: Statuses and codes: PoA.
Configure it
→ Proof of address guide · Create a flow
Related
- Geolocation step, location-based signals when configured
- Webhook payload: PoA