Skip to main content

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

  1. Collects an allowed address document
  2. Validates document type against your configuration
  3. Checks name consistency with the verified identity where applicable
  4. Enforces recency (documents that are too old fail with DATE_TOO_OLD)
  5. 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_ALLOWEDUser must upload a different type
NAME_MISMATCHName does not match identity
DATE_TOO_OLDDocument outside allowed age
UNRECOGNIZED_ADDRESSAddress could not be parsed confidently

Full list: Statuses and codes: PoA.

Configure it

Proof of address guide · Create a flow