Product Case Study

AI-Powered Document Verification for Merchant Onboarding

I led the design and rollout of an AI-driven document-verification workflow for partner KYC. It cut manual verification effort by 60% and tightened fraud and RBI compliance controls.

Problem Statement

Shop-photo verification during retailer onboarding was only manually reviewed 33% of the time. The rest auto-approved. That auto-approve path was gameable: a retailer could keep retrying until a submission slipped through, undermining the KYC and fraud controls the photo step existed for.

The Verification Model

We moved shop-photo review from a mostly manual spot-check to an automated decision engine built on an internal ML tool, trained on two years of the company's own manual shop-photo verification calls. It scores every submission against a fixed rule set before a human ever sees it.

CheckFieldRequiredRuleRejects with
Liveness (outside)liveness.image1YesMust be a live, real-time capture“Please click the outside shop photo again in real time.”
Liveness (inside)liveness.image2YesMust be a live, real-time capture“Please click the inside shop photo again in real time.”
Is a shopisShopYesImage must depict a shop“The uploaded photo does not appear to be of a shop.”
Shop front visibleshopFrontPresentYesFront must be clearly shown“Shop front is not clearly visible.”
Shop inside visibleshopInsidePresentYesInside must be clearly shown“Shop inside area is not clearly visible.”
Inside image validshopInsideValidYesPasses the internal ML tool's validity check“Inside shop photo is not valid.”
Shop openshopOpenYesShop must be operational at capture time“Shop appears to be closed.”
Shop typeshopTypeYesMust be a permanent structure“This shop setup is not eligible for onboarding.”
Inside/outside matchinterImageNobMatchYesBoth photos must belong to the same shop“Inside and outside shop photos do not appear to belong to the same shop.”
Inventory presentinventory.inventoryPresentYesStock must be visible to validate an active business“Shop inventory is not clearly visible.”
Business categorycategories[*].mccYesDetected category must match an Aadhaar Pay–allowed MCC“This business category is currently not eligible for onboarding.”
Shopkeeper face visibleshopkeeper.*.shopkeeperPresentYesApplicant's face visible in at least one photo“Shopkeeper/applicant face is not clearly visible.”
Face matchfindFace.faceFound / matchScoreYesDetected face must match ID photo above a confidence threshold“Face verification could not be completed or face match score is low.”
Matched face cropfindFace.matchingFaceCropYesA usable face crop must be generated“Matched face crop is not available.”
Age checkidAgeRange.low/highUsed for CAFConfirms applicant is an eligible adult; ambiguous cases route for review“The applicant may be below eligible age.”
Name matchnameMatch.matchNoCaptured shop name should match the entered name“Shop name could not be matched with the entered shop name.”
Name match scorenameMatch.matchScoreNoMust clear a configurable confidence threshold“Shop name match is low.”
Face review flagfindFace.toBeReviewedNoFace check should not be auto-flagged for manual review“Face validation requires review.”
Matched imagefindFace.foundInNoIdentifies whether the face was found in the front or inside photo“Face could not be mapped to shop front or inside photo.”
Banner presentbanner.bannerPresentNoSupporting signal, not a hard gate“Shop board/banner is not clearly visible.”
Banner typebanner.bannerTypeNoPermanent signage preferred“Temporary banner/signage detected.”
Contact numbershopContactNumbers.validNoSupporting field if captured“Shop contact number could not be validated.”
GSTshopGstNumber.validNoOptional, not required for small shops“GST details could not be validated.”

Rollout

The rollout was phased by circle, not switched on nationally. It went live in 3 circles in September, then expanded pan-India by December. That gave room to tune thresholds, especially the name-match score, against real rejection patterns before scaling further.

Outcome

Manual verification effort dropped 60%, and the retry-until-approved loophole in the old spot-check process closed for good. Rejected photos still route to a human reviewer. The model isn't a black-box gate, it's a triage layer that clears the obvious cases and escalates the rest. Fraud controls and RBI KYC compliance both got stronger as a result.