Skip to content

Wallet

The wallet is the core feature of the Keshless User App, providing users with balance management, money transfers, and transaction tracking.

Wallet Home

The main wallet screen displays:

  • Balance Display: Current available balance
  • Quick Actions: Send, Receive, Pay, Top-up
  • Recent Transactions: Last 5 transactions
  • Linked Cards: NFC cards associated with the account

Balance Management

Balance Types

TypeDescription
AvailableFunds ready for use
PendingIncoming transfers being processed
ReservedFunds held for pending payments

Balance Refresh

Balance updates automatically via:

  • Pull-to-refresh gesture
  • Background refresh every 30 seconds
  • Push notifications for transactions

Send Money

Send Flow

┌─────────────────┐
│  Enter Amount   │
│                 │
└────────┬────────┘


┌─────────────────┐     ┌─────────────────┐
│  Select Contact │────▶│  Enter Phone    │
│  or Enter Phone │     │   Manually      │
└────────┬────────┘     └────────┬────────┘
         │                       │
         └───────────┬───────────┘

            ┌─────────────────┐
            │  Add Note       │
            │  (Optional)     │
            └────────┬────────┘


            ┌─────────────────┐
            │  Confirm Details│
            │                 │
            └────────┬────────┘


            ┌─────────────────┐
            │  Enter PIN      │
            │                 │
            └────────┬────────┘


            ┌─────────────────┐
            │  Success        │
            │  (Share Receipt)│
            └─────────────────┘

Transfer Request Fields

FieldTypeRequiredDescription
recipientPhonestringYesRecipient phone number
amountnumberYesTransfer amount
notestringNoOptional note
currencystringAutoAlways SZL

Fees

Transfer TypeFee
To Keshless userFree
To bank account2% (min E5)
To mobile money1.5% (min E3)

Receive Money

QR Code Generation

Users can receive money by sharing a QR code containing:

FieldDescription
typekeshless_payment
recipientUser phone number
nameUser full name
amountOptional pre-set amount

QR Code Scanning

Scan another user's QR code to send money directly.

Transaction History

List View

Transactions are displayed with:

  • Transaction type icon
  • Recipient/sender name
  • Amount (+ or -)
  • Date and time
  • Status indicator

Filtering Options

FilterOptions
TypeAll, Sent, Received, Payments, Top-ups
Date RangeToday, Week, Month, Custom
StatusAll, Completed, Pending, Failed

Pagination

Transactions load 20 at a time with infinite scroll.

Transaction Details

Each transaction shows:

  • Full transaction ID
  • Complete timestamp
  • Amount and fee breakdown
  • Recipient/sender details
  • Transaction status
  • Reference number
  • Option to share receipt

API Endpoints

EndpointMethodDescription
/wallet/balanceGETGet current balance
/wallet/sendPOSTSend money
/wallet/transactionsGETList transactions
/wallet/transactions/:idGETTransaction details
/wallet/qr/generatePOSTGenerate receive QR

Error Handling

ErrorCauseAction
WALLET_001Insufficient fundsShow balance, suggest top-up
WALLET_002Invalid recipientVerify phone number
WALLET_003Daily limit exceededShow limits, try tomorrow
WALLET_004Transaction failedRetry or contact support
WALLET_005Account suspendedContact support
FilePurpose
lib/screens/wallet/wallet_home_screen.dartWallet home
lib/screens/wallet/send_money_screen.dartSend money
lib/screens/wallet/receive_screen.dartReceive
lib/screens/wallet/qr_scanner_screen.dartQR scanner
lib/screens/transactions/transaction_list_screen.dartTransaction list
lib/screens/transactions/transaction_detail_screen.dartTransaction details
lib/controllers/wallet_controller.dartWallet controller
lib/controllers/transaction_controller.dartTransaction controller
lib/services/wallet_service.dartWallet service

Internal use only - Keshless Payment Platform