Skip to main content
Fintech Mobile Wallet

Engineering Ozqr's Cross-Platform Mobile Wallet with AWS KYC & Revolut Payments

Ozqr mobile wallet app showing send money, top-up, and utility bill payment screens
Ozqr LeadershipMobile Wallet Platform
“Parallel Loop shipped our Flutter wallet on iOS and Android with a KYC flow our users actually complete, face scan, document verify, bank top-up, and instant send. The Revolut and AWS integrations are production-grade.”
iOS + AndroidSingle Flutter Codebase
Face ScanAWS KYC Onboarding
4 EngineersDedicated Delivery Pod

Ozqr is a mobile wallet app where users receive and send money, make mobile top-ups, and pay utility bills, all from one app. Users sign up with a quick face scan plus passport, CNIC, or driving license verification. They top up the wallet from a linked bank account; funds land directly in the wallet and can be sent or redeemed anytime from the mobile app.

The Product Challenge

Parallel Loop partnered with Ozqr to build a consumer fintech wallet ready for both app stores. The product needed a polished cross-platform mobile experience, compliant identity onboarding, reliable payment rails for bank-to-wallet top-ups, and core money movement features, P2P send/receive, telecom top-ups, and utility bill pay, without forcing users through slow, manual KYC or fragmented payment flows. Ozqr also required a secure backend to orchestrate Revolut payment APIs, AWS identity services, and wallet ledger logic at scale.

Manual & Fragmented Fintech UXLegacy Approach
  • No Unified iOS & Android Wallet App
  • Slow Document-Only KYC Onboarding
  • Disconnected Top-Up & Bill Pay Flows
  • No Bank-to-Wallet Instant Funding
  • Third-Party KYC Vendors with High Cost
Engineered Mobile Wallet StackParallel Loop Architecture
  • Flutter App, iOS & Android from One Codebase
  • Custom AWS Rekognition + Liveness + Textract KYC
  • Revolut APIs for Bank Top-Ups & Payments
  • Node.js API with PostgreSQL & MongoDB
  • Send, Receive, Top-Up & Utility Bills In-App

Phase 1: Flutter Mobile Wallet, iOS & Android

We developed the complete Ozqr mobile app in Flutter so it ships on both Android and iOS from a single codebase. The wallet UI covers onboarding, balance views, send and receive money, mobile top-ups, and utility bill payments, with a consistent, native-feeling experience on both platforms. Our cross-platform mobile app development pod paired one dedicated Flutter engineer with backend APIs built on Node.js, Express.js, PostgreSQL for ledger and transaction data, and MongoDB for flexible operational records, with Agenda Jobs handling async payment and notification workflows.

Phase 2: AWS KYC Pipeline & Revolut Payment Integration

We built a custom KYC setup on AWS instead of relying on expensive third-party identity vendors. Users complete a quick face scan onboarding flow powered by AWS Rekognition and AWS Liveness API, with document capture and extraction via Textract for passport, CNIC, and driving license verification. Our AI engineer tuned validation and fraud-signal checks using Hugging Face models where document classification and matching needed extra accuracy beyond raw OCR.

For payments, we integrated Revolut APIs so bank top-ups credit the wallet immediately. Users fund from a linked bank account; money arrives directly in the Ozqr wallet and stays available for P2P transfers, mobile top-ups, or utility bill redemption without leaving the app. Our full-stack custom software engineering team wired Revolut webhooks, wallet balance updates, and idempotent transaction handling on AWS EC2 so payment state stays consistent under concurrent mobile requests.

  • Onboarding KYC: Face scan + passport, CNIC, or driving license via Rekognition, Liveness, and Textract.
  • Wallet funding: Bank account top-up through Revolut APIs with instant in-app balance.
  • Money movement: Send and receive money, mobile top-ups, and utility bill pay from one wallet.
  • Platform ops: React.js and Next.js surfaces for internal tooling and web-facing flows supporting the mobile product.

Quantified Business Outcomes

Our architecture gave Ozqr a store-ready fintech wallet with compliant onboarding and reliable payment rails.

Performance MetricBefore Parallel LoopOzqr Mobile Wallet Platform
Mobile DistributionNo Unified App Store ProductFlutter App on iOS & Android
User Onboarding (KYC)Manual / Third-Party Vendor FlowsFace Scan + Document Verify (AWS)
Bank-to-Wallet Top-UpNot IntegratedRevolut API, Funds in Wallet Instantly
In-App CapabilitiesFragmented FeaturesSend, Receive, Top-Up & Utility Bills

Technical Deep-Dive: Frequently Asked Questions

Why was Flutter chosen for the Ozqr wallet?

Flutter lets one engineering team ship pixel-consistent iOS and Android builds from a single codebase, reducing time-to-store and ongoing maintenance. For a fintech wallet with shared flows, onboarding, balance, send money, top-ups, and bills, that cross-platform efficiency was critical for Ozqr's launch timeline.

How does the AWS KYC stack combine Rekognition, Liveness, and Textract?

Liveness and Rekognition verify the live face scan matches the user presenting the document. Textract extracts structured fields from passport, CNIC, or driving license images. Our backend validates extracted data against onboarding rules before activating wallet features, keeping compliance checks in-house rather than on a generic SaaS KYC vendor.

How do Revolut top-ups stay in sync with the in-app wallet balance?

Revolut payment events are processed through Node.js workers with idempotent ledger writes in PostgreSQL. Agenda Jobs reconcile pending top-ups and webhook delays so the Flutter app reflects credited balance as soon as Revolut confirms settlement, users can send or redeem funds without manual refresh cycles.

🚀LET'S BUILD TOGETHER

READY TO SHIP?
BOOK A 30-MINUTE CALL.

We'll discuss your idea, share a fixed-price quote, and map out a timeline. No sales pitch. No BS.

< 45mResponse time
FixedPricing
2-8wDelivery