Happy Path: Full Balance Payment
User dials, sees their balance, selects "Pay full", confirms, and payment is submitted.
Step 1: Dial *284*300#
MTN UG
USSD Session
*284*300#
Loan balance: UGX 50,000
Min payment: UGX 15,0001) Pay full (UGX 50,000)
2) Pay other amount
Send
CON (continue)
→
Step 2: Confirm
MTN UG
USSD Session
*284*300#
Pay UGX 50,000?
1) Yes
2) No
Send
CON (continue)
→
Step 3: Done
MTN UG
USSD Session
*284*300#
Payment request of UGX 50,000 sent.
Please approve the transaction to complete your payment.
END (session closed)
Happy Path: Custom Partial Payment
User chooses "Pay other amount", enters UGX 25,000, confirms, and payment is submitted.
Step 1: Dial
MTN UG
USSD Session
*284*300#
Loan balance: UGX 50,000
Min payment: UGX 15,0001) Pay full (UGX 50,000)
2) Pay other amount
Send
CON
→
Step 2: Enter Amount
MTN UG
USSD Session
*284*300#
Enter amount (min UGX 15,000):
Send
CON (input)
→
Step 3: Confirm
MTN UG
USSD Session
*284*300#
Pay UGX 25,000?
1) Yes
2) No
Send
CON
→
Step 4: Done
MTN UG
USSD Session
*284*300#
Payment request of UGX 25,000 sent.
Please approve the transaction to complete your payment.
END
Validation Scenarios
Examples of error handling when user enters invalid amounts. All use CON (re-prompt) so users can try again.
Too Low
MTN UG
User entered: 5000
*284*300#
Minimum payment is UGX 15,000.
Enter amount:
Send
CON (retry)
Too High
MTN UG
User entered: 999999
*284*300#
Amount exceeds balance of UGX 50,000.
Enter amount:
Send
CON (retry)
Not a Number
MTN UG
User entered: abc
*284*300#
Invalid amount. Please enter a number.
Enter amount:
Send
CON (retry)
Cancelled
MTN UG
User pressed: 2 (No)
*284*300#
Payment cancelled.
Dial *284*300# to try again.
END
Edge Case: Only Full Payment Possible
When totalDue equals minPayment (or totalDue < minPayment after partial payment), skip the choice screen entirely. Go straight to confirmation.
Step 1: Dial (direct confirm)
MTN UG
USSD Session
*284*300#
Balance = Min payment, no partial option
Pay UGX 15,000?
1) Yes
2) No
Send
CON
→
Step 2: Done
MTN UG
USSD Session
*284*300#
Payment request of UGX 15,000 sent.
Please approve the transaction to complete your payment.
END
Error Scenarios
What users see when they have no active loan, are not registered, or when backend errors occur.
No Active Loan (3002)
MTN UG
USSD Session
*284*300#
No active loans found.
Please check your account details or contact support for assistance.
END
Not Registered (3001)
MTN UG
USSD Session
*284*300#
Welcome to Fido,
We couldn't find your details.
1) Get app download info
2) Contact support
3) Request callback
Send
CON (existing flow)
No Payment Method (3017)
MTN UG
USSD Session
*284*300#
No payment method found. Please register a payment method first.
Enter your mobile money number:
Send
CON (existing flow)
Current Flow (Before Changes)
Today: dial → immediate full repayment. No balance display, no amount choice, no confirmation.
Step 1: Dial
MTN UG
USSD Session
*284*300#
(Auto-repayment triggered immediately)A payment request has been sent to your default payment method.
Please approve the transaction to complete your payment.
END (1 step, no choice)
vs
New: Step 1 (shows balance)
MTN UG
USSD Session
*284*300#
Loan balance: UGX 50,000
Min payment: UGX 15,0001) Pay full (UGX 50,000)
2) Pay other amount
Send
CON (user chooses)
Interactive Simulator
Try the flow yourself. Click buttons or enter amounts.