
PayitFast Business: designing business banking from zero
I designed PayitFast Business from the first sketch: a web app where a finance team can approve payments, hold money in six currencies and close the month from one place, with every number adding up.
Problem
Finance teams juggled bank portals, spreadsheets and email, with approvals and totals they could not trust.
My role
Senior Product Designer, leading the product end to end from research framing to prototype and Figma handoff.
Key decision
Approvals come first, and every figure is calculated from one data source.
Outcome
21 screens
plus 25 user flows and 48 error messages, handed off in Figma
The problem
Money moved through email, chat and spreadsheets
Finance teams at growing UAE businesses were paying suppliers across Asia, Australia and Latin America, but their tools were scattered across bank portals, spreadsheets and email. There was no single place to answer the three questions they care about: what is waiting on me, can we pay what's due, and do these numbers tie out.
- Approvals lived in email and chat. A maker sent a screenshot, a manager replied "ok", and nobody could prove who signed off.
- Every currency meant another account. Balances sat in separate places, so seeing real exposure took a spreadsheet.
- Numbers never tied out. Totals copied by hand between tools drifted, and month-end close meant reconciling line by line.
- Spend showed up too late. Card receipts and expense claims arrived after the money had already gone.
- No sense of freshness. Before moving money, people had to guess whether a balance was current.
My role
End to end, from brief to handoff
I was the Senior Product Designer on PayitFast Business, leading the product end to end from research framing to a working prototype and Figma handoff.
- Product framing: wrote the product brief covering users, jobs, money rules and open questions.
- UX and UI: designed the dashboard and 20 screens behind the sidebar, in light and dark mode.
- Design system: colour tokens, type, components and the card art.
- Flows and edge cases: 25 user flows, two user journeys and a catalogue of 48 error messages.
- Prototype: a clickable React prototype where every figure is calculated from one data set.
Who it's for
Four roles, each with one fear
The users are finance teams inside UAE businesses, not consumers, and every payment passes through maker-checker approval. I designed around four roles and the one thing each is afraid of.
| Role | What they do | Main worry |
|---|---|---|
| Admin (finance lead) | Approves payments, sets approval rules, manages team and security | Something goes out that shouldn't, or the numbers don't tie out |
| Approver | Reviews and approves payments raised by others | Approving the wrong amount or the wrong payee |
| Maker | Raises transfers, batches, bills and expense claims | Payments getting stuck with no clear reason |
| Viewer | Reads balances and reports | Stale or inconsistent figures |
One person can act for more than one company, so the active company is always visible in the sidebar.
Process
Jobs first, then directions, then one data model
I started from the jobs finance teams needed done, explored four visual directions against them, and kept the one that put data above decoration.
- Ranked the jobs. Approve what's waiting, know we can pay what's due, trust the numbers, move money, control spend, close the month.
- Studied how teams worked without us. That surfaced the two biggest gaps: totals that never reconciled and approvals with no audit trail.
- Explored directions. Each one was judged on density, trust and how fast you can scan it.
- Designed around one data model. One set of accounts and rates feeds every total, chart and tile.
- Hardened it. Validation, offline and stale states, error boundaries, focus traps and an IBAN check.
- Mapped flows and journeys. Happy paths plus every edge case and error, then moved the design into Figma.
| Direction | What happened | Decision |
|---|---|---|
| Blue on white, my first concept | Generic banking look, and the charts and totals were drawn from different figures | Set aside |
| Grey canvas with mint tiles | Looked good but felt decorative for finance and lost density | Set aside |
| Big welcome hero | Pushed the numbers below the fold | Set aside |
| Decorative mini charts | Pixel columns and sparklines that carried no values | Removed |
| Dark sidebar, flat white cards, lime brand | Dense, calm and scannable, brand shows in the details | Kept |
Key design decisions
A finance lead should never check a number twice
Every decision came back to trust: a finance lead should never have to check a number twice.
- Approvals come first. Four approval cards sit under the greeting with the count, total and earliest due date, so the main job is one click away.
- One source of truth. Every total, chart and tile is calculated from the same accounts and rates. If a figure changes, it changes everywhere.
- Original currency first. Amounts show in their own currency, then "≈ USD" underneath. JPY has no decimals, and every number uses tabular figures so columns line up.
- Maker-checker built in. Nobody approves their own payment. Transfers over $10,000 and every batch need two approvers.
- Confirm in place, never a pop-up. Anything that moves money or can't be undone gets an inline confirm that repeats the amount.
- Status never by colour alone. Every status pairs an icon with a word: Completed, Pending, Declined.
- Freshness and privacy. The header shows when balances were last updated, with a Reload button. A Hide toggle masks balances for screen sharing.
- Brand in the details. Lime #CBFF00 is the primary colour in dark mode. In light mode it would fail contrast, so I used a readable green (#169648) and kept lime for the sidebar, badges and card art.
- Copy from the user's side. "Waiting on you" instead of "Pending items". Plain, specific, no jargon.


