Successfully managing payment complexity requires a multi-layered approach: intuitive UX design that serves diverse user needs, strategic friction that builds trust rather than frustration, and smart technical architecture that handles complexity behind the scenes. Writes Mario Nomso, Lead Product Designer at Kora.
When the fintech Paga launched in Nigeria in 2009, it aimed to bring financial services to the unbanked and underbanked population. Early on, many users, especially in rural areas—found navigating mobile money apps and USSD menus challenging due to limited digital literacy, network issues, and complex payment flows.
The self-service experience was confusing, with high drop-off rates and failed transactions. Agents existed but operated informally and inconsistently, leading to fragmented user support.
At the time and for years after, most African countries relied on a single dominant payment channel and provider, leaving consumers with limited options. Today, that landscape is rapidly evolving.
Fintech startups grew from around 450 in 2020 to approximately 1,263 by early 2024, a near threefold increase in Nigeria alone. As a result, users now have access to cards, mobile wallets, bank transfers, QR codes, and even offline methods- across multiple currencies and countries.
But this growth has created an unexpected challenge for fintechs and banks: with so many payment options available, competition is fierce, and users have become increasingly demanding. They expect payments to be simple, fast, and secure, regardless of the underlying complexity required to make it all work.
The answer lies in strategic design approaches that treat user experience and technical sophistication as complementary rather than competing forces.
Simplicity Meets Functionality
Building in this reality of payments requires a new playbook. For product owners and engineers, it means orchestrating multiple complex processes behind a single “Pay Now” button that a user sees. You need validation, tokenization of card or wallet data, routing through payment gateways or aggregators, authentication, risk assessment, fraud checks, settlement, and reconciliation.
Users don’t care about any of that technical complexity. If they experience friction in their payment flow, even when it serves an important security purpose, they perceive it as a bad experience and may abandon the transaction entirely.
This creates a fundamental challenge: how do you guide users through necessary payment processes without neglecting critical backend requirements? How do you make complexity invisible while maintaining security, compliance, and reliability?
The answer lies in strategic design approaches that treat user experience and technical sophistication as complementary rather than competing forces.
Fintechs have it differently depending on the business model. Some B2B payment fintechs only need to build for savvy tech users, while consumer-facing products like digital banks must serve everyone from tech-savvy to first-time smartphone users.
Striking this balance is harder than it seems.
Interfaces loaded with advanced features and dense menu structures may serve power users well, but as usability expert Jakob Nielsen noted, overly complex designs risk “a withering death” for mainstream audiences. Late adopters, who make up many African fintech users, typically abandon interfaces that aren’t immediately intuitive.
But the opposite extreme creates different problems. Strip away too many features for simplicity’s sake, and power users become frustrated when they can’t find shortcuts, customization options, or advanced tools they need for efficiency.
Designing for African Market Diversity
Many fintechs now replicate this model, balancing digital experiences with agents who provide face-to-face assistance and education.
In African fintech, this challenge is amplified by extreme user diversity, from rural users who prefer USSD on feature phones to urban ones who love to do everything on their smartphones.
The solution lies in channel-appropriate progressive enhancement: design the simplest possible experience for each channel, then layer in sophistication where the technology and user context allow.
For USSD/feature phone users:
- •Minimize menu depth and use clear, numbered options
- •Provide confirmation summaries before executing transactions
- •Use familiar language and avoid technical jargon
- •Build in easy error recovery paths
For mobile/web app users:
- •Auto-filling forms and predictive input for efficiency
- •Beneficiary suggestions and transaction history
- •Real-time error detection and smart defaults
- •Advanced features like bulk payments or scheduling
For agent-assisted channels:
- •Simple interfaces that agents can navigate quickly
- •Clear prompts that help agents guide customers
- •Offline-capable systems that sync when connectivity returns
- •Training materials that help agents explain complex processes
For hybrid users (moving between channels):
- •Consistent account information across all touchpoints
- •Transaction history accessible via multiple channels
- •Progressive onboarding that works whether they start with USSD or apps
The key is recognizing that many users will interact with your platform through multiple channels depending on their situation, connectivity, and comfort level. Each channel should feel native to its constraints while maintaining a cohesive overall experience.
Turning Security into Trust
The security friction dilemma
Modern payment systems require security measures that create friction.
Two-factor authentication, transaction confirmations, and identity verification aren’t optional nice-to-haves; they’re regulatory and security necessities.
But users experience this friction as obstacles to completing their goals. People want to send money now without any friction, not enter codes and wait for confirmations. This creates a fundamental tension: the security measures that protect users are the same ones that frustrate them.
Making necessary friction acceptable
Since you can’t eliminate security requirements, the solution is to make them feel justified and transparent rather than arbitrary and hidden. The goal isn’t to make friction enjoyable, but to show users why it exists and reassure them that it protects their interests.
This is where trust becomes relevant: users are more likely to complete the flow when they understand that friction serves their interests rather than the company’s convenience. Trust becomes the outcome of good friction design, not the reason for creating friction.
Examples of positive trust-building friction.
Two-Factor Authentication (2FA)
Asking users to enter a code sent to their phone or email may feel like a hassle, but it builds trust by protecting accounts from unauthorized access. You can enhance this by telling them that you’re doing this for them. A simple email or UX copy will do.
Example: Kora requires OTP for high-value transactions, giving users confidence that their money is safe.
Confirmation dialogs for critical actions
Prompting users to confirm before irreversible actions (e.g., deleting accounts, sending large payments) helps avoid costly mistakes and signals the platform cares about security.
Example: Flutterwave asks users to confirm transfer amounts before processing.
Progressive disclosure of information
Breaking down complex forms or processes into smaller, digestible steps reduces cognitive overload and reassures users they’re on the right path.
Example: Chipper Cash uses a multi-step payment flow to help users focus on one task at a time.
Clear feedback on errors and next steps
Instead of generic error messages, providing specific guidance (e.g., “Your card expired on 06/23. Please update your card details”) shows transparency and guides users to resolve issues confidently.
Example: Interswitch’s error messages clearly indicate what went wrong and how to fix it.
Delayed execution for high-risk transactions
Introducing a short delay or “cool-off” period before completing sensitive actions (like changing account passwords or withdrawing funds) can reduce fraud risk and reassure users.
Example: Some banks send an alert with a delay before they finalize a big transaction, allowing you to cancel if it’s fraudulent.
Personalized security reminders
Periodically reminding users about security best practices or unusual login activity increases trust and keeps users engaged with their account safety.
Example: Most banks send alerts for logins from new devices, encouraging users to verify activity.
Positive Trust Friction shows users that the platform prioritizes their security and success over just speed or convenience. It builds a sense of partnership, where users feel protected rather than rushed.
Working Behind the Scenes to Improve Friction
While front-end design handles the user-facing complexity, smart backend architecture can reduce friction invisibly.
Modular architecture
The use of microservices to isolate payments, allowing rapid updates and failover resilience without touching the frontend.
Smart routing engines
Using real-time data to route transactions to the optimal acquirer, increasing authorization rates without user involvement.
A/B testing payment flows
Routine tests in UX variations for button placement, autofill behavior, and error messaging to boost conversions by fractions of a per cent, tiny changes at scale equal millions in revenue.
Paga's Lessons
Paga recognized the challenges and developed a dual approach. It grew a robust network of over 24,000 active agents across Nigeria, who act as trusted community touchpoints. These agents assist users face-to-face, help with onboarding and cash deposits/withdrawals, and resolve payment issues, particularly for less tech-savvy customers. Many fintechs now replicate this model, balancing digital experiences with agents who provide face-to-face assistance and education.
For more tech-savvy users, the platform redesigned its app and USSD interface, incorporating progressive onboarding, clear instructions, and instant feedback to reduce errors. This made self-service accessible even to first-time digital users.
Paga’s agent network became a critical driver of financial inclusion, enabling millions of previously excluded users to access digital payments. Self-service adoption grew alongside agent-assisted use, expanding Paga’s reach to over 23 million users by 2024.
Transaction volumes surged, with over 335 million transactions processed, totalling approximately NGN 14 trillion since inception. Customer satisfaction improved as users had options tailored to their comfort level, reducing friction and building trust.
Paga’s success demonstrates all three principles: channel-appropriate UX design, trust-building through agent relationships, and technical architecture that supports multiple touchpoints. This synergy creates an inclusive, scalable payment ecosystem that addresses diverse needs.
The underlying principle remains constant: meet users where they are while building systems sophisticated enough to handle the complexity they don’t see.
Mario Nomso is a Lead Product Designer at Kora, playing a key role in leading design initiatives across cross-functional teams, focusing on business solutions that balance clarity, functionality, and trust.





