| # | Check / Logic | Old Code (SP/Method) | New Backend | Status |
| 1 | RPD via Hyperverge SDK | RPD integration in old SP | Hyperverge RPD provider implemented | PRESENT |
| 2 | PD via Hyperverge SDK | PD integration in old SP | Hyperverge PD provider implemented | PRESENT |
| 3 | PD via Perfios fallback | Perfios fallback SP | Perfios fallback provider wired | PRESENT |
| 4 | IFSC lookup with 7-day cache | IFSC lookup SP with cache | IFSC lookup with 7-day cache via bank_ifsc_master | PRESENT |
| 5 | Bank account dedup (post-eSign block) | Dedup SP check post-eSign | Bank account dedup with post-eSign block logic | PRESENT |
| 6 | Bank name match (0–100 Levenshtein) | Name matching SP | NameMatchService.CalculateScore with Levenshtein | PRESENT |
| 7 | STP: 70–100=STP, 1–69=NON_STP | STP flag SP logic | STP scoring with 70 threshold | PRESENT |
| 8 | Score 0 attempt 3 = DROP_BANK_NAME_FAIL | Drop logic in SP | Score 0 on 3rd attempt triggers DROP_BANK_NAME_FAIL | PRESENT |
| 9 | Max 3 different accounts | Account attempt limit SP | Max 3 distinct bank accounts enforced | PRESENT |
| 10 | Annual income range | Income range validation SP | Annual income range validation present | PRESENT |
| 11 | Downstream events (4 targets) | Event firing SP | 4 downstream targets (CleverTap, Zoho, CDP, Datalake) fired | PRESENT |
| 12 | CS Journey when all APIs down | CS fallback SP | CS Journey fallback when all bank APIs fail | PRESENT |
| 13 | Penny drop rate limiting (max 10/account) | USP_ALLOW_PENNYDROP_SJET limits to 10 attempts per account | FIXED: Rate limit of 10 per account added in VerifyBankAccountAsync. Returns BE_BANK_RATE_LIMIT. | PRESENT |
| 14 | Bank proof OCR (cheque/passbook) | OCR SP for bank proof | Not Day Zero scope | N/A |
| 15 | RPD refund tracking | Refund monitoring SP | FIXED: RpdRefundStatus + RpdRefundAt fields added to BankVerificationAttempt. Set to PENDING on RPD. | PRESENT |
| 16 | MICR validation | MICR validation SP | MICR validation implemented | PRESENT |
| 17 | Vendor selection config | Configurable vendor selection in old code | FIXED: ResolveProviderFromConfigAsync queries provider_configurations table by category=BANK_VERIFY, ordered by priority. | PRESENT |
| 18 | Bank data cleanup on mismatch | Old SP deleted bank data on retry | FIXED: CleanupPreviousBankDataAsync resets STP flags on previous accounts when customer retries. | PRESENT |
| # | Check / Logic | Old Code (SP/Method) | New Backend | Status |
| 19 | Location within India check | Location validation SP | Geolocation bounding box check for India | PRESENT |
| 20 | DROP_LOCATION_OUTSIDE_INDIA | Drop logic SP | DROP_LOCATION_OUTSIDE_INDIA drop implemented | PRESENT |
| 21 | Liveness SDK (Hyperverge + AiNXT fallback) | Liveness SP with vendor fallback | Hyperverge liveness with AiNXT fallback | PRESENT |
| 22 | Max 3 liveness → CS Journey | Attempt limit SP | Max 3 liveness attempts, then CS Journey | PRESENT |
| 23 | Face match selfie vs Aadhaar | Face match SP | Face match selfie against Aadhaar photo | PRESENT |
| 24 | STP face: 70–100=STP, 1–69=NON_STP | STP flag SP logic | Face match STP scoring with 70 threshold | PRESENT |
| 25 | Score 0 attempt 1 retry, attempt 2 DROP | Drop logic SP | Score 0: retry on attempt 1, DROP on attempt 2 | PRESENT |
| 26 | Aadhaar photo deleted after match | Photo deletion SP | Aadhaar photo deleted after face match | PRESENT |
| 27 | Selfie stored for AOF | Selfie storage SP | Selfie stored in document path for AOF | PRESENT |
| 28 | No Aadhaar photo = NON_STP | Missing photo SP logic | Missing Aadhaar photo sets NON_STP | PRESENT |
| 29 | Downstream events | Event firing SP | 4 downstream targets fired | PRESENT |
| 30 | Geolocation fallback (coordinate cities) | Coordinate-to-city SP | Coordinate-based city resolution fallback | PRESENT |
| 31 | Assisted journey handoff link | WhatsApp link for RM in BRD | BRD describes WhatsApp link for RM. Not implemented. | PARTIAL |
| 32 | Location exception whitelist (PAN) | TBL_LIVE_PHOTO_LOCATION_EXCEPTION | FIXED: LocationExceptionWhitelist entity + table + query in LivenessService before location drop. | PRESENT |
| 33 | City whitelist validation | TBL_LIVEPHOTO_LOCATION_DETAILS_CITYLIST | FIXED: City validated against city_master table in ResolveGeolocationAsync. | PRESENT |
| Old Table | Replaced By (New Entity) |
TBL_CLIENT_BANKDETAILS | bank_accounts |
TBL_YESBANK_REQUEST_RESPONSE_LOG | bank_verification_attempts + api_audit_logs |
TBL_KARZA_BANKAC_VALIDATE_RESPONSE | bank_verification_attempts |
TBL_NAMEMATCHING_STP_FLAG | leads.StpDecision |
TBL_CLIENT_LIVEPHOTO_RESPONSE_DETAILS | liveness_verifications |
TBL_CLIENT_AINXT_LIVEPHOTO_RESPONSE_DETAILS | liveness_verifications |
TBL_LIVEPHOTO_LOCATION_DETAILS_LOG | liveness_verifications |
TBL_CLIENT_PROOFUPLOAD | document_path_info |
TBL_IPV_DETAILS | liveness_verifications |
TBL_LIVE_PHOTO_LOCATION_EXCEPTION | NEW TABLE NEEDED |
TBL_LIVEPHOTO_LOCATION_DETAILS_CITYLIST | city_master |