Home / Works / PASHA Bank

PASHA Bank

Internet banking where every payment is a signed legal document
UX/UI Specialist Jun 2018 — Jun 2019 Baku Web · 1440 / 1024 / 768 / 375

PASHA Bank’s online bank for companies: accounts and statements, payments — own accounts, FX, SWIFT, tax — currency exchange and payroll. I designed it while the bank moved its key processes — onboarding, payroll, payments and reporting — off a legacy system, and kept the design system that held them together.

Team 4–6 product teams, each with 1–2 designers, a product manager and developers. My part: research, flows and UI in my workstreams, the design system shared by all of them, prototypes and specs for developers. Monday and Friday team alignments, daily stand-ups.

UX researchInteraction designUIDesign system Prototypes & specs for developersSketch → Figma migration Corporate typeface adaptationAnimated preloader
100+
screens across onboarding, payments, payroll and reporting
300+
components optimised in the team’s move from Sketch to Figma
10+
customers interviewed and tested with, per workstream
3
languages in one interface — AZE · ENG · RUS
Impact

I don’t have the bank’s outcome data from 2018–19, so there are no before-and-after numbers on this page — and I won’t make them up. What you’ll find instead: the decisions I can stand behind, the system that carried them, and for every change I’d make now, the number I would watch.

01 — One payment

One payment, three people, five states

A company account is never one person. The accountant prepares a payment, the director signs it, the bank executes it — and at every step the screen has to say whose move it is. Follow one payment; each step links to the chapter where it lives.

Accountant Director · signer Bank AccountantFormFills one of five formsFive payments → AccountantCreatedChecks the summaryPayroll: errors by row → Director · signerNeeds signatureSigns in a batch, often as 1 of 2Batch signing →
BankIn bankExecutesthe FX rate is fixed here
BankCompletedLands in balances and statementswhat the finance lead reads
Back to the accountantRejectedBy the signer or the bankalways with a reason
AccountantPrepares

Payments, payroll files, statements. In the bank all day, so speed and repeatability matter — templates, purpose chips, the account picked without opening it.

Director · signerSigns

Comes for one thing: what is waiting for a signature. Reviews and signs in batches with an OTP code or ASAN İmza, the national mobile signature.

Finance leadWatches

Balances per currency, money in and out, the exchange rate, statements e-mailed on a schedule.

Create ≠ sendA payment leaves only after a signature, often two. Until then it is a draft the bank cannot see.
The regulator writes the formRequisites follow the Central Bank of Azerbaijan standard: IBAN, VÖEN tax ID, budget codes, SWIFT.
The rate movesAn FX rate is fixed when the bank executes the payment, not when you create it.
02 — Batch signingNeeds signature → In bank

Twenty-six payments, one code

The busiest path in the product, and the one with the highest cost of a mistake. Four screens, scroll through them.

Payments list with the Need actions filter: three documents wait for the signer Two payments ticked; Cancel, Reject and Sign appear in a bottom bar One-time code dialog: 26 payments, totals by currency — 23 in AZN, 2 in USD, 1 in EUR Signing result: 26 signed, 24 sent to bank, 2 waiting for a second signature, 0 rejected
  1. 1 / 4

    Land on what needs you

    The signer’s view opens on Need actions. A red pill counts what is waiting; a thin red edge marks every row that waits — the only red on the screen, so it reads before anything else.

  2. 2 / 4

    Tick a batch

    Select as many as you like. Cancel, Reject and Sign appear in a bottom bar with the selection — and Sign is the only green, so the main action is never a search.

  3. 3 / 4

    One code, totals by currency

    One OTP signs the whole batch. Before typing it, the director sees what they are signing in money, not in rows: 23 payments in manat, 2 in dollars, 1 in euro, each with its total.

  4. 4 / 4

    Say what just happened

    With two signers, “signed” does not mean “sent” — so the result screen says it plainly: 24 went to the bank, 2 wait for a second signature, none rejected.

03 — Five paymentsForm

Five payment types, one skeleton

Own accounts, FX, SWIFT, tax and budget, domestic manat — each with fields the regulator demands. Underneath it is the same document: where the money comes from, who gets it, how much, why — then Create. Learn one form, fill all five.

Own accounts
between the company’s accounts
Own account payment form No counterparty — both accounts are yours
FX
buy or sell currency
FX payment form No counterparty — the bank is the other side
SWIFT
abroad, in currency, with documents
SWIFT foreign currency payment form
Tax & budget
to the state, with budget codes
Tax and budget payment form
AZN
domestic, the most common one
Domestic AZN payment form
FX form: account selectors showing name, IBAN and balance
The account, whole, inside the pickerName, IBAN and balance in one 72-px control — you choose the account without opening Accounts in another tab.
Description field with budget codes and frequent purposes as chips
Purpose as chips, right in the fieldBudget codes and frequent purposes sit inside the description — less typing, fewer payments bounced by the bank for a wrong code.
04 — PayrollForm → Created

Errors by row, not “file is invalid”

Salaries go in as a file exported from the company’s own accounting. When something is wrong, the bank names the row, the field and the reason — instead of bouncing the whole file and leaving the accountant to guess.

Salary payment with seven errors listed per row: IBAN not mapped to your company, invalid symbols, amount is mandatory
IBAN is not mapped to your companyrow 2
Invalid symbolsrows 14, 193 and 2308 · in the name, type, purpose or amount
Amount is mandatoryrow 58 · together with “Name unavailable”

Seven errors, each on its own row with its own reason. The fix still happened outside the bank — edit the file, upload it again. That is the first thing I’d change; see the end of the page.

