Skip to content

Address Standardization for KYC & Identity Checks

Know-your-customer checks often require matching a user-submitted address against a proof-of-address document — a utility bill, bank statement, or government record — that was formatted independently.

The address a user types into a signup form rarely matches the exact formatting on their uploaded document. A verification system that requires an exact string match will generate false rejections; one with no matching logic at all invites fraud.

Running both the user-submitted address and the OCR-extracted address from a utility bill or bank statement through GoodVat produces consistent structured components and canonical expansions. Because token expansions resolve abbreviations ("Rd""Road", "Flat" vs "Unit"), the two addresses can be verified automatically via exact canonical string comparison.

POST /v1/address/normalize
curl -X POST "https://api.goodvat.com/v1/address/normalize" \
-H "Authorization: Bearer $GOODVAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "query": "Flat 2, 14 Kensington Park Rd, London W11 2EU" }'
200 OK
{
"houseNumber": "14",
"road": "kensington park rd",
"unit": "flat 2",
"postcode": "w11 2eu",
"city": "london",
"country": "GBR",
"expansions": [
"flat 2 14 kensington park road london w11 2eu uk",
"flat 2 14 kensington park road london w11 2eu united kingdom"
]
}
FieldWhy it matters here
expansionsCanonical expanded strings used for deterministic string-matching between user input and OCR document text.
houseNumber / roadCore fields for confirming the document and submitted address belong to the same building.
unitDistinguishes between residents at multi-unit addresses (vital for KYC compliance).
postcodeHigh-precision disambiguator across national postal databases.
countryConfirms the document matches the expected national jurisdiction.