Vendor App Overview
The Keshless Vendor App is designed for merchants and agents to accept payments, manage transactions, and handle cash operations for customers.
Vendor Types
| Type | Primary Functions |
|---|---|
| Merchant | Accept payments at POS |
| Agent | Top-ups, withdrawals, card operations |
| Hybrid | Both merchant and agent services |
Features at a Glance
| Feature | Description |
|---|---|
| Authentication | Vendor/sub-user login, roles |
| Dashboard | Revenue metrics, activity |
| POS | Accept NFC payments |
| Top-up | Cash-to-digital conversion |
| Withdrawal | Digital-to-cash processing |
| Transactions | History, filtering, export |
| Team Management | Tills, sub-users, roles |
| Card Operations | Link, block, reset PIN |
| Tickets | Sell and scan tickets |
User Roles
Role Hierarchy
┌─────────────────────────────────────────────────────────┐
│ Owner │
│ (Full access, all permissions) │
├─────────────────────────────────────────────────────────┤
│ Manager │
│ (Operations, reports, limited settings) │
├────────────────────────┬────────────────────────────────┤
│ Cashier │ Accountant │
│ (POS, basic ops) │ (Reports, reconciliation) │
└────────────────────────┴────────────────────────────────┘Permission Matrix
| Feature | Owner | Manager | Cashier | Accountant |
|---|---|---|---|---|
| POS Payments | Yes | Yes | Yes | No |
| Top-ups | Yes | Yes | Yes | No |
| Withdrawals | Yes | Yes | Yes | No |
| View Transactions | Yes | Yes | Till only | Yes |
| Export Reports | Yes | Yes | No | Yes |
| Manage Team | Yes | Yes | No | No |
| Settings | Yes | No | No | No |
| Card Operations | Yes | Yes | No | No |
Vendor Flow
┌─────────────────────────────────────────────────────────┐
│ Vendor Onboarding │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐│
│ │ Register │────▶│ Business │────▶│ Verification││
│ │ (Phone) │ │ Profile │ │ (Documents) ││
│ └─────────────┘ └─────────────┘ └──────┬──────┘│
│ │ │
│ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐│
│ │ Start │◀────│ Create Till │◀────│ Approved ││
│ │ Operations │ │ (Terminal) │ │ ││
│ └─────────────┘ └─────────────┘ └─────────────┘│
│ │
└─────────────────────────────────────────────────────────┘Security Features
| Feature | Description |
|---|---|
| Role-based Access | Permissions enforced at every level |
| Till System | Separate accounts for different terminals |
| PIN Verification | Required for sensitive operations |
| Session Management | Auto-logout after inactivity |
| Transaction Limits | Configurable per role |
Code Location
Repository Path: frontend/keshless-vendor-app/
Key Files:
| File | Purpose |
|---|---|
lib/main.dart | Entry point |
lib/routes/app_routes.dart | Routes |
lib/controllers/auth_controller.dart | Auth Controller |
lib/providers/permission_provider.dart | Permission Provider |
lib/services/vendor_service.dart | Vendor Service |
API Integration
| Endpoint | Purpose |
|---|---|
/vendor/auth/* | Vendor authentication |
/vendor/profile | Vendor profile |
/vendor/transactions/* | Transaction management |
/vendor/tills/* | Till operations |
/vendor/team/* | Sub-user management |
/cards/* | Card operations |
Environment Configuration
| Environment | API URL |
|---|---|
| Production | https://api.keshless.com |
| Development | https://dev-api.keshless.com |