05 — Design system

A quiet system, so the numbers speak

Five rules held the whole product together. They are why a SWIFT form and a payroll file feel like the same bank — and why the numbers always win the eye.

Rule 1

Paper, not interface

A #FAFAFA canvas, white cards on a 5% shadow, dividers drawn as 0.5-px hairline shadows instead of borders. Nothing argues with the figures.

Available balance4 100 888 600.12 ₼
Start of the day8 570 440 640.12 ₼
canvas #FAFAFA · surface #FFFFFF · hairline #E5E7EC at 0.5 px
Rule 2

Hierarchy by size, not by weight

One typeface, Formular, in 13 text styles. Medium only for labels and buttons. Table headers and the menu are 11 px uppercase with tracking — quiet, but scannable.

61 · DisplayAccounts
30 · H1Payment #808724911579
22 · H2My accounts
19 · LeadWe sent a code to sign 26 payments
17 · H3Salary file details
15 · BodyInfinity Global Europe B.V. · 28 670.00 EUR
13 · CaptionFM34U849GJG3ROGP32G8FJK39827
11 · OverlineDate · Counterparty · Amount · Status

Specimen set in Golos Text, the typeface of this site; the product itself uses Formular, as on the screens above.

Rule 3

One colour per meaning

PASHA green only on the main button and section titles. PASHA red only on the active menu item and on whatever needs you. Everything else is three greys.

Rule 4

An 8-pt grid with fixed parts

136 margin, 1168 content, two columns of 568 with a 32 gutter. Header 80, action bar 104, controls 40 and 48, account picker 72. Switch the grid on — it lands on every edge.

Payments screen
Rule 5

Money is the main content

Amounts align right, with + and −, currency as a symbol. A foreign amount carries its manat equivalent underneath, small and grey. A total gets a green band.

Incoming payment · Bakcell LLC14:12 · to Kapital Invest LLC
+ 12 400.00 AZN
CHRISTIAN DIOR COUTURE17.02.2018 · Foreign currency
− 67 380.22 EUR283 480.26 AZN
Salary project · June 2018132 employees · sent to bank
− 184 220.00 AZN
Net, in manat
− 455 300.26 AZN
06 — Adaptive

One list at 1440, 768 and 375

Desktop first, because accountants work at a desk. On a tablet the status tabs fold into one menu that keeps its counts; on a phone a table row becomes a card — counterparty, date, amount, and the reason if the bank said no.

1440Payments at 1440
768Payments at 768 with the status menu open
375Payments at 375 as cards
07 — In Figma

The system, counted

The key screens, rebuilt in Figma on one library: three layers of variables, named text styles, components with variants. These are counts from the file itself.

58key screens rebuilt, all on one library
24component sets with variants — header, table row, fields, buttons
2,365component instances across the screens
98%of text on 13 named styles
96%of fills bound to tokens
Primitives 35
green/500 #099A71
red/500 #E24353
neutral/25 #FAFAFA
neutral/500 #8B8E8D
neutral/800 #343836
Tokens 46
action/primary → green/500
status/danger → red/500
bg/page → neutral/25
bg/selected → green/50
text/secondary → neutral/500
Layout 21
136layout/page-margin
1168layout/content
568layout/column
72size/select-l
104size/bottom-bar
One header, not sevenThe top bar is a single component in four sizes — 1440, 1024, 768, 375. The active section is a property of a nested item, not a copy of the bar.
One table rowPayments, statements, templates, rejected: one Table row with Layout × Kind × Height, instead of a hand-placed row per screen.
Buttons that know their statesPrimary, secondary and link in two sizes, with hover, pressed, disabled and loading — 21 variants of one component; label and icon are properties.
08 — What I’d change

Three fixes I’d make now

Each one starts from a weak spot of the original design and comes with the number I would watch. Concepts in the same components — switch between the original and the concept.

Fix 1

One inbox for the signer

Problem
Signers come for one thing, but payments wait in Payments, payroll in Salary, FX in its own section — three places to sign.
Change
“Waiting for my signature” first on Main: every document type in one list, totals per currency, one OTP or ASAN İmza for the batch, and who signed before me.
Measure
Time from creation to signature; share of documents signed on the day they were created.
Original: documents to sign live in the Payments list Concept: Waiting for my signature on Main, all document types, totals per currency
Fix 2

FX with a locked rate

Problem
“The rate may differ at the time of the transaction execution.” You don’t know what will leave the account or what will arrive.
Change
The rate is locked for 60 seconds with a timer, compared with the Central Bank rate. Before signing: you pay, of which commission, the receiver gets.
Measure
Drop-off at the FX step; rate complaints; share of FX done online rather than in a branch.
Original: FX form with a rate that may differ at execution Concept: rate locked for 60 seconds, full cost before signing
Fix 3

Fix payroll errors in place

Problem
“7 errors in the file.” To fix one IBAN the accountant edits the file in Excel and uploads all of it again.
Change
Broken rows are edited right in the table; the format is checked before upload; a file template to download; a comparison with last month — new and missing employees.
Measure
Uploads per payroll; time from upload to signature.
Original: payroll file with seven errors, fix and upload again Concept: two of seven errors left, edited in place

Six more are worked out in the same file: a payment timeline with “fix and resend”, a smart AZN form that fills the bank from the IBAN, repeat and recurring payments, ⌘K search, one colour scale for statuses, and signing from a phone.

PASHA Bank · 2018 — 2019

Designed for the moment money leaves the company

Corporate internet banking: accounts, payments, FX, payroll and statements, in three languages and four widths, on one design system.