S1.08Featured work← All work
Confidential

Address Verification SDK

A reusable Flutter module for Tier 3 address verification. A customer enters their address, the app confirms they are physically there, checks a photo of the building with AI, and issues a PDF certificate. Host apps use it through a small public API.

Context
Engineered · Payvantage for Ethica Microfinance Bank
Ownership
Engineered
Platforms
SDK · Mobile
Stack
Flutter, Dart, BLoC (Cubit), Google Places and Geocoding

Confidential production system. No screenshots, code, architecture or data from it are published here, and descriptions stay at the product level.

Responsibilities

What I did

  • Designed it as a package with a single public entry point: a drop-in flow widget, a setup function, a configuration object and typed results. Host apps never reach into its internals.
  • Modelled the flow as an explicit state machine of thirteen states, from address entry and map pin drop through photo capture and validation to submission, plus out-of-range, location-denied, reminder and error states.
  • Returned a sealed result type: submitted (possibly pending manual review), out of range with the measured distance, or location unavailable. Each host has to handle every case.
  • Address entry with place autocomplete and geocoding, with a map pin drop when the address cannot be placed precisely.
  • Compares the device's location with the address against a configurable radius.
  • AI validation of the building photo, a generated PDF certificate, and a reminder notification when the customer cannot verify straight away.
Outcomes

What came of it

  • Powers the KYC tier 2 to 3 upgrade in the Ethica mobile app.
  • Reduced third-party KYC verification costs while improving verification accuracy.