Skip to content

Payments

The Keshless User App supports various payment types including airtime purchases, bill payments, vendor payments, top-ups, and cash withdrawals.

Payment Types

TypeDescriptionFee
AirtimeMobile airtime purchaseFree
BillsUtility and service billsVaries
VendorPay merchantsFree
Top-upAdd funds to walletFree
WithdrawCash out at agent2%

Airtime Purchase

Flow

┌─────────────────┐
│  Select Network │
│  (MTN/Eswatini) │
└────────┬────────┘


┌─────────────────┐
│  Enter Phone    │
│  (Self/Other)   │
└────────┬────────┘


┌─────────────────┐
│  Select Amount  │
│  or Enter Custom│
└────────┬────────┘


┌─────────────────┐
│  Confirm & Pay  │
│  (Enter PIN)    │
└────────┬────────┘


┌─────────────────┐
│  Success        │
│  (Show Voucher) │
└─────────────────┘

Supported Networks

NetworkCodePrefix
MTN Eswatinimtn_sz76, 78
Eswatini Mobileesw_mobile79

Airtime Amounts

  • Quick amounts: E5, E10, E20, E50, E100, E200
  • Custom amounts: E2 - E1000

Bill Payments

Supported Billers

CategoryBillers
ElectricityESWADE, SEC
WaterEswatini Water
InternetSwaziNet, MTN
TVDStv, GOtv
InsuranceOld Mutual, Momentum

Bill Payment Flow

┌─────────────────┐
│  Select Biller  │
│  Category       │
└────────┬────────┘


┌─────────────────┐
│  Select Service │
│  Provider       │
└────────┬────────┘


┌─────────────────┐
│  Enter Account  │
│  Number         │
└────────┬────────┘


┌─────────────────┐
│  Enter Amount   │
│  (or fetch)     │
└────────┬────────┘


┌─────────────────┐
│  Confirm & Pay  │
│  (Enter PIN)    │
└────────┬────────┘


┌─────────────────┐
│  Success        │
│  (Payment Ref)  │
└─────────────────┘

Bill Payment Request Fields

FieldTypeRequiredDescription
billerIdstringYesBiller ID
accountNumberstringYesAccount number
amountnumberYesPayment amount
referencestringNoOptional reference

Vendor Payments

Pay via QR Code

  1. Scan vendor's QR code
  2. Enter amount (if not pre-set)
  3. Confirm vendor name
  4. Enter PIN
  5. Complete payment

Pay via Merchant Code

  1. Enter merchant code (6-digit)
  2. Enter amount
  3. Confirm vendor details
  4. Enter PIN
  5. Complete payment

Top-up Wallet

Top-up Methods

MethodProcessingFee
Bank Transfer1-24 hoursFree
Mobile MoneyInstantFree
Agent CashInstantFree
CardInstant2.5%

Bank Transfer

  1. View Keshless bank details
  2. Transfer from your bank
  3. Reference: Your phone number
  4. Funds credited after confirmation

Agent Top-up

  1. Visit Keshless agent
  2. Provide phone number
  3. Give cash to agent
  4. Receive SMS confirmation

Cash Withdrawal

Withdrawal Flow

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


┌─────────────────┐
│  Find Agent     │
│  (Map/List)     │
└────────┬────────┘


┌─────────────────┐
│  Generate Code  │
│  (6-digit)      │
└────────┬────────┘


┌─────────────────┐
│  Visit Agent    │
│  Give Code      │
└────────┬────────┘


┌─────────────────┐
│  Receive Cash   │
│                 │
└─────────────────┘

Withdrawal Limits

KYC LevelDaily LimitPer Transaction
BasicE500E200
StandardE5,000E2,000
PremiumE20,000E10,000

API Endpoints

EndpointMethodDescription
/payments/airtimePOSTPurchase airtime
/payments/billsPOSTPay bill
/payments/vendorPOSTPay vendor
/wallet/topupGETGet top-up options
/wallet/withdrawPOSTGenerate withdrawal code

Error Handling

ErrorCauseAction
PAY_001Insufficient balanceTop-up wallet
PAY_002Invalid accountVerify account number
PAY_003Biller unavailableTry later
PAY_004Amount too lowCheck minimum
PAY_005Transaction limitCheck limits
FilePurpose
lib/screens/payments/airtime_screen.dartAirtime
lib/screens/payments/bills_screen.dartBills
lib/screens/payments/vendor_payment_screen.dartVendor payments
lib/screens/payments/topup_screen.dartTop-up
lib/screens/payments/withdraw_screen.dartWithdraw
lib/controllers/payment_controller.dartPayment controller
lib/services/payment_service.dartPayment service

Internal use only - Keshless Payment Platform