What I shipped
21 screens, one system, every edge case
I delivered a working prototype of 21 screens, a light and dark design system, 25 user flows and a full error catalogue, all handed off in Figma.
| Area | Screens | What it covers |
|---|---|---|
| Money | Dashboard, Approvals, Wallet (Accounts, Exchange, Statements), Cards | Cash by currency, approval queue, FX with a 30-second rate hold, card controls and receipts |
| Acceptance | Transfers (Send money, Batch, Beneficiaries), Payments (Links, Invoices) | Single and CSV batch payouts, payee checks, getting paid |
| Reports | Bills, Reports, Expenses | Bills due, cash flow by month, currency exposure, card spend, expense claims against policy |
| Other | Rewards, Settings (Team, Approval rules, Security), Help | Cashback, roles, approval thresholds, 2FA and sessions |
Design system. 25 colour variables with Light and Dark modes, Inter for everything, Instrument Serif only in the greeting, and reusable components: buttons, status pills, nav items, filter chips, approval cards, stat tiles, tabs, switches, flags and card art.
Edge cases and errors. I mapped two user journeys, one for the finance lead and one for a maker, then 25 flows from login to every feature. Each flow shows errors in red, edge cases in amber and gaps that still need a decision. That produced 48 error messages written as plain next steps, such as "That file is over 2 MB. Split it into smaller batches."
Empty states. New companies see a guided first step, like "Issue your first company card", instead of an empty table.




Results and learnings
One place where every figure reconciles
PayitFast Business gave finance teams one place where approvals come first and every figure reconciles.
| Measure | Before PayitFast | With PayitFast |
|---|---|---|
| Where approvals happen | Email and chat, no audit trail | In the app, with who approved and when |
| Totals that disagree | Common, copied by hand | None, all from one data source |
What I learned
- In finance, trust beats delight. The prettiest direction lost because it hid numbers.
- Brand colours need two answers. Lime works on dark but fails on white, so the system needed a light-mode partner.
- Writing the error messages early changed the flows. Several gaps only showed up when I tried to explain them in one sentence.
Still open: real fee schedule and cut-off times per currency, whether AED is a held currency, and which KYB limits should show before a business is verified.
Money
- Approvals
- Wallet
- Accounts
- Exchange
- Statements
- Cards
- Issue card
- Card controls
- Card payments and receipts
Acceptance
- Transfers
- Send money
- Batch transfers
- Beneficiaries
- Payments
- Payment links
- Invoices
Reports
- Bills
- Reports
- Expenses
Other
- Rewards
- Settings
- Team and roles
- Approval rules
- Security
- Help center
Links
Go deeper
Want the full story?
There's a lot more behind PayitFast Business than fits on one page. I'm happy to walk you through the research, decisions and trade-offs.
Next Case
