
Plati Po Miru — rethinking the top-up flow
A deep-dive redesign of the most critical flow in the product — the top-up. Every state, every edge case, proposed as a complete dev-ready specification.
Topping up is the most critical action in the product — no top-up, no payment. At 200k MAU the flow still failed at basics: an alphabetic keyboard on a number field, no quick amounts, a desktop QR that only worked on mobile. I redesigned it end to end — every state and edge case — as a complete, dev-ready proposal.
I moved bank selection in-app, so users skip the unbranded hand-off.
Before: tap → external redirect → pick a bank by hand. Now: choose the bank inside the app → deeplink straight into it. And the app remembers the bank, so a repeat top-up is 2–3 taps.
I rebuilt amount entry, so a number field stops behaving like a text field.
Quick-amount chips, a readable input, a numeric keypad only. Less friction, fewer errors.
I designed status screens, because the old flow had none.
Users paid and saw no confirmation, and no decline screen either. I designed the full set — success, pending, decline — plus a fallback: if the deeplink fails, the flow drops back to the redirect instead of dead-ending.
Why it’s here
Not shipped — included because it shows how I take a critical flow apart: map every state, design the failures as carefully as the happy path, degrade gracefully when the infrastructure doesn’t cooperate.
Пополнение — самое критичное действие в продукте: нет пополнения — нет оплаты. При 200k MAU флоу спотыкался на базовом: буквенная клавиатура на числовом поле, нет быстрых сумм, десктопный QR работал только на мобилке. Я переспроектировал его от и до — каждое состояние и edge case — как полную, dev-ready спецификацию.
Перенёс выбор банка в приложение, чтобы убрать небрендированный переходник.
Раньше: тап → внешний переходник → выбор банка вручную. Теперь: выбор банка внутри аппа → диплинк сразу в него. И приложение запоминает банк — повторное пополнение в 2–3 тапа.
Пересобрал ввод суммы, чтобы числовое поле перестало вести себя как текстовое.
Чипы быстрых сумм, читаемый ввод, только цифровой numpad. Меньше трения, меньше ошибок.
Спроектировал экраны статусов, потому что в старом флоу их не было.
Пользователь оплачивал и не видел ни подтверждения, ни экрана отказа. Я сделал полный набор — успех, ожидание, отказ — плюс fallback: если диплинк не сработал, флоу откатывается на переходник, а не встаёт в тупик.
Почему это здесь
Не в проде — включено, потому что показывает, как я разбираю критический флоу: размечаю каждое состояние, проектирую отказы так же тщательно, как happy path, и слежу, чтобы всё деградировало плавно.