Verifying an address (proof of address)

Proof of address reads a utility bill, bank statement or similar document, extracts the address, and compares it against what you expected - including which documents are accepted and how recent they must be.

Short answer

Proof of address takes a utility bill, bank statement, or government letter, reads the address off it, and compares that to the address you expected. Documents generally have to be issued within the last 3 months. $0.20 per completed check, not in the free tier.

#Why it's a separate check

An identity document tells you who someone is. It increasingly does not tell you where they live: several countries now issue ID cards and passports with no residential address printed on them at all. If your obligation includes verifying an address, you need proof of address as its own step.

#What the user does

They can either photograph the document with auto-capture, or upload a file they already have - PDF, JPG, or PNG. Multi-page documents like bank statements are supported, so they don't have to crop down to one page.

#What Didit checks

CheckWhat it does
ExtractionReads the address fields, the issue date, and the name
ClassificationIdentifies what kind of document it is
Name matchingCross-checks the name against the identity document from the same session
RecencyValidates the issue date against the required window
AuthenticityLooks for signs the document has been altered
StandardisationNormalises the address, and geocodes it to coordinates

The result is an extracted address plus a verdict on how well it matched what you provided.

#Accepted document types

The accepted categories are utility bills, bank statements, government-issued letters, and an "other" bucket for the cases your policy allows. Documents generally must be issued within the last 3 months unless you configure otherwise.

Note

Whether a driving licence works as proof of address depends entirely on whether that country prints an address on it. In markets where it does, it is a strong document because it's also an identity document. In markets where it does not, it will extract a name and no address, and land as a mismatch. Check the specific country before you tell users it's acceptable.

Which document types you accept, and how recent they must be, are workflow settings - so tighten or loosen them to match your own policy rather than treating the defaults as fixed.

#Address mismatch and partial match

This is where most proof-of-address review volume comes from, and usually not because of fraud:

  • Full mismatch (ADDRESS_MISMATCH_WITH_PROVIDED) - the extracted address and the one you supplied are different addresses.
  • Partial match - they're plausibly the same address written differently. "Flat 4, 12 High St" against "12 High Street, Apt 4" is a partial match, not a fraud signal.

Address formats vary enormously between countries, and abbreviation conventions vary within them. Decide deliberately whether a partial match should pass, review, or decline in your workflow - defaulting everything to review will fill your queue with genuine users. See decision rules and thresholds.

#Requiring more than one document

If your policy needs two separate proofs of address, that's a workflow-configuration question rather than something the single check does by itself. Talk to support about the shape you need before building around it, so you don't design a flow that can't be expressed.

#When the step doesn't appear in the flow

If you enabled proof of address and users aren't being asked for it, check in this order:

  1. The step is enabled on the workflow the session actually used - not a different workflow in the same application.
  2. The workflow was saved and published after the change.
  3. An earlier step didn't decline first and stop the flow before reaching it.
  4. The session was created after the workflow change - existing sessions keep the configuration they were created with.

#Telling the user what went wrong, when

By default the person sees the outcome of the whole verification at the end rather than a step-by-step verdict, so a declined address check does not immediately tell them "your address failed". If you need them to fix it, a resubmission request naming that specific step is the way to do it. See letting someone try a verification again.

#Getting the address into your own system

The extracted, standardised address comes back in the session decision, so it arrives on the webhook alongside everything else - you don't need to read it out of the console by hand. See getting results with webhooks.

#What it costs

$0.20 per completed check. Proof of address is not part of the free tier, so a workflow that includes it needs a credit balance even if your volume is small. See what the free plan includes.