The challenge
Simplify interbank transfers, which required complex account numbers and waiting times, into an instant P2P payment based on a mobile number.
Kuara moves from $0.01 to $5,000 instantly and free of charge, and it has no app of its own: it lives inside the apps of Global Bank, Banesco, Banistmo, Caja de Ahorros and MMG Bank. Each bank has its own interface, so the experience had to fit all of them while still being Kuara.
The complexity
Multi-bank environment
A white-label solution that plugs into five different banking apps, each with its own brand and patterns, and feels the same in all of them.Security without friction
Token validation and high security standards on every transaction, without adding steps that slow down a payment meant to take seconds.Scale and speed
Each bank implements Kuara with its own team: without shared components and rules, every integration started from scratch.
Goals
- Make sending money to another bank as simple as typing a mobile number.
- A consistent experience across every bank, with security built into the flow itself.
- A design system and documentation that would speed up implementation at each bank.
User flows
I designed three main flows, built to be completed in a few steps and within the context of the user’s banking app.
Enrolment
- Activate Kuara from the bank’s app
- Link the mobile number to an active account
- Done in 2 or 3 steps
P2P transfer
- Pick a contact from the address book or type the number
- Set the amount, from $0.01 to $5,000
- Real-time data validation
Security and confirmation
- Authorisation with a security Token
- Instant receipt
- Share via WhatsApp or email
Enrolment in 2 or 3 steps
Activation happens inside the app the user already knows: they just link their mobile number to an active account, with no long forms or external sign-ups.Sending is picking a contact
Recipients from the device’s address book or by typing the number, with real-time validation to confirm who receives the money before authorising.Trust at the end of the flow
Built-in Token authorisation and an instant, ready-to-share receipt that closes the payment with certainty.
The ecosystem: Kuara for merchants
Beyond the P2P experience, I designed the web platform merchants use to get paid with Kuara. The merchant signs up and completes a guided seven-step onboarding, creates branches and payment points, and requests payments with the customer’s number or a dynamic QR, following revenue on a dashboard.




Design system
I built a scalable design system from scratch for multi-entity financial products: foundations, primitive and semantic variables, interactive states, reusable components and Auto Layout rules ready for customisation and technical implementation.
Kuara design system
Colour
- Purple KUARA/01#6A2C8F
- Purple KUARA/05#F4E2FF
- Blue KUARA/01#2DCABE
- Blue KUARA/05#E4F4F3
- Gray KUARA/01#282828
- Gray KUARA/02#464646
- Gray KUARA/04#9E9E9E
- White KUARA/01#FFFFFF
Typography
- LexendHeadingsSubheading/02 · 20/28
- PoppinsBody and UIBody XXL → XS · 24 – 12
Most used components
- Button124
- Input Field60
- Menu Item51
- Avatar30
- Select24
instances across the high-fidelity screens
Primitive and semantic tokens
A layer of base values and a layer of intent (backgrounds, text, borders, states) so the system can be tuned for each bank without touching the components.Interactive states
Every component defines its states (rest, hover, focus, disabled, error, loading) so it behaves the same in every app.Auto Layout components
Buttons, fields, selects, menus, avatars and cards built with Auto Layout and properties, ready to adapt to any content.
Storybook and handoff
I translated and documented the Figma system in Storybook to create a single source of truth between design and development, and to speed up integration in the banking environments with no visual or technical debt.
Figma
- Primitive and semantic variables
- Components and variants
Storybook
- Variants and states
- Properties (props)
Usage guidelines
- When and how to use each component
- Best practices and accessibility
Banking apps
- Integration at each bank
- No visual or technical debt
One source of truth
Design and engineering read the same documentation: what exists in Figma exists, with the same name, in code.Variants, states and props
Each component documents its variants, states and properties, with interactive examples the team can try.Frictionless handoff
Usage guidelines answer questions before they come up and cut the back-and-forth between design and development.
Results and impact
- Banks5of Panama’s leading banks adopted the experience
- Per payment$5,000limit, from $0.01, instantly
- Fees$0to send and receive money
A standard experience
One P2P payments experience adopted by five of Panama’s leading banks.Faster handoff and implementation
Keeping Figma and Storybook in sync drastically cut handoff and frontend implementation times.Fast, free and secure
An instant, fee-free transactional experience for thousands of banking users.
Takeaways
- In financial products, trust is designed: real-time validation, clear confirmations and receipts matter as much as visuals.
- Designing for several banks forces you to separate brand from behaviour: semantic tokens are that boundary.
- A design system only scales when engineering uses it: documenting it in Storybook mattered as much as designing it.
