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.