Cricket Turf Payments App (UPI + Organizer Wallet + Turf Payouts)

Job ID: 40117996

Budget: ₹12,500 – ₹37,500 INR

We need an MVP mobile app to manage group payments for cricket turf bookings.

Today players pay one person via UPI and that person pays the turf owner. We want to centralize this: players pay individually inside the app, the app shows exactly who has paid and who attended, and the turf owner gets paid immediately after the game ends. We also need an organizer wallet to store excess money and use it for future matches/shortfalls.

Core user roles
1. Organizer (creates match, invites players, can cover shortfall using wallet)
2. Player (joins match and pays share)
3. Turf Owner (receives payout; optional portal later)

MVP features

Match + payments
• Organizer creates match: turf, time slot, total amount, max players
• App splits amount per player and generates unique payment request (UPI QR/link) per player
• Live dashboard: Paid count, Pending count, collected amount, attendee list
• Payment verification via payment gateway webhooks (no screenshot/manual)

Immediate payout after play
• Match ends (manual “End Match” or auto by time) → trigger instant payout to turf owner via UPI/IMPS
• Record settlement reference + status

Organizer wallet (ledger-based)
• Wallet credits: excess contributions, price adjustments, optional refunds-to-wallet
• Wallet debits: organizer uses wallet to cover shortfall for a match
• Wallet holds to prevent double-spend
• Wallet history (credits/debits), available vs pending balance
• No peer-to-peer transfers, no withdrawals in Phase 1 (closed-loop)

Admin panel (minimal)
• View matches, payments, settlements, wallet ledger
• Add turf owners + their payout details
• Manual adjustment (admin credit/debit) with audit trail

Tech expectations
• Cross-platform: Flutter or React Native
• Backend: Node.js/Python + PostgreSQL (or equivalent)
• Payment integration: India UPI via gateway (Razorpay/Cashfree/etc.)
• Webhooks + idempotency + ledger correctness
• Basic security: auth via OTP, encrypted secrets, role-based access
• Clean code + documentation

Deliverables
• Working Android build (APK) + iOS build instructions
• Backend deployed (or deploy scripts) + database schema
• Admin panel
• Source code in Git repo
• Setup docs + API docs
• Test credentials + webhook handling guide

Must-have flows (acceptance criteria)
• 20 players pay ₹125 each for a ₹2500 match → app shows 20/20 paid
• Organizer ends match → payout triggers and marks settlement status
• Organizer can cover shortfall using wallet (hold → consume)
• Wallet ledger is consistent under retry/webhook duplicates (idempotency)