Dah Bayar - Payment Tracker for Groups
Convert any WhatsApp list into a smart payment tracker with QR codes. Perfect for group activities like badminton, dinner gatherings, and team events.
Tech Stack
1 The Challenge
Group organizers struggle to track who has paid and who hasn't for activities like badminton sessions, dinners, or team events. Manually copying payment details and tracking payment status across WhatsApp messages is tedious and error-prone, leading to confusion and repeated follow-ups.
2 The Solution
Built a PWA that transforms any list (from WhatsApp groups or manual entry) into an organized payment tracker. Organizers can paste participant lists, set amounts, save payment QR codes once, and share payment info with one tap - showing exactly who hasn't paid yet. No more copy-pasting bank details or forgetting who paid.
Dah Bayar - Smart Payment Tracker
Dah Bayar (Malay for "Already Paid?") is a Progressive Web App designed to eliminate the hassle of tracking payments in group activities. Whether you're organizing weekly badminton sessions, group dinners, or any team event, Dah Bayar simplifies payment collection and tracking.
The Problem
Pain Points for Group Organizers
Before Dah Bayar, organizing group payments was frustrating:
- Manual List Management: Typing out participant names repeatedly for each activity
- Repetitive Sharing: Copy-pasting bank details and QR codes over and over in WhatsApp
- Tracking Confusion: "Who paid already? Let me scroll through messages..."
- Context Switching: Jumping between WhatsApp, banking app, notes, and calculator
- Duplicate Follow-ups: Accidentally messaging people who already paid
- No Overview: No quick way to see payment progress at a glance
Real-World Scenarios
Badminton Group Organizer:
"Every week I have to ask 15 people to pay for the court. I keep copying my bank details, sharing my QR code screenshot, and checking off who paid in my head. Sometimes I forget who paid and have to ask again."
Dinner Event Coordinator:
"After a group dinner, I need to collect RM45 from each person. The WhatsApp list is already there, but I have to manually track payments in Notes app and keep sharing my payment info. Half the time people forget who to pay or what the account number was."
The Solution
Transform Lists into Payment Trackers
Dah Bayar solves these pain points with a streamlined workflow:
Core Features
1. Quick Setup
- Paste Your List: Copy participant names directly from WhatsApp group messages
- Set Amount: Define the cost per person
- Save Payment Info Once: Upload your QR code and enter bank details one time
2. Smart Organization
- List Grouping: Organize multiple activities (Badminton Week 1, Dinner March, etc.)
- Progress Tracking: Visual progress bar showing collection status
- "1/5 paid" with clear percentage and amount collected (RM 15.00 / RM 64.00)
- Status Labels: Each person marked as "Paid", "Pending", or custom status
- Bulk Actions: Mark multiple people as paid with checkboxes
3. Effortless Sharing
- One-Tap Share to WhatsApp: Generate a beautiful message showing:
- Bank account details
- Account holder name
- Bank name clearly displayed
- Payment amount for that person
- QR code for instant scanning
- List of people who haven't paid yet
- Smart Message Templates: Pre-formatted messages ready to send
4. Payment Information Management
- QR Code Upload: Save your DuitNow/bank QR code once
- Multiple Banks: Support for all Malaysian banks (Maybank, CIMB, Public Bank, etc.)
- Account Details: Store account number and account holder name
- Reusable Templates: Use saved payment info across all your lists
User Journey
Step 1: Setup Payment Info
1. Enter bank name (e.g., "Maybank")
2. Enter account number (e.g., "175717012")
3. Enter account holder name (e.g., "Fathur Dev")
4. Upload or take photo of payment QR code
5. Save
Step 2: Create a List
1. Tap "+ New List"
2. Give it a name (e.g., "Badminton")
3. Paste list from WhatsApp:
"Badminton
1. Fathur
2. Zaid
3. Alif"
4. Set amount per person (e.g., "15")
5. Tap "Add List +"
Step 3: Track Payments
Fathur [Paid]
Zaid [Pending]
Alif [Pending]
Progress: 1/3 paid
Amount Collected: RM 15.00 / RM 45.00
Step 4: Share Payment Info
Tap on "Zaid" → Share button →
WhatsApp message generated:
"Payment info for: Badminton
Default Account: RM 15.00
Bank Account:
Maybank
172/3779
Pending Payment:
- Zaid - RM 15.00
- Alif - RM 16.00
Total: RM 10.00 / RM 45.00
[QR Code Image]"
Key Benefits
For Group Organizers
- Save Time: No more repetitive copying and pasting
- Clear Overview: See payment status at a glance
- Targeted Follow-ups: Only message people who haven't paid
- Reusable Data: Save payment info and use across all activities
- One-Hand Operation: Everything accessible on mobile
For Group Participants
- Clear Information: Receive complete payment details in one message
- Instant Payment: Scan QR code directly from WhatsApp
- No Confusion: All details in one place, no scrolling through messages
Technical Implementation
Progressive Web App
- Offline-First: Works without internet connection
- Install to Home Screen: Access like a native app
- Fast & Lightweight: Instant loading, minimal data usage
- Cross-Platform: Works on iOS, Android, and desktop
Data Management
- Local Storage: All data stored on your device
- Privacy-First: No server, no data collection
- Export/Backup: Export your lists for safekeeping
- Import: Restore from backup
WhatsApp Integration
- Native Share API: Seamless sharing to WhatsApp
- Image Generation: Automatically creates shareable graphics with QR codes
- Smart Formatting: Pre-formatted messages with proper spacing
Use Cases
Weekly Badminton Sessions
"15 players, RM15 each, every Sunday. Instead of asking everyone in the group chat, I just share payment info with the 3-4 people who haven't paid yet."
Group Dinners
"Split bills for company dinners or friend gatherings. Paste the attendee list, set individual amounts if needed (some ordered more), track who transferred."
Office Activities
"Company team building, office lunch orders, gift collections - manage all payment tracking in one place."
Screenshots
Clean setup interface - save your payment info and upload QR code once
Paste participant list from WhatsApp or enter manually, set amount per person
Visual payment tracker with checkboxes and progress tracking
Generated WhatsApp message with complete payment details and QR code
Generated WhatsApp message with complete payment details and QR code

