System 01
Payments Platform
UPI · Device Binding · Checkout · Mandates
End-to-end ownership of UPI, debit card, and gold savings payment flows across a consumer fintech app for millions of users on Android and iOS.
Components
- UPI Registration
- VPA setup and UPI onboarding flows delivered across Android and iOS.
- Device Binding
- SIM confidence validation and kill switches to eliminate false-positive mobile mismatches during binding.
- Checkout
- Debit card and gold savings checkout flows delivered across Android and iOS.
- Mandates
- Recurring payment mandate flows within the UPI payments surface.
Problem
The app's payments surface — UPI, debit card, and gold savings — has to work reliably for millions of users across a long tail of Android OEM devices and iOS, where device binding and SMS OTP delivery are the most failure-prone step in the funnel.
Constraints
- Millions of active users across fragmented Android OEM devices (Samsung, Xiaomi, OnePlus) with inconsistent SMS handling.
- Payment flows sit on top of UPI/NPCI and bank-partner requirements, leaving little room for silent failures.
- Device binding sits ahead of every payment flow, so failures there block the funnel entirely.
Architecture
Architected a concurrent, 4-strategy SMS OTP pipeline for Android — ContentObserver, ForegroundService, SmsRetriever API, and a polling fallback — with OEM-specific URI resolution for Samsung, Xiaomi, and OnePlus, so a single OEM quirk cannot stall the whole funnel.
Added SIM confidence validation with kill switches on top of the pipeline to eliminate false-positive mobile mismatches during device binding, rather than hard-failing the flow on ambiguous signals.
Added configurable remote timeouts, atomic settlement, and a dedicated diagnostics hook for the OTP pipeline so OTP failures can be root-caused from production data instead of anecdote.
Decisions
Concurrent multi-strategy OTP capture
Rather than relying on a single Android SMS API, the pipeline runs ContentObserver, ForegroundService, SmsRetriever API, and a polling fallback concurrently, with OEM-specific URI resolution for Samsung, Xiaomi, and OnePlus.
SIM confidence over hard failures
Device binding failures were often false-positive mobile mismatches, not real ones. Added SIM confidence validation with kill switches instead of hard-failing the flow, cutting false rejections without weakening the binding check.
Diagnostics before guessing
Added configurable remote timeouts, atomic settlement, and a dedicated diagnostics hook for the OTP pipeline so OTP failures could be root-caused from production data instead of anecdote.
Impact
- Eliminated blank OTP screen issues on device binding and phone update flows.
- Removed false-positive mobile mismatches on device binding via SIM confidence validation and kill switches.
- Owns end-to-end delivery for UPI, debit card, and gold savings flows for millions of users on Android and iOS.