Skip to content

Top-up

Agents can convert customer cash into digital wallet funds through the top-up feature.

Overview

The top-up flow allows agents to:

  1. Receive cash from a customer
  2. Add funds to the customer's Keshless wallet
  3. Earn commission on each transaction

Top-up Flow

┌─────────────────────────────────────────────────────────┐
│                    Top-up Flow                           │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  ┌─────────────┐     ┌─────────────┐     ┌─────────────┐│
│  │   Enter     │────▶│   Find      │────▶│   Confirm   ││
│  │   Phone     │     │   Customer  │     │   Details   ││
│  └─────────────┘     └─────────────┘     └──────┬──────┘│
│                                                  │       │
│                                                  ▼       │
│  ┌─────────────┐     ┌─────────────┐     ┌─────────────┐│
│  │   Receipt   │◀────│   Success   │◀────│   Enter     ││
│  │             │     │             │     │   Amount    ││
│  └─────────────┘     └─────────────┘     └─────────────┘│
│                                                          │
└─────────────────────────────────────────────────────────┘

Step 1: Find Customer

By Phone Number

  1. Enter customer phone number
  2. System validates and finds user
  3. Display customer name for confirmation

By NFC Card

Alternatively, tap customer's card to identify them.

Step 2: Enter Amount

Agent enters the top-up amount.

Amount Validation

RuleValue
MinimumE10
MaximumE5,000
Decimals2 places

Fee Structure

Amount RangeFee
E10 - E100E1 flat
E101 - E1,0001%
E1,001+0.5% (max E50)

Step 3: Confirm & Process

Confirmation Screen

FieldDescription
CustomerCustomer name
PhoneCustomer phone
Top-up AmountAmount to add
Your CommissionAgent earnings
Cash to CollectAmount from customer

Important: Ensure cash is collected before confirming.

Step 4: Success & Receipt

Receipt Options

OptionDescription
PrintBluetooth thermal printer
SMSSend to customer phone
NewStart new top-up

Limits

Limit TypeValue
Min per transactionE10
Max per transactionE5,000
Daily per customerE10,000
Daily per agentE50,000

API Endpoints

EndpointMethodDescription
/topup/lookupGETFind user by phone
/topup/lookup-cardGETFind user by card
/topup/processPOSTProcess top-up
/topup/limitsGETCheck current limits

Error Handling

ErrorCauseAction
TOP_001User not foundVerify phone number
TOP_002User not verifiedCustomer needs KYC
TOP_003Customer limit reachedCheck daily limits
TOP_004Agent limit reachedTry tomorrow
TOP_005Insufficient floatTop-up agent account
FilePurpose
lib/screens/topup/customer_lookup_screen.dartCustomer lookup
lib/screens/topup/topup_amount_screen.dartAmount entry
lib/screens/topup/topup_confirm_screen.dartConfirmation
lib/screens/topup/topup_success_screen.dartSuccess screen
lib/controllers/topup_controller.dartTop-up controller
lib/services/topup_service.dartTop-up service

Internal use only - Keshless Payment Platform