Complete user journey from setup to payment tracking to WhatsApp sharing
Impact
Solving Real Pain Points
Time Saved:
- Traditional method: 5-10 minutes per payment collection (copying details, messaging, tracking)
- With Dah Bayar: 30 seconds (one-tap share to pending members)
- 90% time reduction for payment collection management
Reduced Errors:
- No more accidentally messaging people who already paid
- No more forgotten bank details or wrong account numbers
- Clear visual status prevents double-charging or missing payments
Better Experience:
- Participants receive professional, complete payment information
- Organizers look more organized and professional
- Group activities run more smoothly with less payment friction
Technologies Used
- Progressive Web App (PWA): Service workers, manifest, installable
- Local Storage: Client-side data persistence
- Web Share API: Native sharing to WhatsApp and other apps
- Canvas API: QR code embedding in shareable images
- Responsive Design: Mobile-first, works on all screen sizes
- Modern JavaScript: ES6+, async/await patterns
- CSS Grid/Flexbox: Flexible, responsive layouts
Future Enhancements
Potential features for future updates:
- Payment Reminders: Scheduled automatic reminders for pending payments
- Multiple Organizers: Shared lists for co-organizers
- Payment History: Track historical payment patterns
- Analytics: See who typically pays on time, average collection time
- Multi-Currency: Support for international groups
- Receipt Generation: Automatic payment receipts
- Group Templates: Save recurring group configurations
- Integration: Connect with e-wallet APIs for payment confirmation
Making group payment collection effortless, one list at a time.